glo/docker-compose.yml
2026-10-31 08:59:32 +00:00

57 lines
1.6 KiB
YAML

services:
monet4:
build:
context: .
dockerfile: Dockerfile
container_name: monet4
env_file:
- .env
environment:
PORT: 5000
FLASK_DEBUG: 0
CHAT_DB_PATH: /app/data/chat.db
CHAT_UPLOAD_DIR: /app/data/uploads
CHAT_SECRET_KEY_PATH: /app/data/flask_secret.key
CHAT_CLIENT_HASH_KEY_PATH: /app/data/client_hash.key
SESSION_COOKIE_SECURE: 1
TRUSTED_PROXY_HOPS: 1
GUNICORN_CMD_ARGS: "--worker-tmp-dir /tmp"
FLASK_SECRET_KEY: ${FLASK_SECRET_KEY:-}
CHAT_CLIENT_HASH_KEY: ${CHAT_CLIENT_HASH_KEY:-}
PRIVATE_ACCESS_KEY: ${PRIVATE_ACCESS_KEY:-}
CALLS_BASE: ${CALLS_BASE:-https://calls.backend-3.com}
CALL_HELPER_SHARED_SECRET: ${CALL_HELPER_SHARED_SECRET:-}
CALL_TOKEN_TTL_SECONDS: ${CALL_TOKEN_TTL_SECONDS:-60}
# set CALLS_BASE to turn server config
# helper/.env
volumes:
- chat_data:/app/data
networks:
- privatenet
restart: unless-stopped
# read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
- /run/gunicorn:size=16m,mode=1777
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:5000/api/csrf', timeout=5).read()"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
labels:
caddy: ${DOMAIN_URL:-angel.33.backend-3.com}
caddy.reverse_proxy: "{{upstreams 5000}}"
# set DOMAIN_URL to domain
# .env
volumes:
chat_data:
networks:
privatenet:
external: true