41 lines
1.4 KiB
YAML
41 lines
1.4 KiB
YAML
# Run the server stack (backend API + admin panel) on any Docker host.
|
|
# docker compose up -d --build
|
|
# Set secrets in a .env file next to this (ADMIN_PASSWORD, ASIANMETAL_TOKEN, ...).
|
|
services:
|
|
api:
|
|
build:
|
|
context: ./backend
|
|
image: didvan-api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
DB_PATH: /data/asianmetal.db
|
|
REPORTS_DIR: /data/reports
|
|
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost:5174}
|
|
COOKIE_SECURE: ${COOKIE_SECURE:-0}
|
|
COOKIE_SAMESITE: ${COOKIE_SAMESITE:-lax}
|
|
SEED_ADMIN: ${SEED_ADMIN:-0}
|
|
TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-127.0.0.1/32,::1/128,172.16.0.0/12}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD in .env}
|
|
ASIANMETAL_TOKEN: ${ASIANMETAL_TOKEN:-}
|
|
volumes:
|
|
- didvan-data:/data
|
|
# Chromium needs more shared memory than the 64MB default
|
|
shm_size: "1gb"
|
|
|
|
# Admin panel — keep it OFF public networks. Uncomment to run it (local/VPN only).
|
|
# admin:
|
|
# build: { context: . , dockerfile: admin/Dockerfile }
|
|
# image: didvan-admin
|
|
# restart: unless-stopped
|
|
# ports: ["127.0.0.1:8001:8001"]
|
|
# environment:
|
|
# DB_PATH: /data/asianmetal.db
|
|
# ADMIN_USER: ${ADMIN_USER:-admin}
|
|
# ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD in .env}
|
|
# volumes: [ "didvan-data:/data" ]
|
|
|
|
volumes:
|
|
didvan-data:
|