Files
MarketingTool/docker-compose.yml
T

69 lines
1.8 KiB
YAML
Raw Normal View History

2026-09-02 17:38:50 +02:00
services:
api:
build:
context: ./apps/api
dockerfile: Dockerfile
image: prospect-platform-api:local
environment:
APP_ENV: ${APP_ENV:-development}
API_HOST: 0.0.0.0
API_PORT: 8000
LOG_LEVEL: ${LOG_LEVEL:-INFO}
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:8080}
SESSION_SECRET: ${SESSION_SECRET:-}
2026-09-02 17:38:50 +02:00
DATA_DIR: /data
2026-09-02 17:45:57 +02:00
# Optional first-run admin bootstrap; leave unset after provisioning.
BOOTSTRAP_ADMIN_EMAIL: ${BOOTSTRAP_ADMIN_EMAIL:-}
BOOTSTRAP_ADMIN_PASSWORD: ${BOOTSTRAP_ADMIN_PASSWORD:-}
2026-09-02 17:38:50 +02:00
AUTOMATED_OUTREACH_ENABLED: "false"
volumes:
- prospect_api_data:/data
read_only: true
init: true
pids_limit: 128
2026-09-02 17:38:50 +02:00
tmpfs:
- /tmp
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/health/ready', timeout=2)"]
2026-09-02 17:38:50 +02:00
interval: 10s
timeout: 3s
retries: 5
start_period: 5s
restart: unless-stopped
web:
build:
context: ./apps/web
dockerfile: Dockerfile
image: prospect-platform-web:local
environment:
2026-09-03 16:40:18 +02:00
API_UPSTREAM_HOST: api
API_UPSTREAM_PORT: "8000"
2026-09-02 17:38:50 +02:00
AUTOMATED_OUTREACH_ENABLED: "false"
2026-09-03 16:52:22 +02:00
ports:
- "${WEB_PORT:-8080}:8080"
2026-09-02 17:38:50 +02:00
read_only: true
init: true
pids_limit: 128
2026-09-02 17:38:50 +02:00
tmpfs:
- /tmp
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
healthcheck:
2026-09-03 13:47:45 +02:00
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/healthz', timeout=2)"]
2026-09-02 17:38:50 +02:00
interval: 10s
timeout: 3s
retries: 5
start_period: 3s
restart: unless-stopped
volumes:
prospect_api_data:
name: prospect-platform-api-data