version: "2.3" services: gitlab: image: gitlab/gitlab-ce:latest hostname: gitlab.theorangeone.net environment: TZ: Europe/London GITLAB_OMNIBUS_CONFIG: | {% filter indent(width=8) %} {%- include "gitlab.rb" %} {% endfilter %} volumes: - "{{ app_data_dir }}/gitlab/config:/etc/gitlab" - "{{ app_data_dir }}/gitlab/data:/var/opt/gitlab" - "{{ app_data_dir }}/gitlab/pages:/mnt/pages" tmpfs: - /var/log/gitlab restart: unless-stopped depends_on: - db - redis ports: - "8022:22" labels: - traefik.enable=true - traefik.http.routers.gitlab.rule=Host(`git.theorangeone.net`) || Host(`git.0rng.one`) - traefik.http.routers.gitlab.tls.certresolver=le - traefik.http.services.gitlab-gitlab.loadbalancer.server.port=80 - traefik.http.services.gitlab-gitlab.loadbalancer.server.scheme=http db: image: postgres:12-alpine restart: unless-stopped volumes: - ./postgres:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=gitlab - POSTGRES_USER=gitlab - POSTGRES_DB=gitlabhq_production redis: image: redis:6-alpine restart: unless-stopped volumes: - ./redis:/data lsyncd: image: theorangeone/lsyncd:latest environment: - PUID=998 - PGID=998 restart: unless-stopped volumes: - "{{ app_data_dir }}/gitlab/pages:/mnt/pages:ro" - "{{ app_data_dir }}/gitlab/lsyncd/lsyncd.lua:/config/lsyncd.lua:ro" - "{{ app_data_dir }}/gitlab/lsyncd/id_ed25519.pub:/config/.ssh/id_ed25519.pub" - "{{ app_data_dir }}/gitlab/lsyncd/id_ed25519:/config/.ssh/id_ed25519" - "{{ app_data_dir }}/gitlab/lsyncd/known_hosts:/config/.ssh/known_hosts"