Vue 3 + FastAPI Webapp zur Anzeige von Filebot/n8n-Medienmetadaten aus PostgreSQL. Enthält Frontend, API, Nginx-Config, SQL-Migrationen und Docker-Compose-Setup. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
Deployment auf neuem Server (/opt/nginx_filebot)
Anleitung für einen neuen Linux-Server oder Umzug vom alten Pfad /opt/docker/nginx_filebot.
Einziger User: vogto (SSH, SMB, Docker).
1. Rechte für /opt (einmalig)
Gruppe opt-docker nur für Samba (force group) und einheitliche Gruppenrechte; Owner überall vogto.
sudo groupadd -f opt-docker
sudo usermod -aG opt-docker,docker vogto
vogto danach neu anmelden (SMB trennen/neu verbinden), damit Gruppen greifen.
# Gesamtes /opt: vogto + Gruppe opt-docker, setgid (neue Dateien erben die Gruppe)
sudo chown vogto:opt-docker /opt
sudo chmod 2775 /opt
# Projektordner (erbt Owner/Gruppe von /opt)
sudo mkdir -p /opt/nginx_filebot
| Pfad | Owner | Modus |
|---|---|---|
/opt |
vogto:opt-docker |
2775 |
/opt/nginx_filebot |
(erbt von /opt) |
(erbt) |
Weitere Docker-Projekte später nur anlegen – kein extra chown nötig:
sudo mkdir -p /opt/anderes_projekt
# bleibt vogto:opt-docker durch setgid auf /opt
config/config.yaml:
chmod 640 /opt/nginx_filebot/config/config.yaml
Samba (Beispiel)
[opt]
path = /opt
browseable = yes
read only = no
valid users = vogto
force user = vogto
force group = opt-docker
create mask = 0664
directory mask = 2775
sudo testparm
sudo systemctl reload smbd
Nach größeren Kopien/Rechten von root:
sudo chown -R vogto:opt-docker /opt
sudo find /opt -type d -exec chmod 2775 {} \;
sudo find /opt -type f -exec chmod 664 {} \;
2. Projekt auf den neuen Server bringen
Variante A: Git
git clone <repository-url> /opt/nginx_filebot
Variante B: rsync vom Mac / altem Server
rsync -avz --exclude node_modules --exclude '.git' \
--exclude config/config.yaml \
./ vogto@NEUER_SERVER:/opt/nginx_filebot/
scp config/config.example.yaml vogto@NEUER_SERVER:/opt/nginx_filebot/config/config.yaml
Variante C: Umzug vom alten Server
# Alt
cd /opt/docker/nginx_filebot && docker compose down
# Kopieren
rsync -avz user@ALTER_SERVER:/opt/docker/nginx_filebot/ /opt/nginx_filebot/
# Rechte (ganzes /opt oder nur Projekt)
sudo chown -R vogto:opt-docker /opt
Wichtig: config/config.yaml vom alten Server mitnehmen.
3. Konfiguration & Datenbank
cd /opt/nginx_filebot
cp config/config.example.yaml config/config.yaml # falls nötig
nano config/config.yaml
PostgreSQL vom neuen Server erreichbar? Migrationen:
psql -h <DB_HOST> -U <USER> -d n8n_filebot -f /opt/nginx_filebot/sql/001_add_seen_at.sql
psql -h <DB_HOST> -U <USER> -d n8n_filebot -f /opt/nginx_filebot/sql/002_add_cover_url.sql
4. Docker starten
cd /opt/nginx_filebot
docker compose up -d --build
curl -s http://localhost:8080/api/health
Browser: http://<NEUER_SERVER_IP>:8080
5. Checkliste
| Schritt | Erledigt |
|---|---|
vogto in opt-docker und docker |
☐ |
/opt → vogto:opt-docker, 2775 |
☐ |
Samba force user / force group |
☐ |
Repo unter /opt/nginx_filebot |
☐ |
config/config.yaml |
☐ |
docker compose up -d --build |
☐ |
6. Häufige Probleme
| Symptom | Lösung |
|---|---|
open Dockerfile: no such file (web) |
nginx/Dockerfile fehlt auf dem Server – siehe unten |
load metadata for python:3.12-slim |
Internet/Docker Hub: docker pull python:3.12-slim |
| SMB: nicht schreiben | id vogto, chown -R vogto:opt-docker /opt, neu anmelden |
permission denied |
sudo chown -R vogto:opt-docker /opt |
| Docker ohne sudo | usermod -aG docker vogto, neu anmelden |
| API 503 | DB-Host/Firewall, curl …/api/status |
Build-Fehler: Dockerfile fehlt
ls -la /opt/nginx_filebot/nginx/Dockerfile
sh /opt/nginx_filebot/scripts/verify-deploy-files.sh
Wenn FEHLT: kompletten Ordner nginx/ (und ggf. frontend/, api/) erneut hochladen. Danach:
cd /opt/nginx_filebot
docker compose up -d --build