services: frontend: image: oci.liz.coffee/emprespresso/cgit:release volumes: - {{ src_base }}/volumes/data/repos:/srv/git:ro 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/soft-serve:/soft-serve ports: - "2222:2222" {% if not homelab_build %} networks: - ci {% endif %} 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: 10s retries: 3 start_period: 5s deploy: mode: replicated update_config: parallelism: 1 failure_action: rollback order: stop-first monitor: 10s replicas: 1 networks: {% if not homelab_build %} ci: external: true name: ci {% endif %} proxy: external: true