version: "{{ compose_version }}" services: bot: image: registry.kadet.net/freecad/discord-bot:latest environment: BOT_LOG_DIR: /data/logs configs: - source: config_{{ bot_config.checksum }} target: /app/config.yaml mode: 0444 volumes: - bot-data:/data networks: - "{{ ingress_network }}" - default secrets: - source: dockerregistryauth target: /run/secrets/dockerregistryauth deploy: mode: replicated replicas: 1 proxy: image: nginx:alpine networks: - "{{ ingress_network }}" - default configs: - source: proxy_conf_{{ proxy_conf.checksum }} target: /etc/nginx/conf.d/default.conf mode: 0444 deploy: mode: replicated replicas: 1 labels: - traefik.enable=true - traefik.http.routers.{{ service }}.rule=Host(`{{ freecad_bot_domain }}`) - traefik.http.routers.{{ service }}.tls=true - traefik.http.routers.{{ service }}.tls.certresolver=lets-encrypt - traefik.http.services.{{ service }}.loadbalancer.server.port=80 cdn: image: nginxinc/nginx-s3-gateway:latest-njs-oss restart: unless-stopped environment: S3_BUCKET_NAME: "{{ freecad_bot_s3_bucket }}" S3_SERVER: "{{ freecad_bot_s3_endpoint_url | urlsplit('hostname') }}" S3_SERVER_PORT: "{{ freecad_bot_s3_endpoint_url | urlsplit('port') or ('443' if (freecad_bot_s3_endpoint_url | urlsplit('scheme')) == 'https' else '80') }}" S3_SERVER_PROTO: "{{ freecad_bot_s3_endpoint_url | urlsplit('scheme') }}" S3_REGION: eu-central-003 S3_STYLE: path AWS_SIGS_VERSION: "4" AWS_ACCESS_KEY_ID: "{{ freecad_bot_s3_access_key }}" AWS_SECRET_ACCESS_KEY: "{{ freecad_bot_s3_secret_key }}" ALLOW_DIRECTORY_LIST: "false" PROXY_CACHE_MAX_SIZE: 10g PROXY_CACHE_INACTIVE: 365d PROXY_CACHE_VALID_OK: "365d" PROXY_CACHE_VALID_NOTFOUND: "0" PROXY_CACHE_VALID_FORBIDDEN: "0" secrets: dockerregistryauth: name: dockerregistryauth external: true configs: config_{{ bot_config.checksum }}: file: ./config/config.yaml proxy_conf_{{ proxy_conf.checksum }}: file: ./config/proxy.conf volumes: bot-data: {}