Commit 4923a9
2026-04-09 15:48:24 Claude: Add CT 121 vaultwarden + pw.ls-cloud.biz| /dev/null .. container-und-vms.md | |
| @@ 0,0 1,33 @@ | |
| + | # Container & VMs |
| + | |
| + | > [!TIP] |
| + | > Diese Seite ist als schnelle Betriebsübersicht gedacht. Mit der Datentabelle kannst du nach Status, Rolle oder Namen suchen. |
| + | |
| + | ## Laufende Systeme |
| + | |
| + | | Typ | ID | Name | Status | IP / Zugriff | |
| + | |---|---:|---|---|---| |
| + | | CT | 101 | jellyfin | läuft | `192.168.178.55` | |
| + | | CT | 102 | pbs | läuft | `192.168.178.60` | |
| + | | CT | 103 | fileserver | läuft | `192.168.178.61` | |
| + | | CT | 104 | immich | läuft | `192.168.178.62` | |
| + | | CT | 108 | wiki | läuft | `192.168.178.77` | |
| + | | CT | 109 | claw | läuft | `192.168.178.75` | |
| + | | CT | 110 | dns | läuft | `192.168.178.78` | |
| + | | CT | 112 | claude-code | läuft | `192.168.178.82` / `terminal.ls-cloud.biz` | |
| + | | CT | 113 | cs16 | läuft | `192.168.178.83` / `cs.ls-cloud.biz` | |
| + | | CT | 114 | games | läuft | `192.168.178.84` / `games.ls-cloud.biz` | |
| + | | VM | 200 | Windows11Pro | gestoppt | Proxmox-Konsole / [[vm-200-windows11pro]] | |
| + | |
| + | {{DataTable}} |
| + | |
| + | ## Situative oder bewusst gestoppte Systeme |
| + | |
| + | - **CT 100 `guacamole`** — derzeit gestoppt |
| + | - **CT 105 `downloads`** — derzeit gestoppt |
| + | - **CT 106 `openclaw`** — frühere Instanz / derzeit gestoppt |
| + | - **CT 107 `monitoring`** — nur bei aktivem Monitoring relevant |
| + | - **CT 111 `webserver`** — derzeit gestoppt |
| + | |
| + | > [!WARNING] |
| + | > Bewusst gestoppt heißt hier nicht automatisch defekt. Es heißt nur: Caddy oder Nutzererwartung können trotzdem unerquicklich reagieren, wenn noch ein Pfad darauf zeigt. |
| /dev/null .. ct-100-guacamole.md | |
| @@ 0,0 1,23 @@ | |
| + | # CT 100 – Guacamole |
| + | |
| + | > [!NOTE] |
| + | > CT 100 ist der Guacamole-/Remote-Access-Kontext hinter `live.ls-cloud.biz`. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `100` |
| + | - **Name:** `guacamole` |
| + | - **Öffentliche URL:** `https://live.ls-cloud.biz` |
| + | |
| + | ## Einordnung |
| + | |
| + | - aktuell oft nur situativ relevant |
| + | - wenn CT 100 gestoppt ist, erklärt das öffentliche Fehlerbilder meist direkt |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 100 |
| + | curl -I http://192.168.178.54:8080 |
| + | curl -k -I https://live.ls-cloud.biz |
| + | ``` |
| /dev/null .. ct-101-jellyfin.md | |
| @@ 0,0 1,22 @@ | |
| + | # CT 101 – Jellyfin |
| + | |
| + | > [!NOTE] |
| + | > CT 101 hostet den Jellyfin-Dienst für `stream.ls-cloud.biz`. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `101` |
| + | - **Name:** `jellyfin` |
| + | - **IP:** `192.168.178.55` |
| + | - **Öffentliche URL:** `https://stream.ls-cloud.biz` |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 101 |
| + | curl -I http://192.168.178.55:8096 |
| + | curl -k -I https://stream.ls-cloud.biz |
| + | ``` |
| + | |
| + | > [!TIP] |
| + | > Wenn Medienprobleme auftreten, nicht nur Jellyfin selbst prüfen, sondern auch Storage-/Bind-Mount-Seite mitdenken. |
| /dev/null .. ct-102-pbs.md | |
| @@ 0,0 1,31 @@ | |
| + | # CT 102 `pbs` |
| + | |
| + | ## Rolle |
| + | CT 102 stellt den **Proxmox Backup Server** für `lscloud` bereit. |
| + | |
| + | ## Basisdaten |
| + | - **CT-ID:** 102 |
| + | - **Hostname:** `pbs` |
| + | - **IP:** `192.168.178.60` |
| + | - **Onboot:** ja |
| + | - **Mount:** `/mnt/storage/pbs-datastore` → `/mnt/datastore` |
| + | - **Öffentliche URL:** `https://backup.ls-cloud.biz` |
| + | |
| + | ## Technischer Aufbau |
| + | - Debian-LXC |
| + | - Dienst: `proxmox-backup-proxy` |
| + | - Datastore laut Systemstatus: |
| + | - `backups` → `/mnt/datastore` |
| + | |
| + | ## Betriebszustand |
| + | - `proxmox-backup-proxy` läuft |
| + | - Datastore `backups` ist gelistet |
| + | - Im Container sind zusätzlich fehlgeschlagene ZFS-Units sichtbar: |
| + | - `zfs-mount.service` |
| + | - `zfs-share.service` |
| + | Diese wirken im aktuellen LXC-Kontext eher wie unnötiges Systemrauschen als wie der eigentliche PBS-Betriebsweg. |
| + | |
| + | ## Relevante Hinweise |
| + | - PBS ist betriebsrelevant, aber oft erst dann interessant, wenn es zu spät ist |
| + | - Der Datastore hängt an einem Host-Mount und damit indirekt an der zentralen Storage-Schicht des Hosts |
| + | - Bei späteren Wartungen sollten Datastore-Pfad, Retention und Wiederherstellungsweg gesondert geprüft werden |
| /dev/null .. ct-103-fileserver.md | |
| @@ 0,0 1,25 @@ | |
| + | # CT 103 – Fileserver |
| + | |
| + | > [!NOTE] |
| + | > CT 103 hostet den Filebrowser-/Fileserver-Kontext im Setup. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `103` |
| + | - **Name:** `fileserver` |
| + | - **IP:** `192.168.178.61` |
| + | - **Öffentliche URL:** `https://files.ls-cloud.biz` |
| + | |
| + | ## Relevanter Dienst |
| + | |
| + | ```text |
| + | Filebrowser auf Port 8080 |
| + | ``` |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 103 |
| + | curl -I http://192.168.178.61:8080 |
| + | curl -k -I https://files.ls-cloud.biz |
| + | ``` |
| /dev/null .. ct-104-immich.md | |
| @@ 0,0 1,22 @@ | |
| + | # CT 104 – Immich |
| + | |
| + | > [!NOTE] |
| + | > CT 104 hostet die Immich-Instanz hinter `fotos.ls-cloud.biz`. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `104` |
| + | - **Name:** `immich` |
| + | - **IP:** `192.168.178.62` |
| + | - **Öffentliche URL:** `https://fotos.ls-cloud.biz` |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 104 |
| + | curl -I http://192.168.178.62:2283 |
| + | curl -k -I https://fotos.ls-cloud.biz |
| + | ``` |
| + | |
| + | > [!WARNING] |
| + | > Frühere Probleme lagen hier nicht nur an Web-/Proxy-Ebene, sondern auch an I/O-/Storage-Themen. |
| /dev/null .. ct-105-downloads.md | |
| @@ 0,0 1,33 @@ | |
| + | # CT 105 – Downloads |
| + | |
| + | > [!NOTE] |
| + | > CT 105 bündelt Download-Dienste wie qBittorrent, SABnzbd und Prowlarr. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `105` |
| + | - **Name:** `downloads` |
| + | - **IP:** `192.168.178.63` |
| + | |
| + | ## Öffentliche Domains |
| + | |
| + | - `https://qbit.ls-cloud.biz` |
| + | - `https://usenet.ls-cloud.biz` |
| + | - `https://dl.ls-cloud.biz` |
| + | |
| + | ## Relevante Ports |
| + | |
| + | ```text |
| + | 8081 qBittorrent |
| + | 8082 SABnzbd |
| + | 9696 Prowlarr |
| + | ``` |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 105 |
| + | curl -I http://192.168.178.63:8081 |
| + | curl -I http://192.168.178.63:8082 |
| + | curl -I http://192.168.178.63:9696 |
| + | ``` |
| /dev/null .. ct-108-wiki.md | |
| @@ 0,0 1,42 @@ | |
| + | # CT 108 – Wiki |
| + | |
| + | > [!NOTE] |
| + | > CT 108 hostet das interne Infrastruktur-Wiki auf Basis von OtterWiki. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `108` |
| + | - **Name:** `wiki` |
| + | - **IP:** `192.168.178.77` |
| + | - **Öffentliche URL:** `https://wiki.ls-cloud.biz` |
| + | |
| + | ## Relevante Pfade |
| + | |
| + | ```text |
| + | /opt/otterwiki/docker-compose.yml |
| + | /opt/otterwiki/plain-app-data/ |
| + | /opt/otterwiki/plain-app-data/repository/ |
| + | /opt/otterwiki/plain-app-data/settings.cfg |
| + | /opt/otterwiki/plain-app-data/db.sqlite |
| + | ``` |
| + | |
| + | ## Relevante Befehle |
| + | |
| + | Status prüfen: |
| + | |
| + | ```bash |
| + | pct status 108 |
| + | pct exec 108 -- docker ps -a |
| + | ``` |
| + | |
| + | Backend direkt prüfen: |
| + | |
| + | ```bash |
| + | curl -I http://192.168.178.77:8080 |
| + | curl -k -I https://wiki.ls-cloud.biz |
| + | ``` |
| + | |
| + | ## Wichtige Betriebsregel |
| + | |
| + | > [!IMPORTANT] |
| + | > Bei Host-seitigen Wiki-Edits immer sauber mounten/unmounten und Ownership im Repository im Blick behalten. Falsche Ownership kann den OtterWiki-Container in einen Restart-Loop schicken. |
| /dev/null .. ct-110-dns.md | |
| @@ 0,0 1,23 @@ | |
| + | # CT 110 – DNS |
| + | |
| + | > [!NOTE] |
| + | > CT 110 hostet aktuell Pi-hole und ist für den DNS-/Filterdienst im Setup relevant. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `110` |
| + | - **Name:** `dns` |
| + | - **IP:** `192.168.178.78` |
| + | - **Öffentliche URL:** `https://dns.ls-cloud.biz/admin/` |
| + | |
| + | ## Einordnung |
| + | |
| + | - Pi-hole läuft hier aktuell über den funktionierenden Web-/DNS-Pfad |
| + | - dokumentarisch ist wichtig: die reale Funktion zählt, nicht alte Installationsumwege |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 110 |
| + | curl -k -I https://dns.ls-cloud.biz/admin/ |
| + | ``` |
| /dev/null .. ct-111-webserver.md | |
| @@ 0,0 1,25 @@ | |
| + | # CT 111 – Webserver |
| + | |
| + | > [!NOTE] |
| + | > CT 111 ist der Webserver-/Webspace-Container hinter `web.ls-cloud.biz`. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **CT-ID:** `111` |
| + | - **Name:** `webserver` |
| + | - **IP:** `192.168.178.79` |
| + | - **Öffentliche URL:** `https://web.ls-cloud.biz` |
| + | |
| + | ## Relevanter Punkt |
| + | |
| + | > [!WARNING] |
| + | > Wenn CT 111 gestoppt ist, liefert `web.ls-cloud.biz` über Caddy typischerweise direkt `502`. |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | pct status 111 |
| + | pct exec 111 -- systemctl status nginx |
| + | curl -I http://192.168.178.79:80 |
| + | curl -k -I https://web.ls-cloud.biz |
| + | ``` |
| ct-113-cs16.md .. | |
| @@ 1,267 1,27 @@ | |
| - | # CT 113 `cs16` |
| + | # CT 113 – CS16 |
| - | ## Rolle |
| - | CT 113 betreibt **Counter-Strike 1.6 im Browser** via Xash3D WebAssembly (Projekt: [modesage/cs1.6-browser](https://github.com/modesage/cs1.6-browser)). |
| - | Der Server ist unter `https://192.168.178.83` erreichbar (selbstsigniertes Zertifikat → „Erweitert → Fortfahren"). |
| - | |
| - | --- |
| + | > [!NOTE] |
| + | > CT 113 hostet aktuell den CS16-/Browser-Frontend-Kontext. |
| ## Basisdaten | |
| - | | Eigenschaft | Wert | |
| - | |-----------------|-------------------------------| |
| - | | **CT-ID** | 113 | |
| - | | **Hostname** | `cs16` | |
| - | | **IP** | `192.168.178.83` | |
| - | | **OS** | Debian 13 (trixie) | |
| - | | **RAM** | 1 GB | |
| - | | **Disk** | 7,8 GB (ca. 3,2 GB belegt) | |
| - | |
| - | --- |
| - | |
| - | ## Ports |
| - | | Port | Protokoll | Dienst | |
| - | |------------|-----------|----------------------------| |
| - | | `443` | TCP/HTTPS | nginx → Reverse Proxy | |
| - | | `8080` | TCP | cs16browser (node serve, intern) | |
| - | | `8081` | TCP | WebSocket-Proxy (ws-proxy.js) | |
| - | | `27015` | UDP | HLDS Game-Server | |
| - | |
| - | --- |
| - | |
| - | ## Dateipfade |
| - | | Datei / Verzeichnis | Beschreibung | |
| - | |-----------------------------------------------------------------------|-------------------------------| |
| - | | `/opt/cs16browser/index.html` | Browser-Frontend | |
| - | | `/opt/cs16browser/index.html.bak` | Backup des Originals | |
| - | | `/opt/cs16browser/xash.wasm` | Xash3D Engine (gepatcht) | |
| - | | `/opt/cs16browser/xash.wasm.bak` | Backup vor WASM-Patch | |
| - | | `/opt/cs16browser/ws-proxy.js` | WebSocket → UDP Proxy | |
| - | | `/opt/cs16browser/valve.zip` | CS 1.6 Spieldaten | |
| - | | `/etc/nginx/sites-available/cs16` | nginx Konfiguration | |
| - | | `/etc/nginx/ssl/cs16.crt` + `cs16.key` | Selbstsigniertes Zertifikat | |
| - | | `/etc/systemd/system/hlds.service` | HLDS Systemd-Service | |
| - | | `/opt/cs16browser/get_cs_assets/steamcmd/cs/` | HLDS Root-Verzeichnis | |
| - | | `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/` | CS 1.6 Spielverzeichnis | |
| - | | `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/server.cfg` | HLDS Server-Konfiguration | |
| - | | `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/addons/metamod/` | Metamod-P Installation | |
| - | | `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/addons/amxmodx/` | AMX Mod X Installation | |
| - | |
| - | --- |
| - | |
| - | ## Services |
| - | ```bash |
| - | systemctl status hlds # HLDS Game-Server |
| - | systemctl status cs16browser # Node.js Frontend (Port 8080) |
| - | systemctl status cs16-proxy # WebSocket-Proxy (Port 8081) |
| - | systemctl status nginx # HTTPS Reverse Proxy |
| - | ``` |
| - | |
| - | Neustart: |
| - | ```bash |
| - | systemctl restart hlds |
| - | systemctl restart cs16browser |
| - | systemctl restart cs16-proxy |
| - | systemctl restart nginx |
| - | ``` |
| - | |
| - | --- |
| - | |
| - | ## HLDS Server-Konfiguration |
| - | Datei: `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/server.cfg` |
| - | |
| - | ``` |
| - | hostname "LS-CLOUD.biz FunServer" |
| - | sv_lan 0 # Internet-Play erlaubt |
| - | sv_maxspeed 320 |
| - | mp_timelimit 20 |
| - | sv_cheats 0 |
| - | ``` |
| - | |
| - | **Für Internet-Play von außen:** Port `27015 UDP` am Router auf `192.168.178.83` weiterleiten. |
| - | |
| - | --- |
| - | |
| - | ## AMX Mod X & Plugins |
| - | |
| - | **Installierte Software:** |
| - | - **Metamod-P** (in `addons/metamod/dlls/metamod.so`) |
| - | - **AMX Mod X 1.10.0 git5474** (in `addons/amxmodx/`) |
| - | - **GunGame 2.13c** (in `addons/amxmodx/plugins/gungame.amxx`) |
| - | |
| - | **liblist.gam** zeigt auf Metamod: |
| - | ``` |
| - | gamedll_linux "addons/metamod/dlls/metamod.so" |
| - | ``` |
| - | |
| - | **Metamod plugins.ini** (`addons/metamod/plugins.ini`): |
| - | ``` |
| - | linux addons/amxmodx/dlls/amxmodx_mm_i386.so |
| - | ``` |
| - | |
| - | **AMX Mod X plugins.ini** (`addons/amxmodx/configs/plugins.ini`): |
| - | Hier werden alle AMXX-Plugins geladen. Aktive Plugins (Auswahl): |
| - | ``` |
| - | admin.amxx |
| - | ; GunGame |
| - | gungame.amxx |
| - | ``` |
| - | |
| - | --- |
| - | |
| - | ## Admin einrichten (SteamID eintragen) |
| - | |
| - | Datei: `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/addons/amxmodx/configs/users.ini` |
| - | |
| - | Format: |
| - | ``` |
| - | ; "STEAMID / Name / IP" "Passwort" "Flags" "Zugriffsrechte" |
| - | "STEAM_0:0:XXXXXXXX" "" "abcdefghijklmnopqrstu" "" |
| - | ``` |
| - | |
| - | **Flags-Bedeutung (wichtigste):** |
| - | | Flag | Bedeutung | |
| - | |------|--------------------------| |
| - | | `a` | Immunity | |
| - | | `b` | Ban/Unban | |
| - | | `c` | Kick | |
| - | | `d` | RCON-Befehle | |
| - | | `e` | Cheats | |
| - | | `f` | Config-Änderungen | |
| - | | `g` | Cvar-Änderungen | |
| - | | `h` | Chat / Mute / Gag | |
| - | | `i` | Teamwechsel erzwingen | |
| - | | `j` | Spectator-Verwaltung | |
| - | | `k` | Passwort-Schutz | |
| - | | `l` | RCON-Zugriff | |
| - | | `z` | Root-Zugriff (alles) | |
| - | |
| - | **Vollständiger Admin (Root):** |
| - | ``` |
| - | "STEAM_0:0:XXXXXXXX" "" "z" "" |
| - | ``` |
| - | |
| - | **SteamID herausfinden:** |
| - | ``` |
| - | # Im HLDS-Log erscheint beim Einloggen: |
| - | # Player "Name" with STEAMID "STEAM_0:X:XXXXXXX" connected |
| - | ``` |
| - | Oder über: [steamid.io](https://steamid.io) / [steamidfinder.com](https://steamidfinder.com) |
| - | |
| - | **Nach Änderung neu laden (kein Neustart nötig):** |
| - | ```bash |
| - | # Entweder HLDS neu starten: |
| - | systemctl restart hlds |
| - | |
| - | # Oder im Spiel per RCON (als Admin): |
| - | amx_reloadadmins |
| - | ``` |
| - | |
| - | --- |
| - | |
| - | ## GunGame konfigurieren |
| - | Konfigurationsdatei: `/opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/addons/amxmodx/configs/gungame.cfg` |
| + | - **CT-ID:** `113` |
| + | - **Name:** `cs16` |
| + | - **IP:** `192.168.178.83` |
| + | - **Öffentliche URL:** `https://cs.ls-cloud.biz` |
| - | Wichtige CVars: |
| - | ``` |
| - | gg_multikill_override 0 # Kills pro Waffe (0 = Standard je nach Waffe) |
| - | gg_knife_pro 1 # Knife-Kill → Gegner stuft ab |
| - | gg_deathmatch 0 # Deathmatch-Modus (kein Team) |
| - | gg_vote_intermission 0 # Map-Vote nach dem Spiel |
| - | ``` |
| - | |
| - | --- |
| + | ## Relevante Ports |
| - | ## RCON (Remote Console) |
| - | |
| - | Im Spiel oder per Tool: |
| - | ``` |
| - | rcon_password "PASSWORT" # Passwort setzen (in server.cfg) |
| - | rcon status # Server-Status |
| - | rcon amx_plugins # Geladene AMXX-Plugins anzeigen |
| - | rcon amx_reloadadmins # Admins neu laden |
| - | rcon changelevel de_dust2 # Map wechseln |
| - | rcon sv_cheats 1 # Cheats aktivieren |
| + | ```text |
| + | 80 nginx |
| + | 443 nginx |
| + | 8080 Node/Webdienst |
| + | 8081 WebSocket-/Begleitdienst |
| ``` | |
| - | --- |
| - | |
| - | ## Technische Fixes & Hintergründe |
| - | |
| - | ### Problem: `[Xash3D]` vor dem Nicknamen |
| - | **Ursache:** Xash3D Engine fügt automatisch `[Xash3D]` per `setinfo` vor den Spielernamen. |
| - | **Fix:** Binary-Patch in `xash.wasm`: |
| - | - Offset `3187865`: `[Xash3D]%s` → `%s` + Null-Bytes |
| - | - Offset `3341750`: `[Xash3D]%s"` → Null-Bytes + `%s"` |
| - | - Backup: `xash.wasm.bak` |
| - | |
| - | ### Problem: `AsciiToString is not a function` |
| - | **Fix:** Eigene `wasmReadStr()`-Implementierung über direkten Speicherzugriff. |
| - | |
| - | ### Problem: `HEAPU8 undefined` |
| - | **Ursache:** `raw.js` ist eine IIFE, `HEAPU8` ist Closure-Variable – nicht auf `Module` exponiert. |
| - | **Fix:** `Module["instantiateWasm"]`-Hook fängt WASM-Instance ab → `_wasmMemory` + `_wasmExports.malloc` direkt verfügbar. |
| - | |
| - | ### Problem: `filesystem_stdio.wasm: file not found` |
| - | **Fix:** WASM-Bytes werden in mehrere Pfade im virtuellen FS geschrieben (inkl. `/ddls/`-Quirk). |
| - | |
| - | ### Wichtige Erkenntnis zu `raw.js` |
| - | - `HEAPU8`, `UTF8ToString`, `_malloc` sind **Closure-Variablen**, NICHT auf `Module` |
| - | - **Auf Module exponiert:** `Module["ccall"]`, `Module["FS"]`, `Module["_Cmd_ExecuteString"]` |
| - | |
| - | --- |
| - | |
| - | ## Wichtige HLDS-Befehle (direkt auf dem Server) |
| + | ## Prüfung |
| ```bash | |
| - | # HLDS-Log live ansehen |
| - | journalctl -u hlds -f |
| - | |
| - | # Map wechseln (ohne Neustart) |
| - | # Via RCON im Spiel: rcon changelevel de_dust2 |
| - | |
| - | # Mapcycle bearbeiten |
| - | nano /opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/mapcycle.txt |
| - | |
| - | # Verfügbare Maps anzeigen |
| - | ls /opt/cs16browser/get_cs_assets/steamcmd/cs/cstrike/maps/*.bsp | xargs -n1 basename | sed 's/.bsp//' |
| - | ``` |
| - | |
| - | --- |
| - | |
| - | ## Bekannte Installationshinweise |
| - | |
| - | ### AMX Mod X neu installieren |
| - | ```bash |
| - | # AMX Mod X 1.10.0 Download-URL: |
| - | # https://www.amxmodx.org/amxxdrop/1.10/amxmodx-1.10.0-git5474-base-linux.tar.gz |
| - | # https://www.amxmodx.org/amxxdrop/1.10/amxmodx-1.10.0-git5474-cstrike-linux.tar.gz |
| - | |
| - | # Metamod-P: |
| - | # https://github.com/mittorn/metamod-p/releases/download/1/metamod.so |
| - | |
| - | # Installiert nach: |
| - | tar -xzf amxxdrop-base.tar.gz -C /opt/.../cstrike/ |
| - | tar -xzf amxxdrop-cstrike.tar.gz -C /opt/.../cstrike/ |
| - | mkdir -p /opt/.../cstrike/addons/metamod/dlls |
| - | cp metamod.so /opt/.../cstrike/addons/metamod/dlls/ |
| - | ``` |
| - | |
| - | ### AMXX-Plugin kompilieren (auf Proxmox Host) |
| - | ```bash |
| - | # 32-Bit-Libs installieren (einmalig): |
| - | dpkg --add-architecture i386 && apt-get update && apt-get install -y libc6-i386 |
| - | |
| - | # Compiler aus Container holen: |
| - | pct pull 113 /opt/.../scripting/amxxpc /tmp/amxxpc |
| - | pct pull 113 /opt/.../scripting/amxxpc32.so /tmp/amxxpc32.so |
| - | |
| - | # Include-Verzeichnis holen: |
| - | pct exec 113 -- tar -czf /tmp/includes.tar.gz -C /opt/.../scripting include |
| - | pct pull 113 /tmp/includes.tar.gz /tmp/ |
| - | |
| - | # Kompilieren: |
| - | cd /tmp && tar -xzf includes.tar.gz |
| - | chmod +x amxxpc |
| - | ./amxxpc mein_plugin.sma -i./include |
| + | pct status 113 |
| + | curl -k -I https://cs.ls-cloud.biz |
| ``` | |
| ct-114-games.md .. | |
| @@ 1,49 1,33 @@ | |
| - | # CT 114 `games` |
| + | # CT 114 – Games |
| - | ## Rolle |
| - | CT 114 hostet den web-basierten Emulator (EmulatorJS) für Retro-Spiele im Browser. |
| + | > [!NOTE] |
| + | > CT 114 hostet aktuell einen Games-/EmulatorJS-Webdienst. |
| ## Basisdaten | |
| - | - **CT-ID:** 114 |
| - | - **Hostname:** `games` |
| + | |
| + | - **CT-ID:** `114` |
| + | - **Name:** `games` |
| - **IP:** `192.168.178.84` | |
| - **Öffentliche URL:** `https://games.ls-cloud.biz` | |
| - | - **Backend-Port:** `8080` |
| - | - **RAM:** 2048 MB |
| - | - **Onboot:** ja |
| - | |
| - | ## Technischer Aufbau |
| - | - Debian-LXC |
| - | - nginx serviert EmulatorJS (statisch, kein Docker) |
| - | - Node.js ROM-API (`/opt/emulatorjs/api.js`, Port 3001 intern) |
| - | - ROMs: extern auf Proxmox-Host via `lxc.mount.entry` eingebunden |
| - | |
| - | ## ROM-Speicherort |
| - | - **Proxmox Host:** `/mnt/storage/fileserver/data/roms/[system]/` |
| - | - **Im CT sichtbar als:** `/opt/emulatorjs/data/roms/[system]/` |
| - | - **Im Fileserver (CT 103) sichtbar als:** `/srv/storage/fileserver/data/roms/[system]/` |
| - | - Unterstützte Systeme: `nes`, `snes`, `gba`, `gbc`, `n64`, `psx`, `genesis`, `arcade` |
| - | ## Snapshots |
| - | Snapshots funktionieren normal – ROMs sind via `lxc.mount.entry` eingebunden (kein `mp0`), werden daher nicht mitgesichert. |
| + | ## Relevante Dienste |
| - | ## Cron-Job auf dem Proxmox Host |
| + | ```text |
| + | nginx auf :8080 |
| + | Node lokal auf 127.0.0.1:3001 |
| + | ``` |
| - | Ein Cron-Job auf dem **Proxmox Host** (`/etc/cron.d/rom-chmod`) sorgt dafür, dass alle ROMs automatisch korrekte Leserechte (`644`) bekommen – nötig weil Samba-Uploads die Rechte auf `640` setzen. |
| + | ## Relevanter Mount |
| - | ``` |
| - | */2 * * * * root find /mnt/storage/fileserver/data/roms -type f ! -perm 644 -exec chmod 644 {} \; |
| + | ```text |
| + | /mnt/storage/fileserver/data/roms |
| + | -> /opt/emulatorjs/data/roms |
| ``` | |
| - | Läuft alle 2 Minuten, korrigiert nur Dateien mit falschen Rechten. |
| + | ## Prüfung |
| - | ### Cron entfernen |
| ```bash | |
| - | rm /etc/cron.d/rom-chmod |
| + | pct status 114 |
| + | curl -I http://192.168.178.84:8080 |
| + | curl -k -I https://games.ls-cloud.biz |
| ``` | |
| - | |
| - | ## Dienste |
| - | | Dienst | Beschreibung | |
| - | |--------|--------------| |
| - | | `nginx` | Web-Frontend + ROM-Serving (Port 8080) | |
| - | | `emulatorjs-api.service` | ROM-API (Port 3001 intern) | |
| /dev/null .. ct-121-vaultwarden.md | |
| @@ 0,0 1,70 @@ | |
| + | # Vaultwarden Passwortmanager (CT 121) |
| + | |
| + | ## Übersicht |
| + | |
| + | | Parameter | Wert | |
| + | |-----------|------| |
| + | | CT-ID | 121 | |
| + | | Hostname | vaultwarden | |
| + | | IP | 192.168.178.91 | |
| + | | OS | Debian 12 Bookworm | |
| + | | CPU / RAM / Disk | 1 vCPU / 256 MB / 8 GB SSD | |
| + | | Software | Vaultwarden 1.35.4 (aus Source), Web Vault v2026.1.1 | |
| + | | Installiert | April 2026 | |
| + | |
| + | ## Ports & Dienste |
| + | |
| + | | Port | Dienst | Sichtbar | |
| + | |------|--------|----------| |
| + | | 8080 TCP | Vaultwarden (Rocket HTTP) | intern → Caddy | |
| + | |
| + | ## Dateipfade |
| + | |
| + | | Pfad | Inhalt | |
| + | |------|--------| |
| + | | `/opt/vaultwarden/vaultwarden` | Binary (selbst kompiliert) | |
| + | | `/opt/vaultwarden/web-vault/` | Web Vault UI | |
| + | | `/opt/vaultwarden/data/` | Datenbank, Keys, Attachments | |
| + | | `/opt/vaultwarden/.env` | Konfiguration | |
| + | | `/root/vaultwarden-credentials.txt` | Admin-Passwort (auf Proxmox-Host) | |
| + | |
| + | ## Konfiguration (.env) |
| + | |
| + | ```ini |
| + | DOMAIN=https://pw.ls-cloud.biz |
| + | ROCKET_PORT=8080 |
| + | WEBSOCKET_ENABLED=true |
| + | SIGNUPS_ALLOWED=false # nach erstem Account deaktivieren |
| + | ADMIN_TOKEN=<argon2id-hash> |
| + | ``` |
| + | |
| + | ## Systemd Service |
| + | |
| + | ```bash |
| + | systemctl status vaultwarden |
| + | systemctl restart vaultwarden |
| + | ``` |
| + | |
| + | ## Admin-Panel |
| + | |
| + | - URL: `https://pw.ls-cloud.biz/admin` |
| + | - Passwort: → `/root/vaultwarden-credentials.txt` auf Proxmox-Host |
| + | |
| + | ## Bitwarden-Client verbinden |
| + | |
| + | 1. Bitwarden Browser Extension → Einstellungen → Server-URL |
| + | 2. Eintragen: `https://pw.ls-cloud.biz` |
| + | 3. Account anlegen / einloggen |
| + | |
| + | ## Update-Prozedur |
| + | |
| + | ```bash |
| + | # In CT 121 als root |
| + | # 1. Neues Binary kompilieren (oder Binary von inoffiziellem Spiegel) |
| + | # 2. Service stoppen |
| + | systemctl stop vaultwarden |
| + | # 3. Binary ersetzen |
| + | cp new_vaultwarden /opt/vaultwarden/vaultwarden |
| + | # 4. Service starten |
| + | systemctl start vaultwarden |
| + | ``` |
| /dev/null .. infrastruktur-uebersicht.md | |
| @@ 0,0 1,87 @@ | |
| + | # Infrastruktur-Übersicht |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite ist die schnelle Einordnung für `lscloud`: Was ist Kern, was hängt woran, und welche Systeme sind operativ wirklich wichtig? |
| + | |
| + | ## Betriebsbild |
| + | |
| + | | Bereich | Systeme | Bedeutung | |
| + | |---|---|---| |
| + | | Core | Host, Caddy, CT 108 `wiki`, CT 109 `claw`, CT 110 `dns` | Fundament für Zugriff, Doku und Agent-Kontext | |
| + | | Medien | CT 101 `jellyfin`, CT 103 `fileserver`, CT 104 `immich`, CT 105 `downloads` | Inhalte, Bibliotheken, Datenflüsse | |
| + | | Spezialdienste | CT 112 `claude-code`, CT 113 `cs16`, CT 114 `games` | Webterminal, CS-Frontend, Games/EmulatorJS | |
| + | | Nebenobjekte | CT 100 `guacamole`, CT 107 `monitoring`, VM 200 `Windows11Pro` | situativ wichtig, aber bewusst Teil des Setups | |
| + | |
| + | ## Gesamtbild |
| + | |
| + | ```mermaid |
| + | flowchart LR |
| + | classDef ingress fill:#0f172a,stroke:#64748b,color:#f8fafc; |
| + | classDef core fill:#1e293b,stroke:#94a3b8,color:#f8fafc; |
| + | classDef svc fill:#1f2937,stroke:#6b7280,color:#f9fafb; |
| + | classDef spec fill:#312e81,stroke:#818cf8,color:#eef2ff; |
| + | classDef aux fill:#3f3f46,stroke:#a1a1aa,color:#fafafa; |
| + | |
| + | Internet[Internet / externe Clients]:::ingress --> Caddy[Caddy auf lscloud]:::ingress |
| + | |
| + | subgraph Core[Core-Dienste] |
| + | Admin[Host Admin / Proxmox]:::core |
| + | Wiki[CT 108 Wiki]:::core |
| + | DNS[CT 110 DNS]:::core |
| + | Claw[CT 109 Claw]:::core |
| + | end |
| + | |
| + | subgraph Media[Medien & Daten] |
| + | Files[CT 103 Fileserver]:::svc |
| + | Jelly[CT 101 Jellyfin]:::svc |
| + | Immich[CT 104 Immich]:::svc |
| + | Downloads[CT 105 Downloads]:::svc |
| + | Web[CT 111 Webserver]:::svc |
| + | end |
| + | |
| + | subgraph Special[Spezialdienste] |
| + | Terminal[CT 112 Terminal]:::spec |
| + | CS[CT 113 CS16]:::spec |
| + | Games[CT 114 Games]:::spec |
| + | end |
| + | |
| + | subgraph Other[Nebenobjekte] |
| + | Guac[CT 100 Guacamole]:::aux |
| + | Mon[CT 107 Monitoring]:::aux |
| + | Win[VM 200 Windows11]:::aux |
| + | end |
| + | |
| + | Caddy --> Admin |
| + | Caddy --> Wiki |
| + | Caddy --> DNS |
| + | Caddy --> Files |
| + | Caddy --> Jelly |
| + | Caddy --> Immich |
| + | Caddy --> Downloads |
| + | Caddy --> Web |
| + | Caddy --> Terminal |
| + | Caddy --> CS |
| + | Caddy --> Games |
| + | Caddy --> Guac |
| + | Claw -. Agenten-/OpenClaw-Kontext .-> Wiki |
| + | Win -. Monitoring-Pfad .-> Mon |
| + | ``` |
| + | |
| + | ## Operative Lesart |
| + | |
| + | > [!TIP] |
| + | > Wenn du öffentlich ein Problem siehst, beginne meist bei **Caddy**, dann beim **Zielsystem**, dann beim **Dienst im Zielsystem**. |
| + | |
| + | > [!IMPORTANT] |
| + | > CT 109 ist der relevante OpenClaw-/Agent-Kontext. CT 112 ist aktuell eher Webterminal-/Claude-Code-Umfeld und nicht einfach als alte Jarvis-Phase zu lesen. |
| + | |
| + | > [!WARNING] |
| + | > Gestoppte Systeme können in der öffentlichen Wahrnehmung trotzdem Fehler auslösen, wenn Caddy noch aktiv auf sie zeigt. |
| + | |
| + | ## Weiterführende Seiten |
| + | |
| + | - [[services-uebersicht]] |
| + | - [[netz-und-domains]] |
| + | - [[container-und-vms]] |
| + | - [[runbooks]] |
| + | - [[lscloud-inventur]] |
| /dev/null .. lscloud-inventur.md | |
| @@ 0,0 1,31 @@ | |
| + | # lscloud Inventur |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite ist die längere Host-Inventur. Für den schnellen Alltag sind meist [[services-uebersicht]], [[container-und-vms]] und [[stoerungen-und-fehlerbilder]] praktischer. |
| + | |
| + | ## Kurzfakten |
| + | |
| + | | Bereich | Stand | |
| + | |---|---| |
| + | | Hostname | `lscloud` | |
| + | | Plattform | Proxmox-Host | |
| + | | LAN-IP | `192.168.178.46` | |
| + | | Tailnet | `100.90.138.17` | |
| + | | Edge-Dienst | `Caddy` | |
| + | | Relevanter Agent-Kontext | CT 109 `claw` | |
| + | |
| + | ## Wichtige Beobachtungen |
| + | |
| + | - Caddy ist der öffentliche Einstiegspunkt für nahezu alle Domains |
| + | - CT 108 hostet das Wiki |
| + | - CT 109 ist der relevante OpenClaw-/Agent-Kontext |
| + | - CT 112 liefert aktuell zusätzlich ein Webterminal |
| + | - CT 114 ist aktuell `games` und nicht mehr als früherer RetroArch-Zwischenstand zu lesen |
| + | |
| + | ## Wohin bei welcher Frage? |
| + | |
| + | - Domains / Backends → [[services-uebersicht]] |
| + | - Laufende / gestoppte Systeme → [[container-und-vms]] |
| + | - Netzwerk / Ziele → [[netz-und-domains]] |
| + | - typische Ausfälle → [[stoerungen-und-fehlerbilder]] |
| + | - wiederkehrende Eingriffe → [[runbooks]] |
| /dev/null .. medien-und-daten.md | |
| @@ 0,0 1,20 @@ | |
| + | # Medien & Daten |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite bündelt die relevanten Medien-/Daten-Dienste des Setups. |
| + | |
| + | ## Schnellzugriff |
| + | |
| + | - [[ct-101-jellyfin]] |
| + | - [[ct-103-fileserver]] |
| + | - [[ct-104-immich]] |
| + | - [[ct-105-downloads]] |
| + | - [[ct-111-webserver]] |
| + | |
| + | ## Seitenindex |
| + | |
| + | {{PageIndex |
| + | |src=ct-10* |
| + | |toc=false |
| + | |toggle=false |
| + | }} |
| /dev/null .. netz-und-domains.md | |
| @@ 0,0 1,51 @@ | |
| + | # Netz & Domains |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite beantwortet zwei praktische Fragen: Welche Adresse gehört wozu — und welche Domain zeigt am Ende wohin? |
| + | |
| + | ## Kernadressen |
| + | |
| + | | Zweck | Adresse | Hinweis | |
| + | |---|---|---| |
| + | | Host / Proxmox | `192.168.178.46` | physischer Proxmox-Host | |
| + | | Tailscale | `100.90.138.17` | Tailnet-Adresse des Hosts | |
| + | | Wiki | `192.168.178.77` | CT 108 | |
| + | | Claw / OpenClaw | `192.168.178.75` | CT 109 | |
| + | | Claude-Code / Terminal | `192.168.178.82` | CT 112 | |
| + | | CS16 | `192.168.178.83` | CT 113 | |
| + | | Games | `192.168.178.84` | CT 114 | |
| + | |
| + | ## Domain-Matrix |
| + | |
| + | | Domain | Ziel | Zweck | |
| + | |---|---|---| |
| + | | `admin.ls-cloud.biz` | Host / Proxmox | Adminoberfläche | |
| + | | `wiki.ls-cloud.biz` | CT 108 | Infrastruktur-Wiki | |
| + | | `dns.ls-cloud.biz` | CT 110 | Pi-hole | |
| + | | `files.ls-cloud.biz` | CT 103 | Filebrowser | |
| + | | `stream.ls-cloud.biz` | CT 101 | Jellyfin | |
| + | | `fotos.ls-cloud.biz` | CT 104 | Immich | |
| + | | `qbit.ls-cloud.biz` | CT 105 | qBittorrent | |
| + | | `usenet.ls-cloud.biz` | CT 105 | SABnzbd | |
| + | | `dl.ls-cloud.biz` | CT 105 | Prowlarr | |
| + | | `cs.ls-cloud.biz` | CT 113 | CS16 Browser-Frontend | |
| + | | `games.ls-cloud.biz` | CT 114 | Games / EmulatorJS | |
| + | | `terminal.ls-cloud.biz` | CT 112 | Webterminal | |
| + | | `web.ls-cloud.biz` | CT 111 | Webserver | |
| + | | `live.ls-cloud.biz` | CT 100 / Altpfad | Guacamole | |
| + | |
| + | {{DataTable}} |
| + | |
| + | ## Einordnung |
| + | |
| + | > [!TIP] |
| + | > Für Außenwirkung ist diese Seite die schnellste Wahrheit: Domain → Ziel → Zweck. |
| + | |
| + | > [!WARNING] |
| + | > Eine sauber konfigurierte Domain hilft dir genau gar nicht, wenn das Zielsystem gestoppt ist oder der Backend-Port nicht antwortet. |
| + | |
| + | ## Merksätze |
| + | |
| + | - Neue Domains immer gegen **Caddy**, **Backend-Port** und **Dienststatus** prüfen. |
| + | - Öffentliche Fehlerbilder sind oft schlichter, als sie aussehen: gestoppter CT, falscher Port, kaputter Backend-Dienst. |
| + | - `terminal.ls-cloud.biz` ist ein Webterminal, kein klassischer Webdienst. |
| /dev/null .. openclaw-agent-architektur.md | |
| @@ 0,0 1,28 @@ | |
| + | # OpenClaw & Agent-Architektur |
| + | |
| + | ## Zweck |
| + | |
| + | Diese Seite beschreibt den relevanten Agent-/OpenClaw-Kontext auf `lscloud` in einer lesbaren Betriebsform. |
| + | |
| + | ## Architektur |
| + | |
| + | ```mermaid |
| + | flowchart LR |
| + | classDef edge fill:#0f172a,stroke:#475569,color:#e5e7eb; |
| + | classDef core fill:#1e293b,stroke:#94a3b8,color:#f8fafc; |
| + | classDef relay fill:#334155,stroke:#cbd5e1,color:#f8fafc; |
| + | classDef ui fill:#312e81,stroke:#818cf8,color:#eef2ff; |
| + | |
| + | User[Nutzer / Chat / Webzugriff]:::edge --> UI[Web-/Bot-/Frontend-Schicht]:::ui |
| + | UI --> Relay[Host-Relay / Integrationspfad]:::relay |
| + | Relay --> Claw[CT 109 Claw\nOpenClaw aktiv]:::core |
| + | Claw --> Gateway[Gateway 127.0.0.1:18789]:::core |
| + | Claw -. Browser-Control .-> Browser[127.0.0.1:18791]:::core |
| + | ``` |
| + | |
| + | ## Einordnung |
| + | |
| + | - **CT 109** ist der aktive relevante OpenClaw-Kontext |
| + | - `18789` ist der Gateway-Kontext |
| + | - `18791` ist **Browser-Control**, nicht die Chat-API |
| + | - frühere oder geänderte Frontends ändern nichts am Kern: CT 109 ist die maßgebliche Agent-Schicht |
| /dev/null .. operativer-einstieg.md | |
| @@ 0,0 1,40 @@ | |
| + | # Operativer Einstieg |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite beantwortet die praktische Frage: **Womit fange ich an, wenn etwas kaputt ist oder ich etwas schnell einordnen muss?** |
| + | |
| + | ## Wenn eine öffentliche Domain nicht geht |
| + | |
| + | 1. [[services-uebersicht]] öffnen |
| + | 2. Zielsystem identifizieren |
| + | 3. In [[container-und-vms]] prüfen, ob der CT/ die VM läuft |
| + | 4. Backend-Port und Dienst prüfen |
| + | 5. erst danach Caddy verdächtigen |
| + | |
| + | ## Wenn das Wiki selbst Probleme macht |
| + | |
| + | 1. [[stoerungen-und-fehlerbilder]] |
| + | 2. [[ct-108-wiki]] |
| + | 3. [[runbooks]] |
| + | |
| + | ## Wenn es um OpenClaw / Agenten geht |
| + | |
| + | 1. CT 109 `claw` im Blick behalten |
| + | 2. `127.0.0.1:18789` = Gateway |
| + | 3. `127.0.0.1:18791` = Browser-Control |
| + | 4. [[runbooks]] und [[infrastruktur-uebersicht]] nutzen |
| + | |
| + | ## Wenn du nur schnell Orientierung brauchst |
| + | |
| + | - [[home]] |
| + | - [[services-uebersicht]] |
| + | - [[container-und-vms]] |
| + | - [[netz-und-domains]] |
| + | |
| + | ## Nützliche Seiten |
| + | |
| + | {{PageIndex |
| + | |src=* |
| + | |toc=false |
| + | |toggle=false |
| + | }} |
| /dev/null .. runbooks.md | |
| @@ 0,0 1,97 @@ | |
| + | # Runbooks |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite bündelt wiederkehrende Eingriffe und typische Grundregeln. Kurz genug für den Alltag, präzise genug für den Betrieb. |
| + | |
| + | ## Wiki direkt auf dem Host bearbeiten |
| + | |
| + | ### 1. Container mounten |
| + | |
| + | ```bash |
| + | pct mount 108 |
| + | ``` |
| + | |
| + | ### 2. Im aktiven Repository arbeiten |
| + | |
| + | ```bash |
| + | cd /var/lib/lxc/108/rootfs/opt/otterwiki/plain-app-data/repository/ |
| + | ``` |
| + | |
| + | ### 3. Ownership nach Änderungen im Blick behalten |
| + | |
| + | > [!IMPORTANT] |
| + | > CT 108 ist ein unprivilegierter LXC. Falsche Ownership im Repository kann OtterWiki in einen Restart-Loop schicken. |
| + | |
| + | Prüfen: |
| + | |
| + | ```bash |
| + | ls -l /var/lib/lxc/108/rootfs/opt/otterwiki/plain-app-data/repository/ |
| + | ``` |
| + | |
| + | ### 4. Immer sauber unmounten |
| + | |
| + | ```bash |
| + | pct unmount 108 |
| + | pct config 108 | grep '^lock:' |
| + | ``` |
| + | |
| + | ## Wenn das Wiki plötzlich 502 liefert |
| + | |
| + | Prüfen: |
| + | |
| + | ```bash |
| + | pct status 108 |
| + | pct exec 108 -- docker ps -a |
| + | pct exec 108 -- docker logs --tail 100 otterwiki_otterwiki_1 |
| + | curl -I http://192.168.178.77:8080 |
| + | curl -k -I https://wiki.ls-cloud.biz |
| + | ``` |
| + | |
| + | > [!TIP] |
| + | > Wenn Caddy 502 liefert, ist häufig nicht Caddy kaputt, sondern das Backend in CT 108. |
| + | |
| + | ## OpenClaw-Kontext prüfen |
| + | |
| + | Relevanter Container: |
| + | |
| + | ```text |
| + | CT 109 `claw` |
| + | ``` |
| + | |
| + | Lokale Ports: |
| + | |
| + | ```text |
| + | Gateway: 127.0.0.1:18789 |
| + | Browser-Control: 127.0.0.1:18791 |
| + | ``` |
| + | |
| + | > [!WARNING] |
| + | > `18791` ist Browser-Control und nicht einfach die Chat-API. |
| + | |
| + | ## Caddy prüfen |
| + | |
| + | Config-Datei: |
| + | |
| + | ```bash |
| + | /etc/caddy/Caddyfile |
| + | ``` |
| + | |
| + | Dienststatus: |
| + | |
| + | ```bash |
| + | systemctl status caddy |
| + | ``` |
| + | |
| + | Service-nahe Validierung: |
| + | |
| + | ```bash |
| + | export $(systemctl show caddy -p Environment --value | xargs) |
| + | caddy validate --config /etc/caddy/Caddyfile |
| + | ``` |
| + | |
| + | > [!IMPORTANT] |
| + | > Die Validierung außerhalb des Service-Kontexts kann in diesem Setup am fehlenden Cloudflare-Token scheitern und ist dann nur begrenzt aussagekräftig. |
| + | |
| + | ## tmux |
| + | |
| + | - [[tmux]] |
| /dev/null .. services-uebersicht.md | |
| @@ 0,0 1,38 @@ | |
| + | # Services & Domains auf `lscloud` |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite ist als operative Service-Matrix gedacht. Sortieren, suchen und querlesen soll hier schneller gehen als Rätselraten. |
| + | |
| + | ## Service-Matrix |
| + | |
| + | | Domain | Backend | System | Dienst | Status | |
| + | |---|---|---|---|---| |
| + | | `admin.ls-cloud.biz` | `https://localhost:8006` | Host `lscloud` | Proxmox Web UI | erreichbar | |
| + | | `backup.ls-cloud.biz` | `https://192.168.178.60:8007` | CT 102 `pbs` | Proxmox Backup Server | erreichbar | |
| + | | `files.ls-cloud.biz` | `192.168.178.61:8080` | CT 103 `fileserver` | Filebrowser | erreichbar | |
| + | | `stream.ls-cloud.biz` | `192.168.178.55:8096` | CT 101 `jellyfin` | Jellyfin | erreichbar | |
| + | | `fotos.ls-cloud.biz` | `192.168.178.62:2283` | CT 104 `immich` | Immich | erreichbar | |
| + | | `qbit.ls-cloud.biz` | `192.168.178.63:8081` | CT 105 `downloads` | qBittorrent | situativ | |
| + | | `usenet.ls-cloud.biz` | `192.168.178.63:8082` | CT 105 `downloads` | SABnzbd | situativ | |
| + | | `dl.ls-cloud.biz` | `192.168.178.63:9696` | CT 105 `downloads` | Prowlarr | situativ | |
| + | | `net.ls-cloud.biz` | `192.168.178.72:3000` | CT 107 `monitoring` | ntopng / Monitoring | situativ | |
| + | | `wiki.ls-cloud.biz` | `192.168.178.77:8080` | CT 108 `wiki` | OtterWiki | erreichbar | |
| + | | `dns.ls-cloud.biz` | `192.168.178.78:80` | CT 110 `dns` | Pi-hole | erreichbar | |
| + | | `web.ls-cloud.biz` | `192.168.178.79:80` | CT 111 `webserver` | Webserver / Webspace | nur wenn CT 111 läuft | |
| + | | `cs.ls-cloud.biz` | `192.168.178.83:8080/8081` | CT 113 `cs16` | Counter-Strike Browser-Frontend | erreichbar | |
| + | | `games.ls-cloud.biz` | `192.168.178.84:8080` | CT 114 `games` | Games / EmulatorJS-Webdienst | erreichbar | |
| + | | `terminal.ls-cloud.biz` | `192.168.178.82:7681` | CT 112 `claude-code` | Webterminal (Shell In A Box) | erreichbar | |
| + | | `live.ls-cloud.biz` | `192.168.178.54:8080` | CT 100 `guacamole` / Altpfad | Guacamole | problematisch, wenn CT 100 gestoppt | |
| + | |
| + | | `pw.ls-cloud.biz` | `192.168.178.91:8080` | CT 121 `vaultwarden` | Vaultwarden Passwortmanager | erreichbar | |
| + | |
| + | {{DataTable}} |
| + | |
| + | ## Hinweise |
| + | |
| + | > [!IMPORTANT] |
| + | > Gestoppte Container erklären oft auch öffentliche Fehlerbilder direkt. Erst Backend-Status prüfen, dann Caddy verdächtigen. |
| + | |
| + | - `web.ls-cloud.biz` hängt am Zustand von **CT 111** |
| + | - `live.ls-cloud.biz` hängt am Zustand von **CT 100** |
| + | - `terminal.ls-cloud.biz` ist ein Webterminal, kein normaler Webdienst im klassischen Sinn |
| /dev/null .. stoerungen-und-fehlerbilder.md | |
| @@ 0,0 1,80 @@ | |
| + | # Störungen & typische Fehlerbilder |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite ist für wiederkehrende Ausfälle und typische Ursachen gedacht — also für das, was im Betrieb wirklich nervt. |
| + | |
| + | ## Wiki liefert 502 |
| + | |
| + | ### Typisches Bild |
| + | |
| + | - `https://wiki.ls-cloud.biz` → `502` |
| + | - Caddy meldet `connect: connection refused` |
| + | |
| + | ### Prüfen |
| + | |
| + | ```bash |
| + | pct status 108 |
| + | pct exec 108 -- docker ps -a |
| + | pct exec 108 -- docker logs --tail 100 otterwiki_otterwiki_1 |
| + | curl -I http://192.168.178.77:8080 |
| + | curl -k -I https://wiki.ls-cloud.biz |
| + | ``` |
| + | |
| + | ### Häufige Ursache |
| + | |
| + | > [!IMPORTANT] |
| + | > Falsche Ownership im aktiven Wiki-Repository kann OtterWiki in einen Restart-Loop schicken. |
| + | |
| + | ## Öffentliche Domain liefert 502 |
| + | |
| + | ### Typisches Bild |
| + | |
| + | - Domain antwortet über Caddy mit `502` |
| + | - Backend-Dienst antwortet lokal nicht |
| + | |
| + | ### Prüfen |
| + | |
| + | ```bash |
| + | systemctl status caddy |
| + | curl -k -I https://DOMAIN |
| + | curl -I http://BACKEND_IP:PORT |
| + | ``` |
| + | |
| + | ### Häufige Ursache |
| + | |
| + | - Zielcontainer gestoppt |
| + | - falscher Port |
| + | - Dienst im Zielcontainer läuft nicht |
| + | |
| + | ## Caddy validiert nicht sauber |
| + | |
| + | ### Typisches Bild |
| + | |
| + | - `caddy validate` meckert, obwohl der Dienst eigentlich läuft |
| + | |
| + | ### Prüfen |
| + | |
| + | ```bash |
| + | systemctl show caddy -p Environment |
| + | export $(systemctl show caddy -p Environment --value | xargs) |
| + | caddy validate --config /etc/caddy/Caddyfile |
| + | ``` |
| + | |
| + | ### Hinweis |
| + | |
| + | > [!TIP] |
| + | > In diesem Setup hängt die saubere Validierung am Service-Environment, weil dort der Cloudflare-Token gesetzt ist. |
| + | |
| + | ## CT gemountet, Schloss bleibt stehen |
| + | |
| + | ### Prüfen / beheben |
| + | |
| + | ```bash |
| + | pct unmount CTID |
| + | pct config CTID | grep '^lock:' |
| + | ``` |
| + | |
| + | ### Hinweis |
| + | |
| + | > [!WARNING] |
| + | > Mount-Leichen sind nicht dramatisch, aber unerquicklich. Nach Host-Edits an LXCs immer sauber aufräumen. |
| /dev/null .. storage-und-mounts.md | |
| @@ 0,0 1,76 @@ | |
| + | # Storage & Mounts |
| + | |
| + | > [!NOTE] |
| + | > Diese Seite ist die echte Storage-/Mount-Übersicht. Also: konkrete Pfade, konkrete Zuordnungen, keine dekorative Nebelgrafik. |
| + | |
| + | ## Host-relevante Pfade |
| + | |
| + | | Pfad auf dem Host | Zweck | |
| + | |---|---| |
| + | | `/` | Host-Rootfs / Betriebssystem | |
| + | | `/boot/efi` | EFI-Bootbereich | |
| + | | `/mnt/storage` | zentrales Storage für Daten, Medien, Webspace, Downloads | |
| + | | `/etc/pve` | Proxmox-Konfigurationsfilesystem | |
| + | |
| + | ## Rootfs der Container |
| + | |
| + | | CT | Name | Rootfs | |
| + | |---|---|---| |
| + | | 100 | guacamole | `local-lvm:vm-100-disk-0,size=8G` | |
| + | | 101 | jellyfin | `local-lvm:vm-101-disk-0,size=16G` | |
| + | | 102 | pbs | `local-lvm:vm-102-disk-0,size=50G` | |
| + | | 103 | fileserver | `local-lvm:vm-103-disk-0,size=8G` | |
| + | | 104 | immich | `local-lvm:vm-104-disk-0,size=40G` | |
| + | | 105 | downloads | `local-lvm:vm-105-disk-0,size=150G` | |
| + | | 106 | openclaw | `local-lvm:vm-106-disk-0,size=15G` | |
| + | | 107 | monitoring | `local-lvm:vm-107-disk-0,size=8G` | |
| + | | 108 | wiki | `local-lvm:vm-108-disk-0,size=8G` | |
| + | | 109 | claw | `local-lvm:vm-109-disk-0,size=32G` | |
| + | | 110 | dns | `local-lvm:vm-110-disk-0,size=8G` | |
| + | | 111 | webserver | `local-lvm:vm-111-disk-0,size=15G` | |
| + | | 112 | claude-code | `local-lvm:vm-112-disk-0,size=8G` | |
| + | | 113 | cs16 | `local-lvm:vm-113-disk-0,size=8G` | |
| + | | 114 | games | `local-lvm:vm-114-disk-0,size=20G` | |
| + | |
| + | {{DataTable}} |
| + | |
| + | ## Bind-Mounts / zusätzliche Mounts |
| + | |
| + | | CT | Name | Host-Pfad | Ziel im CT | Art | Zweck | |
| + | |---|---|---|---|---|---| |
| + | | 100 | guacamole | `/dev/net/tun` | `dev/net/tun` | bind file | TUN-Device | |
| + | | 101 | jellyfin | `/mnt/storage/fileserver/media` | `srv/media` | bind dir | Medienbibliothek | |
| + | | 102 | pbs | `/mnt/storage/pbs-datastore` | `mnt/datastore` | bind dir | Backup-Datastore | |
| + | | 103 | fileserver | `/mnt/storage/fileserver` | `srv/storage` | bind dir | Dateidaten | |
| + | | 104 | immich | `/mnt/storage` | `mnt/storage` | bind dir | Storage-Zugriff | |
| + | | 105 | downloads | `/mnt/storage/fileserver/data/downloads` | `srv/storage/downloads` | bind dir | Downloads | |
| + | | 105 | downloads | `/mnt/storage/fileserver/media` | `srv/storage/media` | bind dir | Medienzugriff | |
| + | | 111 | webserver | `/mnt/storage/fileserver/webspace` | `var/www/html` | bind dir | Webspace | |
| + | | 114 | games | `/mnt/storage/fileserver/data/roms` | `opt/emulatorjs/data/roms` | bind dir | ROM-Daten | |
| + | |
| + | {{DataTable}} |
| + | |
| + | ## Einordnung |
| + | |
| + | > [!IMPORTANT] |
| + | > Mehrere Dienste hängen direkt oder indirekt an `/mnt/storage`. Wenn dort I/O-Probleme oder Mount-Probleme auftreten, schlagen oft mehrere CTs gleichzeitig seltsam aus. |
| + | |
| + | > [!TIP] |
| + | > Für Medien-, Download-, Webspace- und Games-Themen ist die Frage „welcher Host-Pfad hängt wo im CT?“ meist hilfreicher als jeder generische Architekturblock. |
| + | |
| + | ## Diagramm als Ergänzung |
| + | |
| + | ```mermaid |
| + | flowchart TB |
| + | classDef host fill:#111827,stroke:#9ca3af,color:#f9fafb; |
| + | classDef storage fill:#1e293b,stroke:#94a3b8,color:#f8fafc; |
| + | classDef ct fill:#1f2937,stroke:#6b7280,color:#f9fafb; |
| + | |
| + | Host[lscloud Host]:::host --> Storage[mnt/storage]:::storage |
| + | Storage --> CT101[CT 101 Jellyfin]:::ct |
| + | Storage --> CT103[CT 103 Fileserver]:::ct |
| + | Storage --> CT104[CT 104 Immich]:::ct |
| + | Storage --> CT105[CT 105 Downloads]:::ct |
| + | Storage --> CT111[CT 111 Webserver]:::ct |
| + | Storage --> CT114[CT 114 Games]:::ct |
| + | ``` |
| /dev/null .. tmux.md | |
| @@ 0,0 1,81 @@ | |
| + | # tmux |
| + | |
| + | > [!TIP] |
| + | > `tmux` ist nützlich, wenn Prozesse weiterlaufen sollen, obwohl du die SSH-Sitzung verlässt. |
| + | |
| + | ## Neue Session erstellen |
| + | |
| + | ```bash |
| + | tmux new -s NAME |
| + | ``` |
| + | |
| + | Beispiel: |
| + | |
| + | ```bash |
| + | tmux new -s arbeit |
| + | ``` |
| + | |
| + | ## Sessions auflisten |
| + | |
| + | ```bash |
| + | tmux ls |
| + | ``` |
| + | |
| + | ## Wieder mit einer Session verbinden |
| + | |
| + | ```bash |
| + | tmux attach -t NAME |
| + | ``` |
| + | |
| + | Beispiel: |
| + | |
| + | ```bash |
| + | tmux attach -t arbeit |
| + | ``` |
| + | |
| + | ## Von einer Session trennen, ohne sie zu beenden |
| + | |
| + | ```text |
| + | Ctrl+b, dann d |
| + | ``` |
| + | |
| + | ## Eine Session beenden |
| + | |
| + | Innerhalb der Session: |
| + | |
| + | ```bash |
| + | exit |
| + | ``` |
| + | |
| + | Oder von außen: |
| + | |
| + | ```bash |
| + | tmux kill-session -t NAME |
| + | ``` |
| + | |
| + | ## Alle Sessions beenden |
| + | |
| + | ```bash |
| + | tmux kill-server |
| + | ``` |
| + | |
| + | ## Nützliche Kurzbefehle |
| + | |
| + | Neues Fenster: |
| + | |
| + | ```text |
| + | Ctrl+b, dann c |
| + | ``` |
| + | |
| + | Zwischen Fenstern wechseln: |
| + | |
| + | ```text |
| + | Ctrl+b, dann n |
| + | Ctrl+b, dann p |
| + | ``` |
| + | |
| + | Fenster schließen: |
| + | |
| + | ```bash |
| + | exit |
| + | ``` |
| /dev/null .. vm-200-windows11pro.md | |
| @@ 0,0 1,28 @@ | |
| + | # VM 200 – Windows11Pro |
| + | |
| + | > [!NOTE] |
| + | > VM 200 ist die Windows-11-VM im `lscloud`-Setup. Sie ist kein Randobjekt, sondern ein bewusst vorhandenes Spezial-/Desktop-System. |
| + | |
| + | ## Basisdaten |
| + | |
| + | - **VM-ID:** `200` |
| + | - **Name:** `Windows11Pro` |
| + | - **Status:** aktuell gestoppt |
| + | - **OS-Typ:** `win11` |
| + | - **CPU:** `host`, 6 Cores |
| + | - **RAM:** `11400 MB` |
| + | - **Disk:** `85G` auf `local-lvm` |
| + | - **Firmware:** OVMF / TPM 2.0 aktiv |
| + | |
| + | ## Einordnung |
| + | |
| + | - eigenständige Windows-VM im Proxmox-Setup |
| + | - gehört in die operative Übersicht, auch wenn sie nicht ständig läuft |
| + | - kann je nach Nutzung in Monitoring-/Spezialpfade hineinspielen |
| + | |
| + | ## Prüfung |
| + | |
| + | ```bash |
| + | qm status 200 |
| + | qm config 200 |
| + | ``` |
