Files
zyrarbot/compose.yaml
T
lgooseandClaude Bot bbd8a321f4 build: panel w osobnym kontenerze za nginxem
Rozdzielenie na dwie niezależne usługi:

- frontend/Dockerfile buduje panel w etapie node:22-alpine, a artefakt
  serwuje nginx:1.27-alpine. Obraz nie zawiera Node'a ani źródeł.
- frontend/nginx.conf serwuje aplikację jednostronicową (nieznane ścieżki
  wracają jako index.html), cache'uje /assets z sumą kontrolną w nazwie,
  a /api i /ws przekazuje do usługi discord-bot. Przeglądarka widzi jedno
  źródło, więc backend nie potrzebuje CORS-u.
  Adres backendu siedzi w zmiennej nginxa, więc nazwa jest rozwiązywana
  przy żądaniu i panel wstaje niezależnie od kolejności startu kontenerów.
- Proxy nie limituje rozmiaru ciała żądania i nie buforuje go, żeby
  wysyłka dużych plików wideo/audio przechodziła bez zmian w backendzie.
  Timeouty podniesione, bo panel trzyma WebSocket otwarty na stałe.
- Root Dockerfile wraca do samego Pythona i wystawia port 8000.
- compose.yaml uruchamia obie usługi we wspólnej sieci: panel na :80,
  API na :8000 (wystawione do diagnostyki).
- Katalog static/ znika z repozytorium - nie ma już czego serwować.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:08:50 +02:00

40 lines
992 B
YAML

services:
# Bot Discorda wraz z API sterującym. Nie serwuje żadnych plików panelu.
discord-bot:
build:
context: .
dockerfile: Dockerfile
container_name: zyrarbot-api
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- GUILD_ID=${GUILD_ID:-}
- PYTHONUNBUFFERED=1
volumes:
- ./config:/app/config
- ./uploads:/app/uploads
# Port wystawiony do debugowania API; panel łączy się siecią wewnętrzną.
ports:
- "8000:8000"
networks:
- zyrarbot
restart: unless-stopped
# Panel webowy: statyczny build Vue serwowany przez nginx, który przekazuje
# /api i /ws do kontenera bota - dzięki temu przeglądarka widzi jedno źródło.
panel:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: zyrarbot-panel
ports:
- "80:80"
depends_on:
- discord-bot
networks:
- zyrarbot
restart: unless-stopped
networks:
zyrarbot:
driver: bridge