76 lines
2.2 KiB
YAML
76 lines
2.2 KiB
YAML
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: {}
|