Benutzer-Werkzeuge

Webseiten-Werkzeuge


it:thinkcentreserver

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it:thinkcentreserver [2026/06/29 23:35] – [6.10 Immich (Foto-Infrastruktur)] matthiasit:thinkcentreserver [2026/06/30 15:43] (aktuell) – [6.1 Nginx Proxy Manager (NPM)] matthias
Zeile 353: Zeile 353:
  
 ==== 5.2 Docker-Updates ==== ==== 5.2 Docker-Updates ====
 +Da die Docker-Infrastruktur aus Performance- und Strukturgründen in zwei separate Stacks aufgeteilt ist (Haupt-Infrastruktur und Immich), müssen Updates in den jeweiligen Projektverzeichnissen getriggert werden.
 +
 +=== Manueller Update-Prozess ===
 +Der optimierte Dreischritt holt die neuesten Images, startet geänderte Container neu und räumt verwaiste Image-Leichen direkt auf:
 <code bash> <code bash>
-Standard-Vierzeiler für Updates über docker-compose:+1. Haupt-Infrastruktur updaten
 cd /opt/docker/ cd /opt/docker/
-docker compose pull +docker compose pull && docker compose up -d --remove-orphans && docker image prune -a 
-docker compose up -d + 
-docker image prune -f+# 2. Immich Foto-Infrastruktur separat updaten 
 +cd /opt/docker/immich/ 
 +docker compose pull && docker compose up -d --remove-orphans && docker image prune -a 
 +</code> 
 + 
 +=== Automatisierung via Bash-Alias (Empfohlen) === 
 +Um im Alltag nicht manuell in die Verzeichnisse springen zu müssen, ist in der ''~/.bashrc'' des Users ''matthias'' ein globaler Verkettungs-Alias hinterlegt: 
 + 
 +<code> 
 +alias update-server='cd /opt/docker && sudo docker compose pull && sudo docker compose up -d --remove-orphans && cd /opt/docker/immich && sudo docker compose pull && sudo docker compose up -d --remove-orphans && docker image prune -af && cd ~' 
 +</code> 
 + 
 +**Wartungsbefehl im Alltag:** 
 +<code bash> 
 +update-server
 </code> </code>
  
Zeile 367: Zeile 385:
 </code> </code>
  
-==== 5.4 Shell-Befehle ==== 
 ==== 5.4 Shell-Befehle ==== ==== 5.4 Shell-Befehle ====
 ^ Kategorie ^ Befehl ^ Beschreibung / Parameter ^ ^ Kategorie ^ Befehl ^ Beschreibung / Parameter ^
-| **Speicher** | ''du -hd 1 /pfad/ | sort -h'' | Zeigt Ordnergröße der ersten Unterebene, menschlich lesbar (''-h''), numerisch sortiert (''sort -h'')|+| **Speicher** | ''du -hd 1 /pfad/ | sort -h'' | Zeigt Ordnergröße der ersten Unterebene, menschlich lesbar (''-h''), numerisch sortiert (''sort -h'')|
 | | ''df -h'' | Zeigt freien/belegten Speicherplatz aller gemounteten Partitionen. | | | ''df -h'' | Zeigt freien/belegten Speicherplatz aller gemounteten Partitionen. |
 | **Transfer** | ''scp -r user@ip:/quelle/ "C:\ziel"'' | **Lokal in Win-PowerShell:** Rekursiver Download (''-r'') vom Server zu Windows. | | **Transfer** | ''scp -r user@ip:/quelle/ "C:\ziel"'' | **Lokal in Win-PowerShell:** Rekursiver Download (''-r'') vom Server zu Windows. |
 | | ''scp /quelle user@ip:/ziel/'' | Kopiert Datei via SSH von Linux zu Linux. | | | ''scp /quelle user@ip:/ziel/'' | Kopiert Datei via SSH von Linux zu Linux. |
 +| **Immich-CLI** | **In Win-PowerShell (Sitzungsvariablen):** ''$env:IMMICH_INSTANCE="http://192.168.178.128:2283/api"'' ''$env:IMMICH_KEY="wVujBLe3..."'' | Setzt die Verbindungsparameter für das Immich-CLI in der aktuellen Windows-Sitzung, um Parameter-Fehler zu vermeiden. |
 +| | ''immich upload --recursive "C:\pfad\"'' | Schiebt lokale Windows-Ordnerstrukturen stabil und parallel über das Netzwerk auf das TC (Sitzungsvariablen vorausgesetzt). |
 | **Rsync** | ''rsync -avzP --delete /quell/ /ziel/'' | **Backup-Standard:** Synchronisiert Ordner. ''-a'' (Rechte), ''-v'' (Details), ''-z'' (Kompression), ''-P'' (Fortschritt+Resume), ''--delete'' (löscht verwaiste Ziel-Dateien). | | **Rsync** | ''rsync -avzP --delete /quell/ /ziel/'' | **Backup-Standard:** Synchronisiert Ordner. ''-a'' (Rechte), ''-v'' (Details), ''-z'' (Kompression), ''-P'' (Fortschritt+Resume), ''--delete'' (löscht verwaiste Ziel-Dateien). |
 | **Docker** | ''docker compose up -d'' | Startet alle Container des Verzeichnisses im Hintergrund (Detached). | | **Docker** | ''docker compose up -d'' | Startet alle Container des Verzeichnisses im Hintergrund (Detached). |
Zeile 387: Zeile 406:
 | | ''sudo chmod -R 755 /pfad/'' | Setzt Rechte rekursiv: Besitzer darf alles (7), Gruppe/Andere nur Lesen/Ausführen (5). | | | ''sudo chmod -R 755 /pfad/'' | Setzt Rechte rekursiv: Besitzer darf alles (7), Gruppe/Andere nur Lesen/Ausführen (5). |
  
-**Tipp für Updates (Dreischritt):** 
-<code> 
-docker compose pull && docker compose up -d --remove-orphans && docker image prune -a 
-</code> 
 ===== 6. Dienst-spezifische Notizen ===== ===== 6. Dienst-spezifische Notizen =====
  
 ==== 6.1 Nginx Proxy Manager (NPM) ==== ==== 6.1 Nginx Proxy Manager (NPM) ====
 +
 === Installation & Protokoll === === Installation & Protokoll ===
   * **Interner Port / Protokoll:** 80 (HTTP), 443 (HTTPS), 81 (Web-UI Admin)   * **Interner Port / Protokoll:** 80 (HTTP), 443 (HTTPS), 81 (Web-UI Admin)
   * **Externer Zugriff:** Ports 80 & 443 direkt im Router auf das TC weitergeleitet.   * **Externer Zugriff:** Ports 80 & 443 direkt im Router auf das TC weitergeleitet.
   * **Abhängigkeiten:** Keinerlei Abhängigkeiten. Das Einfallstor für alle HTTP-Dienste.   * **Abhängigkeiten:** Keinerlei Abhängigkeiten. Das Einfallstor für alle HTTP-Dienste.
 +
 === Bedienung & Wichtige Befehle === === Bedienung & Wichtige Befehle ===
-  * **Web-UI:** [[http://192.168.178.200:81]] (temporär [[http://192.168.178.128:81]]) +  * **Web-UI:** [[http://192.168.178.128:81]] (Zentral auf dem ThinkCentre
-  * **Tuning:** In den Proxy-Hosts standardmäßig "Block Common Exploits" und "HTTP/2 Support" für Performance und Sicherheit aktivieren. Für Datei-Uploads (Nextcloud/Immich) ''client_max_body_size 512M;'' unter Advanced eintragen.+  * **Tuning:** In den Proxy-Hosts standardmäßig "Block Common Exploits" und "HTTP/2 Support" für Performance und Sicherheit aktivieren. Für massive Datei-Uploads (Nextcloud/Immich) zwingend ''client_max_body_size 0;'' (hebt das Limit komplett auf) oder ''client_max_body_size 10G;'' unter Advanced eintragen. 
 + 
 +=== Aktive Domain-Struktur (Manitu CNAME) === 
 +Alle Subdomains der Hauptdomain ''tietge.org'' sind im Manitu-Kundencenter als **CNAME-Eintrag** auf das DynDNS ''pfogel.selfhost.bz.'' gemappt, um dynamische IP-Wechsel der FritzBox abzufangen: 
 + 
 +^ Subdomain ^ Internes Docker-Ziel (TC) ^ Beschreibung / Zweck ^ 
 +| ''wg-wiki.tietge.org'' | ''wg-wiki:80'' | WG-DokuWiki Instanz | 
 +| ''band-wiki.tietge.org'' | ''band-wiki:80'' | Band-DokuWiki Instanz | 
 +| ''ak-wiki.tietge.org'' | ''ak-wiki:80'' | Arbeitskreis-DokuWiki Instanz | 
 +| ''nextcloud.tietge.org'' | ''nextcloud:80'' | Neue Familien-Zentrale auf dem TC | 
 +| ''fotos.tietge.org'' | ''immich_server:2283'' | Immich Foto-Infrastruktur | 
 +| ''porgys.tietge.org'' | ''ghost:2368'' | Ghost CMS Band-Webseite | 
 + 
 +=== Migrations- & Routing-Architektur (Fernzugriff) === 
 +Um während der Migrationsphase Ausfallzeiten zu verhindern, fungiert der NPM auf dem ThinkCentre als **zentrale Weiche (Reverse Proxy)** im Heimnetzwerk. Da er sowohl im isolierten ''server-network'' als auch im normalen LAN agiert, routet er den Traffic anhand der aufrufenden Domain bzw. des Subpfads: 
 + 
 +== 1. Fallback für bestehende Alt-Systeme (Raspberry Pi) == 
 +Damit alte Lesezeichen und Smartphone-Syncs über die Selfhost-Domain nicht brechen, leitet ein "Catch-All"-Proxy-Host Anfragen an ''pfogel.selfhost.bz'' per internem HTTPS (Port 443) direkt weiter an den alten Raspberry Pi (''192.168.178.200''). Da dort aktuell unter anderem noch die aktive Nextcloud läuft, bleibt dieser Haupt-Forward unberührt, bis alle Altdienste vollständig migriert sind. SSL-Zertifikate kollidieren hierbei nicht, da der NPM die äußere Verschlüsselung übernimmt und intern verschlüsselt mit dem Pi spricht (SSL-Terminierung). 
 + 
 +== 2. Nahtlose Wiki-Migration via Custom Locations (Zwei-Wege-System) == 
 +Die drei DokuWikis wurden erfolgreich auf das ThinkCentre migriert und laufen nativ und ohne Unterordner auf ihren jeweiligen ''tietge.org''-Subdomains. Damit alte Lesezeichen über die Selfhost-Unterpfade nicht ins Leere laufen (oder auf dem RPi sterben), fängt der NPM diese Pfade gezielt ab und leitet sie per Nginx-Rewrite transparent und unter Beibehaltung aller Unterseiten auf die neuen Domains um. 
 + 
 +Dazu sind im NPM unter dem Proxy-Host ''pfogel.selfhost.bz'' drei **Custom Locations** definiert: 
 + 
 +**Band-Wiki:** 
 +  * **Define Location:** ''/band-wiki'' 
 +  * **Scheme & Ziel:** ''http://192.168.178.128:8081'' 
 +  * **Erweiterte Nginx-Konfiguration (Zahnrad):** 
 +<code nginx> 
 +rewrite ^/band-wiki(.*)$ https://band-wiki.tietge.org$1 permanent; 
 +</code> 
 + 
 +**WG-Wiki:** 
 +  * **Define Location:** ''/wg-wiki'' 
 +  * **Scheme & Ziel:** ''http://192.168.178.128:8083'' 
 +  * **Erweiterte Nginx-Konfiguration (Zahnrad):** 
 +<code nginx> 
 +rewrite ^/wg-wiki(.*)$ https://wg-wiki.tietge.org$1 permanent; 
 +</code> 
 + 
 +**AK-Wiki:** 
 +  * **Define Location:** ''/ak-wiki'' 
 +  * **Scheme & Ziel:** ''http://192.168.178.128:8082'' 
 +  * **Erweiterte Nginx-Konfiguration (Zahnrad):** 
 +<code nginx> 
 +rewrite ^/ak-wiki(.*)$ https://ak-wiki.tietge.org$1 permanent; 
 +</code>
  
 +== 3. Zukünftiger Nextcloud-Umzug ==
 +Sobald die Nextcloud auf das TC migriert wird, wird analog zu den Wikis eine Custom Location für ''/nextcloud'' eingerichtet, um den Traffic aus dem Selfhost-Proxy herauszuschneiden. Bis dahin verbleibt der Nextcloud-Traffic im globalen Fallback auf den Raspberry Pi (''192.168.178.200'').
 ==== 6.2 Pi-hole ==== ==== 6.2 Pi-hole ====
 === Installation & Protokoll === === Installation & Protokoll ===
it/thinkcentreserver.1782768921.txt.gz · Zuletzt geändert: von matthias