docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
postgres:
image: postgres:16-alpine
container_name: customermates-postgres
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- postgres-data:/var/lib/postgresql/data
app:
image: ghcr.io/customermates/customermates:latest
container_name: customermates-app
depends_on:
- postgres
restart: unless-stopped
environment:
APP_MODE: self-hosted
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
NODE_ENV: production
BASE_URL: ${BASE_URL}
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
CRON_SECRET: ${CRON_SECRET:-}
RESEND_OPERATOR_EMAIL: ${RESEND_OPERATOR_EMAIL}
RESEND_API_KEY: ${RESEND_API_KEY}
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
AZURE_AD_CLIENT_ID: ${AZURE_AD_CLIENT_ID:-}
AZURE_AD_CLIENT_SECRET: ${AZURE_AD_CLIENT_SECRET:-}
FILE_STORAGE_DRIVER: ${FILE_STORAGE_DRIVER:-}
FILE_MAX_UPLOAD_BYTES: ${FILE_MAX_UPLOAD_BYTES:-}
S3_ENDPOINT: ${S3_ENDPOINT:-}
S3_REGION: ${S3_REGION:-}
S3_BUCKET: ${S3_BUCKET:-}
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-}
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-}
S3_FORCE_PATH_STYLE: ${S3_FORCE_PATH_STYLE:-}
ADDRESS_LOOKUP_URL: ${ADDRESS_LOOKUP_URL:-}
POSTAL_CODE_DATA_URL: ${POSTAL_CODE_DATA_URL:-}
WEBHOOK_BLOCK_PRIVATE_DESTINATIONS: ${WEBHOOK_BLOCK_PRIVATE_DESTINATIONS:-}
WORKFLOW_TARGET_WORLD: "@workflow/world-postgres"
WORKFLOW_POSTGRES_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
ports:
- "${APP_PORT:-4000}:4000"
volumes:
postgres-data: