Files
refboard-ayon/deploy/compose.yaml
T

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