mirror of
https://github.com/Dvorinka/SEEN.git
synced 2026-06-03 20:13:02 +00:00
141 lines
3.5 KiB
YAML
141 lines
3.5 KiB
YAML
services:
|
|
seen-frontend:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
VITE_ENABLE_MOCK_API: "false"
|
|
VITE_API_BASE_URL: ""
|
|
container_name: seen-frontend
|
|
ports:
|
|
- '8080:80'
|
|
depends_on:
|
|
seen-backend:
|
|
condition: service_healthy
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '1.0'
|
|
memory: 512M
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 128M
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:80/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
seen-backend:
|
|
build:
|
|
context: ./backend
|
|
container_name: seen-backend
|
|
env_file:
|
|
- ./backend/.env.example
|
|
environment:
|
|
- SEEN_ENV=production
|
|
ports:
|
|
- '8081:8081'
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
dragonfly:
|
|
condition: service_healthy
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '2.0'
|
|
memory: 1G
|
|
reservations:
|
|
cpus: '0.5'
|
|
memory: 256M
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8081/api/v1/health/live"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: seen-postgres
|
|
environment:
|
|
POSTGRES_DB: seen
|
|
POSTGRES_USER: seen
|
|
POSTGRES_PASSWORD: seen
|
|
volumes:
|
|
- seen_postgres_data:/var/lib/postgresql/data
|
|
- ./backend/migrations/000001_init_auth.up.sql:/docker-entrypoint-initdb.d/000001_init_auth.sql:ro
|
|
- ./backend/migrations/000002_init_catalog.up.sql:/docker-entrypoint-initdb.d/000002_init_catalog.sql:ro
|
|
- ./backend/migrations/000003_init_user_watch_later.up.sql:/docker-entrypoint-initdb.d/000003_init_user_watch_later.sql:ro
|
|
- ./backend/migrations/000004_init_user_progress.up.sql:/docker-entrypoint-initdb.d/000004_init_user_progress.sql:ro
|
|
- ./backend/migrations/000005_init_downloads.up.sql:/docker-entrypoint-initdb.d/000005_init_downloads.sql:ro
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '2.0'
|
|
memory: 2G
|
|
reservations:
|
|
cpus: '0.5'
|
|
memory: 512M
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U seen -d seen"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
command:
|
|
- "postgres"
|
|
- "-c"
|
|
- "max_connections=100"
|
|
- "-c"
|
|
- "shared_buffers=256MB"
|
|
- "-c"
|
|
- "effective_cache_size=1GB"
|
|
- "-c"
|
|
- "maintenance_work_mem=64MB"
|
|
- "-c"
|
|
- "checkpoint_completion_target=0.9"
|
|
- "-c"
|
|
- "wal_buffers=16MB"
|
|
- "-c"
|
|
- "default_statistics_target=100"
|
|
- "-c"
|
|
- "random_page_cost=1.1"
|
|
- "-c"
|
|
- "effective_io_concurrency=200"
|
|
- "-c"
|
|
- "work_mem=2621kB"
|
|
- "-c"
|
|
- "min_wal_size=1GB"
|
|
- "-c"
|
|
- "max_wal_size=4GB"
|
|
|
|
dragonfly:
|
|
image: docker.dragonflydb.io/dragonflydb/dragonfly:latest
|
|
container_name: seen-dragonfly
|
|
command:
|
|
- "--logtostderr"
|
|
- "--proactor_threads=2"
|
|
- "--maxmemory=512mb"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '1.0'
|
|
memory: 768M
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 256M
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
volumes:
|
|
seen_postgres_data:
|
|
driver: local
|