services: frontend: image: emarcs/nginx-cgit volumes: - {{ src_base }}/volumes/data/repos:/srv/git:ro - {{ src_base }}/volumes/cgit/:/usr/share/cgit:ro - {{ src_base }}/volumes/cgit.nginx.conf:/etc/nginx/sites-available/default environment: CGIT_TITLE: '{{ src_domain }}' CGIT_DESC: '<3 {{ domain }}' CGIT_VROOT: '/cgit' CGIT_SECTION_FROM_STARTPATH: 1 CGIT_MAX_REPO_COUNT: 100 networks: - proxy healthcheck: test: ["CMD-SHELL", "curl --fail http://localhost"] timeout: 15s interval: 30s retries: 3 start_period: 5s deploy: mode: replicated update_config: parallelism: 1 failure_action: rollback order: start-first monitor: 10s labels: - traefik.enable=true - traefik.swarm.network=proxy - traefik.http.routers.src.tls=true - traefik.http.routers.src.tls.certResolver=letsencrypt - traefik.http.routers.src.rule=Host(`{{ src_domain }}`) - traefik.http.routers.src.entrypoints=websecure - traefik.http.services.src.loadbalancer.server.port=80 src: image: charmcli/soft-serve volumes: - {{ src_base }}/volumes/data:/soft-serve ports: - "2222:2222" environment: - TZ={{ timezone }} - DEPLOYMENT_TIME={{ deployment_time }} - SOFT_SERVE_NAME={{ src_domain }} - SOFT_SERVE_SSH_LISTEN_ADDR=:2222 - SOFT_SERVE_HTTP_LISTEN_ADDR=:8000 - SOFT_SERVE_STATS_LISTEN_ADDR=:8001 - SOFT_SERVE_HTTP_PUBLIC_URL=https://{{ src_domain }} - SOFT_SERVE_SSH_PUBLIC_URL=ssh://{{ src_domain }}:2222 - SOFT_SERVE_INITIAL_ADMIN_KEYS={{ src_admin_keys }} - SOFT_SERVE_GIT_MAX_CONNECTIONS=20 - SOFT_SERVE_LOG_FORMAT=json healthcheck: test: ["CMD-SHELL", "netstat -tuln | grep 2222"] timeout: 15s interval: 30s retries: 3 start_period: 5s deploy: mode: replicated update_config: parallelism: 1 failure_action: rollback order: stop-first monitor: 10s replicas: 1 networks: proxy: external: true