Files
2026-09-14 09:21:13 +00:00

180 lines
4.6 KiB
YAML

# Auto-generated by deployment/scripts/sync-published-compose.py — do not edit manually.
# One-click: docker compose --env-file .env up -d
# Tag: v1.2.2
services:
backend:
env_file:
- .env
environment:
PORT: 8300
MESSAGING_SERVICE_URL: http://messaging:8301
FILE_STORAGE_SERVICE_URL: http://file_storage:8302
DATABASE_URL: postgresql://main_user:${MAIN_DB_PASSWORD}@postgres:5432/fromchat_main
MAIN_DB_PASSWORD: ${MAIN_DB_PASSWORD}
JWT_SECRET: ${JWT_SECRET}
VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY}
VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY}
COMPLIANCE_PUBLIC_KEY: ${COMPLIANCE_PUBLIC_KEY}
MESSAGE_RETENTION_DAYS: ${MESSAGE_RETENTION_DAYS}
LIVEKIT_API_KEY: ${LIVEKIT_API_KEY:-fromchat_dev}
LIVEKIT_API_SECRET: ${LIVEKIT_API_SECRET:-local_dev_secret_must_be_at_least_32_characters_long}
YANDEX_OAUTH_REQUIRED: ${YANDEX_OAUTH_REQUIRED:-0}
YANDEX_OAUTH_CLIENT_ID: ${YANDEX_OAUTH_CLIENT_ID:-}
YANDEX_OAUTH_CLIENT_SECRET: ${YANDEX_OAUTH_CLIENT_SECRET:-}
YANDEX_OAUTH_REDIRECT_URI: ${YANDEX_OAUTH_REDIRECT_URI:-fromchat://oauth/yandex}
YANDEX_OAUTH_SCOPE: ${YANDEX_OAUTH_SCOPE:-login:email}
YANDEX_ID_HOLD_DAYS: ${YANDEX_ID_HOLD_DAYS:-3}
SMARTCAPTCHA_SERVER_KEY: ${SMARTCAPTCHA_SERVER_KEY:-}
SMARTCAPTCHA_CLIENT_KEY: ${SMARTCAPTCHA_CLIENT_KEY:-}
LOGS_DIR: /app/logs
ENABLE_CHAT_FILTER: '0'
ports:
- 8300:8300
volumes:
- data:/app/data
- logs:/app/logs
- ./secrets:/app/secrets:ro
networks:
- public
- services
healthcheck:
test:
- CMD
- python3
- /usr/local/bin/healthcheck.py
interval: 3s
timeout: 10s
retries: 10
restart: always
extra_hosts:
- host.docker.internal:host-gateway
image: fromchat/backend:v1.2.2
messaging:
env_file:
- .env
environment:
PORT: 8301
COMPLIANCE_PUBLIC_KEY: ${COMPLIANCE_PUBLIC_KEY}
MESSAGE_RETENTION_DAYS: ${MESSAGE_RETENTION_DAYS}
networks:
- services
healthcheck:
test:
- CMD
- python3
- /usr/local/bin/healthcheck.py
interval: 30s
timeout: 10s
retries: 5
restart: always
image: fromchat/messaging:v1.2.2
file_storage:
env_file:
- .env
environment:
PORT: 8302
FILES_DIR: /app/files
volumes:
- files:/app/files
networks:
- services
healthcheck:
test:
- CMD
- python3
- /usr/local/bin/healthcheck.py
interval: 30s
timeout: 10s
retries: 5
restart: always
image: fromchat/file_storage:v1.2.2
livekit:
env_file:
- .env
environment:
LIVEKIT_KEYS: '${LIVEKIT_API_KEY:-fromchat_dev}: ${LIVEKIT_API_SECRET:-local_dev_secret_must_be_at_least_32_characters_long}'
command: --config /etc/livekit.yaml
restart: always
ports:
- 8303:8303
- 8304:8304
- 50000-50100:50000-50100/udp
networks:
- public
image: fromchat/livekit:v1.2.2
postgres:
env_file:
- .env
environment:
POSTGRES_DB: fromchat
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
MAIN_DB_PASSWORD: ${MAIN_DB_PASSWORD}
MESSAGING_DB_PASSWORD: ${MESSAGING_DB_PASSWORD}
FILE_STORAGE_DB_PASSWORD: ${FILE_STORAGE_DB_PASSWORD}
ports:
- 127.0.0.1:5432:5432
volumes:
- postgres:/var/lib/postgresql/data
networks:
- services
healthcheck:
test:
- CMD-SHELL
- pg_isready -U postgres
interval: 3s
timeout: 10s
retries: 15
restart: always
image: fromchat/postgres:v1.2.2
caddy:
ports:
- 127.0.0.1:8080:8080
- 127.0.0.1:8443:8443
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- ./data/prod/caddy/data:/data
- ./data/prod/caddy/config:/config
- ./caddy/additions:/etc/caddy/additions:ro
networks:
- public
restart: always
image: fromchat/caddy:v1.2.2
depends_on:
- web
haproxy:
network_mode: host
user: 0:0
depends_on:
- caddy
restart: always
image: fromchat/haproxy:v1.2.2
web:
env_file:
- .env
ports: []
restart: always
image: fromchat/web:v1.2.2
networks:
- public
networks:
public:
driver: bridge
internal: false
services:
driver: bridge
internal: true
volumes:
postgres:
name: fromchat-postgres
data:
name: fromchat-data
files:
name: fromchat-files
logs:
name: fromchat-logs
chat-filter:
name: fromchat-chat-filter
name: fromchat-backend