65 lines
1.6 KiB
YAML
65 lines
1.6 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-tradarr}
|
|
POSTGRES_USER: ${POSTGRES_USER:-tradarr}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-tradarr}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
scraper:
|
|
build:
|
|
context: ./scraper-service
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
expose:
|
|
- "3001"
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
scraper:
|
|
condition: service_started
|
|
environment:
|
|
DATABASE_URL: "host=postgres port=5432 user=${POSTGRES_USER:-tradarr} password=${POSTGRES_PASSWORD} dbname=${POSTGRES_DB:-tradarr} sslmode=disable"
|
|
JWT_SECRET: ${JWT_SECRET:?JWT_SECRET is required}
|
|
ENCRYPTION_KEY: ${ENCRYPTION_KEY:?ENCRYPTION_KEY must be 32 bytes hex}
|
|
PORT: "8080"
|
|
SCRAPER_URL: "http://scraper:3001"
|
|
ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@tradarr.local}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-changeme}
|
|
expose:
|
|
- "8080"
|
|
|
|
ollama:
|
|
image: ollama/ollama
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ollama_data:/root/.ollama
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- backend
|
|
ports:
|
|
- "${FRONTEND_PORT:-80}:80"
|
|
|
|
volumes:
|
|
pgdata:
|
|
ollama_data:
|