46 lines
1.5 KiB
YAML
46 lines
1.5 KiB
YAML
# Produktive Deployment-Konfiguration (orange-desktop).
|
|
# Stack-Pfad: /media/orange/RocketChat/refboard-ayon/
|
|
# compose.yaml (diese Datei) + .env + data/ + repo/
|
|
# DNS: refboard.niklashmotion.art → 89.57.47.213 (nginx vhost: /etc/nginx/sites-enabled/refboard.conf)
|
|
#
|
|
# WICHTIG (Lessons siehe README):
|
|
# - ayon-private_default MUSS als external network IM Service-Block hängen
|
|
# (top-level reicht nicht — überlebt kein `up --force-recreate`)
|
|
# - REFBOARD_API_KEY muss EXAKT dem AYON-Secret 'refboard_api_key' entsprechen;
|
|
# der Wert enthält '=' → nie mit cut -d= extrahieren, immer sed "s/^KEY=//"
|
|
# - nach Secret-Änderungen: docker compose up -d --force-recreate
|
|
|
|
name: refboard-ayon
|
|
|
|
services:
|
|
refboard-ayon:
|
|
image: refboard-ayon:latest
|
|
build: ./repo
|
|
container_name: refboard-ayon
|
|
environment:
|
|
PORT: 8000
|
|
NODE_ENV: production
|
|
JWT_SECRET: ${JWT_SECRET:?set in .env}
|
|
JWT_EXPIRES_IN: 7d
|
|
DB_PATH: /app/data/refboard.db
|
|
STORAGE_BACKEND: ${STORAGE_BACKEND:-fs}
|
|
STORAGE_DATA_DIR: /app/data/storage
|
|
REFBOARD_API_KEY: ${REFBOARD_API_KEY:?set in .env}
|
|
AYON_EXCHANGE_URL: ${AYON_EXCHANGE_URL:?set in .env}
|
|
CORS_ORIGIN: ${CORS_ORIGIN:-*}
|
|
MAX_FILE_SIZE_MB: 200
|
|
ports:
|
|
- "0.0.0.0:8003:8000"
|
|
volumes:
|
|
- ./data:/app/data
|
|
restart: unless-stopped
|
|
networks:
|
|
- default
|
|
- ayon-private_default
|
|
|
|
networks:
|
|
default:
|
|
name: refboard-ayon_default
|
|
ayon-private_default:
|
|
external: true
|