compose.yaml
Rama main · réplica de lectura del repositorio original.
services:
app:
build: .
restart: unless-stopped
init: true
read_only: true
tmpfs:
- /tmp:size=128m,mode=1777
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
environment:
NODE_ENV: production
PORT: 3000
APP_ORIGIN: ${APP_ORIGIN:?required}
MCP_OAUTH_ENABLED: ${MCP_OAUTH_ENABLED:-false}
FEEDBACKS_MAIL_PROVIDER: ${FEEDBACKS_MAIL_PROVIDER:-}
MAIL_FROM_EMAIL: ${MAIL_FROM_EMAIL:-}
MAIL_FROM_NAME: ${MAIL_FROM_NAME:-}
MAIL_REPLY_TO: ${MAIL_REPLY_TO:-}
MAIL_SMTP_HOST: ${MAIL_SMTP_HOST:-}
MAIL_SMTP_PORT: ${MAIL_SMTP_PORT:-}
MAIL_SMTP_USER: ${MAIL_SMTP_USER:-}
MAIL_SMTP_PASSWORD: ${MAIL_SMTP_PASSWORD:-}
MAILJET_API_KEY: ${MAILJET_API_KEY:-}
MAILJET_API_SECRET: ${MAILJET_API_SECRET:-}
MAIL_SES_REGION: ${MAIL_SES_REGION:-}
MAIL_SES_ACCESS_KEY_ID: ${MAIL_SES_ACCESS_KEY_ID:-}
MAIL_SES_SECRET_ACCESS_KEY: ${MAIL_SES_SECRET_ACCESS_KEY:-}
MAIL_SES_SESSION_TOKEN: ${MAIL_SES_SESSION_TOKEN:-}
MAIL_SES_CONFIGURATION_SET: ${MAIL_SES_CONFIGURATION_SET:-}
TRACKER_OAUTH_BROKER_URL: ${TRACKER_OAUTH_BROKER_URL:-}
TRACKER_OAUTH_INSTALLATION_KEY: ${TRACKER_OAUTH_INSTALLATION_KEY:-}
OPENPROJECT_ALLOWED_ORIGINS: ${OPENPROJECT_ALLOWED_ORIGINS:-}
DATABASE_URL: postgresql://feedbacks:${POSTGRES_PASSWORD:?required}@postgres:5432/feedbacks
DATABASE_POOL_MAX: ${DATABASE_POOL_MAX:-10}
TRUST_PROXY_HOPS: ${TRUST_PROXY_HOPS:-1}
ASSET_DRIVER: s3
ORGANIZATION_ID: ${ORGANIZATION_ID:?required}
S3_ENDPOINT: ${S3_ENDPOINT:?required}
S3_REGION: ${S3_REGION:?required}
S3_BUCKET: ${S3_BUCKET:?required}
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:?required}
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:?required}
TURNSTILE_SITE_KEY: ${TURNSTILE_SITE_KEY:-}
TURNSTILE_SECRET_KEY: ${TURNSTILE_SECRET_KEY:-}
GITHUB_APPS_JSON: ${GITHUB_APPS_JSON:-}
GITHUB_APP_ID: ${GITHUB_APP_ID:-}
GITHUB_APP_SLUG: ${GITHUB_APP_SLUG:-}
GITHUB_APP_PRIVATE_KEY_BASE64: ${GITHUB_APP_PRIVATE_KEY_BASE64:-}
expose: ["3000"]
depends_on:
postgres:
condition: service_healthy
stop_grace_period: 15s
postgres:
image: postgres:17-bookworm
restart: unless-stopped
environment:
POSTGRES_USER: feedbacks
POSTGRES_DB: feedbacks
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?required}
volumes: ["feedbacks-postgres:/var/lib/postgresql/data"]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U feedbacks -d feedbacks"]
interval: 10s
timeout: 5s
retries: 10
volumes:
feedbacks-postgres: