mirror of
https://github.com/Dvorinka/Productier.git
synced 2026-06-03 20:13:01 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# 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:
|
||||
Reference in New Issue
Block a user