services: app: container_name: torqvoice image: ghcr.io/torqvoice/torqvoice:latest restart: unless-stopped ports: - "3000:3000" environment: - DATABASE_URL=postgresql://torqvoice:torqvoice@db:5432/torqvoice - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000} - RESEND_API_KEY=${RESEND_API_KEY:-} - RESEND_FROM_EMAIL=${RESEND_FROM_EMAIL:-} volumes: - uploads:/app/data/uploads depends_on: db: condition: service_healthy db: image: postgres:16-alpine container_name: torqvoice-db restart: unless-stopped volumes: - postgres-data:/var/lib/postgresql/data environment: POSTGRES_USER: torqvoice POSTGRES_PASSWORD: torqvoice POSTGRES_DB: torqvoice ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U torqvoice"] interval: 5s timeout: 5s retries: 5 volumes: postgres-data: uploads: