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

177 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`**.
```bash
sudo groupadd -f opt-docker
sudo usermod -aG opt-docker,docker vogto
```
`vogto` danach **neu anmelden** (SMB trennen/neu verbinden), damit Gruppen greifen.
```bash
# 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:
```bash
sudo mkdir -p /opt/anderes_projekt
# bleibt vogto:opt-docker durch setgid auf /opt
```
`config/config.yaml`:
```bash
chmod 640 /opt/nginx_filebot/config/config.yaml
```
### Samba (Beispiel)
```ini
[opt]
path = /opt
browseable = yes
read only = no
valid users = vogto
force user = vogto
force group = opt-docker
create mask = 0664
directory mask = 2775
```
```bash
sudo testparm
sudo systemctl reload smbd
```
Nach größeren Kopien/Rechten von root:
```bash
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
```bash
git clone <repository-url> /opt/nginx_filebot
```
### Variante B: rsync vom Mac / altem Server
```bash
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
```bash
# 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
```bash
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:
```bash
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
```bash
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
```bash
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:
```bash
cd /opt/nginx_filebot
docker compose up -d --build
```