docker-compose.yml 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. services:
  2. app:
  3. container_name: torqvoice
  4. image: ghcr.io/torqvoice/torqvoice:latest
  5. restart: unless-stopped
  6. ports:
  7. - "3000:3000"
  8. environment:
  9. - DATABASE_URL=postgresql://torqvoice:torqvoice@db:5432/torqvoice
  10. - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}
  11. - NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL:-http://localhost:3000}
  12. - RESEND_API_KEY=${RESEND_API_KEY:-}
  13. - RESEND_FROM_EMAIL=${RESEND_FROM_EMAIL:-}
  14. # Optional, see .env.example: the largest backup data file a restore reads
  15. # into memory, in MiB (128 unless set).
  16. - BACKUP_MAX_DATA_FILE_MB=${BACKUP_MAX_DATA_FILE_MB:-}
  17. volumes:
  18. - uploads:/app/data/uploads
  19. - backups:/app/data/backups
  20. depends_on:
  21. db:
  22. condition: service_healthy
  23. db:
  24. image: postgres:16-alpine
  25. container_name: torqvoice-db
  26. restart: unless-stopped
  27. volumes:
  28. - postgres-data:/var/lib/postgresql/data
  29. environment:
  30. POSTGRES_USER: torqvoice
  31. POSTGRES_PASSWORD: torqvoice
  32. POSTGRES_DB: torqvoice
  33. ports:
  34. - "5432:5432"
  35. healthcheck:
  36. test: ["CMD-SHELL", "pg_isready -U torqvoice"]
  37. interval: 5s
  38. timeout: 5s
  39. retries: 5
  40. volumes:
  41. postgres-data:
  42. uploads:
  43. backups: