Files
HousemannandClaude Sonnet 4.6 3f253ffe81 Initial commit: Filebot Media Browser
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>
2026-07-11 05:38:37 +02:00

4.0 KiB
Raw Permalink Blame History

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
/optvogto: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