Benutzer online
Gäste online 1
Mitglieder online 0

Mitglieder insgesamt: 1
Neuestes Mitglied: Loop1403
Foren-Statistiken
Besucher-Zähler
Besucher heute: 60
Besucher gestern: 19
Rekord: 485 (09.09.2026)
Besucher gesamt: 4985

Gesamt-Statistiken
Themen gesamt: 19
Beiträge gesamt: 19
Mitgliederumfragen
Hostet ihr eure Clouds selber?
ja100 %
100% [1 Vote]
Nein0 %
0% [0 Votes]
Kontaktformular
Für Hinweise, Fragen und Kritik haben wir stets ein offenes Ohr.
Einfach nachfolgendes Formular absenden und wir antworten schnellstmöglich.
CAPTCHA ImageRefresh Image

[Anleitung] PatchMon (Zentrales Server- & Update-Monitoring) via Docker Compose einrichten

Letzte Aktualisierung
Loop1403Loop1403Seiten Administrator
Veröffentlicht am
# [Anleitung] PatchMon (Zentrales Server- & Update-Monitoring) via Docker Compose einrichten

Hallo zusammen,

wer mehrere Linux-Server, LXC-Container oder Docker-Hosts betreibt und den Überblick über ausstehende Sicherheitsupdates, Kernel-Patches und den Systemstatus behalten möchte, findet in **PatchMon** eine extrem schlanke und moderne Open-Source-Lösung. Das Tool sammelt die Update-Stände eurer Systeme zentral und bereitet sie übersichtlich in einem Dashboard auf.

Hier ist das fertige Docker Compose Setup für euren eigenen PatchMon-Server – komplett anonymisiert und sicher für den produktiven Einsatz.

### ⚠️ Wichtige Vorbereitung vor dem Kopieren:
Achtet darauf, dass ihr für eure Live-Instanz die geheimen Schlüssel (JWT_SECRET und ENCRYPTION_KEY) durch lange, zufällige Zeichenketten ersetzt. Im Verbindungsstring der Datenbank (DATABASE_URL) muss das Sonderzeichen ? im Passwort URL-kodiert werden (aus ? wird %3F), damit PostgreSQL die Verbindung fehlerfrei herstellt.

---

### Der Docker Compose Stack

yaml
version: '3.8'

services:
 # 1. Die Datenbank (PostgreSQL 17)
 patchmon-db:
 image: postgres:17-alpine
 container_name: v2-patchmon-db
 restart: unless-stopped
 environment:
 POSTGRES_DB: patchmon
 POSTGRES_USER: patchmon_user
 POSTGRES_PASSWORD: DEIN_SICHERES_DATENBANK_PASSWORT # <--- ANPASSEN!
 volumes:
 - v2_patchmon_db_data:/var/lib/postgresql/data
 networks:
 - default

 # 2. Der Job-Queue-Speicher (Redis 7)
 patchmon-redis:
 image: redis:7-alpine
 container_name: v2-patchmon-redis
 restart: unless-stopped
 volumes:
 - v2_patchmon_redis_data:/data
 networks:
 - default

 # 3. Der PatchMon Hauptserver (Dashboard & API)
 patchmon-server:
 image: ghcr.io/patchmon/patchmon-server:latest
 container_name: v2-patchmon-server
 restart: unless-stopped
 depends_on:
 - patchmon-db
 - patchmon-redis
 networks:
 default:
 lan_network:
 ipv4_address: DEINE_FREIE_CONTAINER_IP # <--- FREIE IP AUS EUREM NETZWERK EINTRAGEN!
 environment:
 # WICHTIG: Das Passwort muss hier identisch zu oben sein. Das "?" am Ende MUSS als "%3F" kodiert werden!
 - DATABASE_URL=postgresql://patchmon_user<img class='smiley' style='width:20px;height:20px;' src='../../images/smiley/grin.svg' alt='Grinsen'>EIN_SICHERES_DATENBANK_PASSWORT%3F@patchmon-db:5432/patchmon?sslmode=disable
 - REDIS_URL=redis://v2-patchmon-redis:6379/0
 - REDIS_HOST=v2-patchmon-redis
 - REDIS_PORT=6379
 
 # Zwingt den Web-Server, auf die korrekte URL / IP-Adresse zu lauschen
 - APP_URL=https://deine-domain.de # <--- EURE SPÄTERE HTTPs-DOMAIN!
 - CORS_ORIGIN=https://deine-domain.de
 
 # Schalter für die Ersteinrichtung: Öffnet die Webregistrierung für das erste Admin-Konto
 # TIPP: Nach dem Erstellen des ersten Admins im Live-Betrieb auf "true" setzen!
 - REGISTRATION_DISABLED=false
 
 # Generiert hier zwei völlig unterschiedliche, lange Zufallsketten für die Absicherung!
 - JWT_SECRET=HIER_EINEN_LANGEN_ZUFÄLLIGEN_STRING_EINTRAGEN
 - ENCRYPTION_KEY=HIER_EINEN_ZWEITEN_LANGEN_ZUFÄLLIGEN_STRING_EINTRAGEN

volumes:
 v2_patchmon_db_data:
 v2_patchmon_redis_data:

networks:
 lan_network:
 name: NAME_EURES_EXISTIERENDEN_NETZWERKS # <--- NAME EURES EXISTIERENDEN EXTERNEN NETZWERKS!
 external: true


---

### 🌐 Einrichtung im Nginx Proxy Manager (NPM)

Um das PatchMon-Dashboard sicher zu erreichen und die Update-Meldungen eurer externen Server verschlüsselt zu empfangen, legt ihr im NPM einen neuen **Proxy Host** an:

1. **Domain Names:** patchmon.deine-domain.de
2. **Scheme:** http
3. **Forward Hostname / IP:** DEINE_FREIE_CONTAINER_IP *(Die oben vergebene IP des PatchMon-Containers)*
4. **Forward Port:** 3000 *(Standard-Port des PatchMon-Servers)*
5. **Websockets Support:** 🟩 **Häkchen setzen / Aktivieren!** *(Wichtig für Live-Status-Updates im Dashboard).*
6. **SSL:** Ein neues Let's Encrypt Zertifikat anfordern und *Force SSL* aktivieren.
Du kannst alle Themen in diesem Forum sehen.
Du kannst nicht ein neues Thema in diesem Forum eröffnen.
Du kannst nicht auf dieses Thema antworten.
Du kannst nicht Umfragen in diesem Forum erstellen.
Du kannst nicht Anhänge in diesem Forum hochladen.
Du kannst nicht Anhänge in diesem Forum herunterladen.
Anmelden
Noch keinen Account? Klicke hier, um dich zu registrieren.
Passwort vergessen?
Shoutbox
Du musst dich anmelden, um eine Nachricht zu senden.
Loop1403
Loop1403#1
Moingsen
SERVER BEITRETEN
Echte Live-Kanäle:
Eurotruck SimulatorJoin
LS 25Join
Schwesing BahnhofJoin
MindenerwaldJoin
Hebby`s SabbeleckeJoin
Sven,s ZockerbudeJoin
Left for DeadJoin
CounterstrikeJoin
World of WarshipsJoin
BattlefieldJoin
Klönecke( wenn nicht Gespielt wird)Join
Tratschecke ( im Single Player )Join
TeamJoin
AwayJoin
BesprechungJoin