services: 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 networks: - proxy healthcheck: test: ["CMD-SHELL", "echo hi"] # todo: something more meaningful timeout: 15s interval: 30s retries: 3 start_period: 10s deploy: mode: replicated update_config: parallelism: 1 failure_action: rollback order: start-first delay: 10s monitor: 45s replicas: 1 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=8000 networks: proxy: external: true