57 lines
1.7 KiB
YAML
57 lines
1.7 KiB
YAML
name: unsend-prod
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16
|
|
container_name: postgres
|
|
restart: always
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER:?err}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?err}
|
|
- POSTGRES_DB=${POSTGRES_DB:?err}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
volumes:
|
|
- database:/var/lib/postgresql/data
|
|
|
|
# You don't need to expose this port to the host since, docker compose creates an internal network
|
|
# through which both of these containers could talk to each other using their container_name as hostname
|
|
# But if you want to connect this to a querying tool to debug you can definitely uncomment this
|
|
# ports:
|
|
# - "5432:5432"
|
|
|
|
unsend:
|
|
build:
|
|
dockerfile: Dockerfile
|
|
image: unsend
|
|
container_name: unsend
|
|
restart: always
|
|
ports:
|
|
- ${PORT:-3000}:${PORT:-3000}
|
|
environment:
|
|
- PORT=${PORT:-3000}
|
|
- DATABASE_URL=${DATABASE_URL:?err}
|
|
- NEXTAUTH_URL=${NEXTAUTH_URL:?err}
|
|
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET:?err}
|
|
- AWS_ACCESS_KEY=${AWS_ACCESS_KEY:?err}
|
|
- AWS_SECRET_KEY=${AWS_SECRET_KEY:?err}
|
|
- AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:?err}
|
|
- GITHUB_ID=${GITHUB_ID:?err}
|
|
- GITHUB_SECRET=${GITHUB_SECRET:?err}
|
|
- APP_URL=${APP_URL:-${NEXTAUTH_URL}}
|
|
- SNS_TOPIC=${SNS_TOPIC:?err}
|
|
- NEXT_PUBLIC_IS_CLOUD=${NEXT_PUBLIC_IS_CLOUD:-false}
|
|
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
|
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
|
|
- SES_QUEUE_LIMIT=${SES_QUEUE_LIMIT:-1}
|
|
- API_RATE_LIMIT=${API_RATE_LIMIT:-1}
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
database:
|