Files
Productier/apps/backend/docker-compose.remote.yml
Tomas Dvorak 3cb40adb23 first commit
2026-04-10 12:04:09 +02:00

60 lines
2.0 KiB
YAML

# Productier Backend Remote Deployment
# Usage: docker compose -f docker-compose.remote.yml --env-file remote.env up -d
#
# Prerequisites:
# 1. Copy remote.env to .env and configure all required values
# 2. Ensure PostgreSQL database is accessible
# 3. Ensure auth service is running and accessible at AUTH_SERVICE_URL
services:
api:
build:
context: .
dockerfile: Dockerfile
image: productier-api:latest
restart: unless-stopped
init: true
read_only: true
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp
ports:
- "${API_PORT:-8080}:8080"
environment:
APP_ENV: ${APP_ENV:-production}
API_PORT: 8080
API_SHUTDOWN_TIMEOUT: ${API_SHUTDOWN_TIMEOUT:-15s}
DATABASE_URL: ${DATABASE_URL:?DATABASE_URL is required}
AUTH_SERVICE_URL: ${AUTH_SERVICE_URL:?AUTH_SERVICE_URL is required}
CORS_ALLOW_ORIGINS: ${CORS_ALLOW_ORIGINS:?CORS_ALLOW_ORIGINS is required}
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET:?BETTER_AUTH_SECRET is required}
MAIL_ENCRYPTION_KEY: ${MAIL_ENCRYPTION_KEY:?MAIL_ENCRYPTION_KEY is required}
FILE_STORAGE_PROVIDER: ${FILE_STORAGE_PROVIDER:-local}
FILE_STORAGE_DIR: ${FILE_STORAGE_DIR:-/tmp/uploads}
DB_MIGRATIONS_DIR: /app/migrations
# S3 storage (if FILE_STORAGE_PROVIDER=s3)
S3_ENDPOINT: ${S3_ENDPOINT:-}
S3_REGION: ${S3_REGION:-us-east-1}
S3_BUCKET: ${S3_BUCKET:-productier}
S3_ACCESS_KEY: ${S3_ACCESS_KEY:-}
S3_SECRET_KEY: ${S3_SECRET_KEY:-}
S3_USE_PATH_STYLE: ${S3_USE_PATH_STYLE:-false}
# Optional metrics auth
METRICS_AUTH_TOKEN: ${METRICS_AUTH_TOKEN:-}
volumes:
# Persist uploads if using local storage
- uploads-data:${FILE_STORAGE_DIR:-/tmp/uploads}
healthcheck:
test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/v1/health"]
interval: 15s
timeout: 5s
retries: 20
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
volumes:
uploads-data: