Initial commit: Vollständige Homelab-Dokumentation (Stand 2026-04-15)
- Proxmox Host pve-braetter (Hardware, Storage, Bridges) - 14x LXC Container (CT 100-303) vollständig dokumentiert - 8x VMs (103-201) vollständig dokumentiert - Netzwerk-Übersicht mit komplettem IP-Belegungsplan - Dienste-Übersicht aller Web-Interfaces, DBs, Monitoring - PostgreSQL 16 HA Cluster (Patroni/etcd) detailliert
This commit is contained in:
35
lxc/CT100-patchmon.md
Normal file
35
lxc/CT100-patchmon.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# CT 100 — patchmon
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 100 |
|
||||
| Hostname | patchmon |
|
||||
| IP | 192.168.0.78/24 (DHCP) |
|
||||
| OS | Debian GNU/Linux 13 (trixie) |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | Container:100/vm-100-disk-0.raw, 4 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| nginx | 3000 (extern), 3001 | Webserver / Reverse Proxy für PatchMon |
|
||||
| patchmon-server | 3001 | PatchMon Backend-Service |
|
||||
| postgresql@17 | 5432 (lokal) | PostgreSQL 17 Datenbank |
|
||||
| redis-server | 6379 (lokal) | Redis Cache |
|
||||
| postfix | 25 (lokal) | Mailversand |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **PatchMon UI:** http://192.168.0.78:3000
|
||||
- **SSH:** `ssh claude@192.168.0.78`
|
||||
|
||||
## Beschreibung
|
||||
|
||||
PatchMon ist ein selbst entwickeltes Patch-Monitoring-System zur Überwachung von Software-Updates und Sicherheits-Patches im gesamten Netzwerk. Es verwendet PostgreSQL 17 als Datenbank und Redis als Cache.
|
||||
46
lxc/CT101-nginxproxymanager.md
Normal file
46
lxc/CT101-nginxproxymanager.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# CT 101 — nginxproxymanager
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 101 |
|
||||
| Hostname | nginxproxymanager |
|
||||
| IP | 192.168.0.79/24 (DHCP) |
|
||||
| OS | Debian GNU/Linux 12 (bookworm) |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | Container:101/vm-101-disk-0.raw, 8 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| openresty (nginx) | 80, 443 | Reverse Proxy (HTTP/HTTPS) |
|
||||
| npm | 3000 | NPM Backend-API |
|
||||
| npm Admin UI | 81 | Nginx Proxy Manager Weboberfläche |
|
||||
| postfix | 25 (lokal) | Mailversand |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **NPM Admin:** http://192.168.0.79:81
|
||||
- **SSH:** `ssh claude@192.168.0.79`
|
||||
|
||||
## Konfiguration
|
||||
|
||||
- Proxy-Hosts: `/data/nginx/proxy_host/`
|
||||
- SSL-Zertifikate: `/data/custom_ssl/`
|
||||
- Datenbank: `/data/database.sqlite`
|
||||
|
||||
## Konfigurierte Proxy-Hosts (Auszug)
|
||||
|
||||
| Domain | Ziel | Conf |
|
||||
|--------|------|------|
|
||||
| notes.braetter-int.de | http://192.168.0.92 | 22.conf |
|
||||
|
||||
## Beschreibung
|
||||
|
||||
Nginx Proxy Manager als zentraler Reverse Proxy für alle extern erreichbaren Dienste. Verwaltet SSL-Zertifikate und HTTP/HTTPS-Weiterleitungen.
|
||||
32
lxc/CT102-octoprint.md
Normal file
32
lxc/CT102-octoprint.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# CT 102 — octoprint
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 102 |
|
||||
| Hostname | octoprint |
|
||||
| IP | 192.168.0.80/24 |
|
||||
| OS | Debian GNU/Linux 13 (trixie) |
|
||||
| CPU | 1 vCore |
|
||||
| RAM | 1024 MB |
|
||||
| Disk | Container:102/vm-102-disk-0.raw, 4 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| octoprint | 5000 | OctoPrint Web-UI |
|
||||
| postfix | 25 (lokal) | Mailversand |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **OctoPrint Web:** http://192.168.0.80:5000
|
||||
- **SSH:** `ssh claude@192.168.0.80`
|
||||
|
||||
## Beschreibung
|
||||
|
||||
OctoPrint ist eine webbasierte Oberfläche zur Steuerung und Überwachung von 3D-Druckern. Läuft als eigener Service unter dem octoprint-User.
|
||||
63
lxc/CT109-notes.md
Normal file
63
lxc/CT109-notes.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# CT 109 — notes.braetter.local
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 109 |
|
||||
| Hostname | notes.braetter.local |
|
||||
| IP | 192.168.0.92/24 |
|
||||
| OS | Ubuntu 24.04.4 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | osdisk:109/vm-109-disk-0.raw, 150 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| nginx | 80 | Reverse Proxy zu Gunicorn |
|
||||
| notesmanager (gunicorn) | 5000 (lokal) | Flask Python App |
|
||||
| postfix | 25 (lokal) | Mailversand |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **Notes Web:** http://notes.braetter-int.de (extern) / http://192.168.0.92 (intern)
|
||||
- **SSH:** `ssh nicolay@192.168.0.92` (Passwort: N17b011975)
|
||||
|
||||
## Anwendung
|
||||
|
||||
- **Framework:** Python 3 / Flask
|
||||
- **WSGI:** Gunicorn (3 Worker)
|
||||
- **Webserver:** Nginx als Reverse Proxy
|
||||
- **Pfad:** `/opt/notesmanager/`
|
||||
- **Systemd:** `notesmanager.service`
|
||||
|
||||
### Anwendungs-Struktur
|
||||
|
||||
```
|
||||
/opt/notesmanager/
|
||||
├── app/
|
||||
│ ├── __init__.py # Flask App Factory
|
||||
│ ├── models.py # SQLAlchemy Models
|
||||
│ ├── routes.py # Routen
|
||||
│ ├── static/ # CSS, JS
|
||||
│ └── templates/ # Jinja2 Templates
|
||||
├── deploy/
|
||||
│ ├── notesmanager.nginx # Nginx-Config
|
||||
│ └── notesmanager.service # Systemd-Service
|
||||
├── requirements.txt
|
||||
├── run.py
|
||||
└── gunicorn.conf.py
|
||||
```
|
||||
|
||||
### Datenbank
|
||||
|
||||
SQLite — `instance/` Verzeichnis
|
||||
|
||||
## Gitea Repository
|
||||
|
||||
http://gitea.braetter.local/braetter/noteapp
|
||||
58
lxc/CT202-logserver.md
Normal file
58
lxc/CT202-logserver.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# CT 202 — logserver
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 202 |
|
||||
| Hostname | logserver |
|
||||
| IP | 192.168.0.241/24 |
|
||||
| OS | Debian GNU/Linux 13 (trixie) |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | nasstorage:202/vm-202-disk-0.raw, 1000 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| rsyslog / syslog | 514 UDP/TCP | Zentrale Log-Sammlung |
|
||||
| promtail | 9080 | Log-Shipper zu IDS-Monitor/Loki |
|
||||
| fail2ban | - | Brute-Force-Schutz |
|
||||
| avahi-daemon | - | mDNS Discovery |
|
||||
| postfix | - | Mailversand für Alarme |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **SSH:** `ssh claude@192.168.0.241`
|
||||
|
||||
## Automatisierungs-Skripte (cron.daily)
|
||||
|
||||
| Skript | Funktion |
|
||||
|--------|---------|
|
||||
| `anomalie_check.sh` | Erkennt Anomalien in Logs, IP-Lookup via ipinfo.io, Alarm-Mail |
|
||||
| `dienst_watchdog.sh` | Überwacht kritische Dienste, Neustart bei Ausfall |
|
||||
| `security_audit.sh` | Täglicher Sicherheits-Audit |
|
||||
| `smarthome_scan.sh` | Scannt SmartHome-Geräte |
|
||||
| `parse_nmap.sh` | Parst NMAP-Scan-Ergebnisse |
|
||||
| `mail_fix.py` | Postfix-Reparatur-Skript |
|
||||
| `trauer_report.py` | Pentest-Report-Generator (www.trauer.de) |
|
||||
|
||||
**Pfad:** `/home/claude/scripts/`
|
||||
|
||||
## Log-Eingang (rsyslog)
|
||||
|
||||
Alle LXC/VMs senden Logs per syslog-Protokoll an Port 514.
|
||||
|
||||
## Alarm-Mails
|
||||
|
||||
`anomalie_check.sh` sendet bei Auffälligkeiten E-Mails mit:
|
||||
- Angreifer-IP
|
||||
- IP-Lookup: Land, Stadt, ASN/Org, Hostname (via ipinfo.io)
|
||||
- Gescannte Pfade / HTTP-Methoden
|
||||
- Anzahl der Versuche
|
||||
- HTTP-Status-Codes
|
||||
- Bei SSH: Versuchte Benutzernamen
|
||||
42
lxc/CT207-ids-monitor.md
Normal file
42
lxc/CT207-ids-monitor.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# CT 207 — ids-monitor
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 207 |
|
||||
| Hostname | ids-monitor |
|
||||
| IP | 192.168.0.85/24 |
|
||||
| OS | Ubuntu 24.04.4 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 3072 MB |
|
||||
| Disk | osdisk:207/vm-207-disk-0.raw, 20 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| suricata | - | IDS/IPS Netzwerk-Analyse |
|
||||
| loki | 3100, 9096 | Log-Aggregation |
|
||||
| grafana-server | 3000 | Dashboards / Visualisierung |
|
||||
| promtail | 9080, 39471 | Log-Shipper |
|
||||
| fail2ban | - | Brute-Force-Schutz |
|
||||
| postfix | 25 (lokal) | Mailversand |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **Grafana:** http://192.168.0.85:3000
|
||||
- **Loki API:** http://192.168.0.85:3100
|
||||
- **SSH:** `ssh claude@192.168.0.85`
|
||||
|
||||
## Beschreibung
|
||||
|
||||
Zentrales IDS/SIEM-System:
|
||||
|
||||
- **Suricata** analysiert den Netzwerktraffic auf bekannte Angriffsmuster (Signaturen)
|
||||
- **Loki** sammelt Logs aus dem gesamten Netz (inkl. Logserver via Promtail)
|
||||
- **Grafana** visualisiert die gesammelten Daten in Dashboards
|
||||
- **Promtail** shippt lokale Logs an Loki und empfängt Logs vom Logserver (192.168.0.241)
|
||||
38
lxc/CT208-netbox.md
Normal file
38
lxc/CT208-netbox.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# CT 208 — netbox.braetter.local
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 208 |
|
||||
| Hostname | netbox.braetter.local |
|
||||
| IP | 192.168.0.86/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | osdisk:208/vm-208-disk-0.raw, 40 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | stopped |
|
||||
|
||||
## Anwendung
|
||||
|
||||
- **NetBox Version:** 4.2.6
|
||||
- **Installation:** Nativ (kein Docker)
|
||||
- **Funktion:** IPAM (IP Address Management) + DCIM (Data Center Infrastructure Management)
|
||||
- **Eingerichtet:** 2026-04-09
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **NetBox Web:** http://192.168.0.86 (wenn gestartet)
|
||||
- **SSH:** `ssh nicolay@192.168.0.86`
|
||||
|
||||
## Starten
|
||||
|
||||
```bash
|
||||
sudo pct start 208
|
||||
```
|
||||
|
||||
## Beschreibung
|
||||
|
||||
NetBox dient zur vollständigen Dokumentation der Netzwerk-Infrastruktur: IP-Adressen, VLANs, Geräte, Racks, Kabel und Verbindungen.
|
||||
38
lxc/CT209-authentik.md
Normal file
38
lxc/CT209-authentik.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# CT 209 — authentik.braetter.local
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 209 |
|
||||
| Hostname | authentik.braetter.local |
|
||||
| IP | 192.168.0.87/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 3072 MB |
|
||||
| Disk | osdisk:209/vm-209-disk-0.raw, 40 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | stopped |
|
||||
|
||||
## Anwendung
|
||||
|
||||
- **authentik Version:** 2026.2.2
|
||||
- **Installation:** Docker Compose
|
||||
- **Funktion:** Single Sign-On (SSO) / Identity Provider (IdP)
|
||||
- **Eingerichtet:** 2026-04-09
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **authentik Web:** http://192.168.0.87 (wenn gestartet)
|
||||
- **SSH:** `ssh nicolay@192.168.0.87`
|
||||
|
||||
## Starten
|
||||
|
||||
```bash
|
||||
sudo pct start 209
|
||||
```
|
||||
|
||||
## Beschreibung
|
||||
|
||||
authentik ist ein selbst-gehosteter Identity Provider für SSO-Integration in interne Dienste. Unterstützt OIDC, SAML, LDAP und OAuth2.
|
||||
42
lxc/CT210-wazuh.md
Normal file
42
lxc/CT210-wazuh.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# CT 210 — wazuh.braetter.local
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 210 |
|
||||
| Hostname | wazuh.braetter.local |
|
||||
| IP | 192.168.0.88/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 4 vCores |
|
||||
| RAM | 6144 MB |
|
||||
| Disk | osdisk:210/vm-210-disk-0.raw, 80 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | ja |
|
||||
| Status | stopped |
|
||||
|
||||
## Anwendung
|
||||
|
||||
- **Wazuh Version:** 4.12.0
|
||||
- **Installation:** Docker Compose
|
||||
- **Funktion:** SIEM, HIDS, Log-Analyse, Compliance
|
||||
- **Eingerichtet:** 2026-04-09
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **Wazuh Dashboard:** https://192.168.0.88 (wenn gestartet)
|
||||
- **SSH:** `ssh nicolay@192.168.0.88`
|
||||
|
||||
## Wazuh Agents
|
||||
|
||||
Folgende Systeme senden Daten an Wazuh:
|
||||
- vaultwarden (192.168.0.90) — wazuh-agent.service
|
||||
- workfs (192.168.0.91) — wazuh-agent.service
|
||||
- outline (192.168.0.240) — wazuh-agent.service
|
||||
- ovpn-gw (192.168.0.175) — wazuh-agent.service
|
||||
|
||||
## Starten
|
||||
|
||||
```bash
|
||||
sudo pct start 210
|
||||
```
|
||||
41
lxc/CT211-aqualog.md
Normal file
41
lxc/CT211-aqualog.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# CT 211 — aqualog.braetter.local
|
||||
|
||||
## Systemdaten
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 211 |
|
||||
| Hostname | aqualog.braetter.local |
|
||||
| IP | 192.168.0.246/24 |
|
||||
| OS | Ubuntu 24.04.4 LTS |
|
||||
| CPU | 4 vCores |
|
||||
| RAM | 8192 MB |
|
||||
| Disk | osdisk:211/vm-211-disk-0.raw, 150 GB |
|
||||
| Bridge | vmbr0 |
|
||||
| Autostart | nein |
|
||||
| Status | running |
|
||||
|
||||
## Dienste
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| nginx | 80 | Webserver / Reverse Proxy |
|
||||
| aquarium-api (node) | 3001 (lokal) | Node.js/Express Backend |
|
||||
| postfix | 25 (lokal) | Mailversand |
|
||||
|
||||
## Zugriff
|
||||
|
||||
- **Aquarium Logbuch:** http://192.168.0.246
|
||||
- **SSH:** `ssh nicolay@192.168.0.246`
|
||||
|
||||
## Anwendung
|
||||
|
||||
- **Frontend:** React 18 + Vite
|
||||
- **Backend:** Node.js / Express
|
||||
- **Webserver:** Nginx (Port 80, dient React-Build + Proxy zu API)
|
||||
- **App-Pfad:** `/var/www/aquarium/` (Frontend-Build), Backend als Systemd-Service
|
||||
- **Systemd:** `aquarium-api.service`
|
||||
|
||||
## Gitea Repository
|
||||
|
||||
http://gitea.braetter.local/braetter/aqualog
|
||||
150
lxc/CT300-303-postgresql-ha.md
Normal file
150
lxc/CT300-303-postgresql-ha.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# CT 300–302 — PostgreSQL 16 HA Cluster + CT 303 pgAdmin
|
||||
|
||||
## Cluster-Übersicht
|
||||
|
||||
| VMID | Hostname | IP | Rolle | Status |
|
||||
|------|----------|----|-------|--------|
|
||||
| 300 | sql1 | 192.168.0.220 | Leader (Primary) | running |
|
||||
| 301 | sql2 | 192.168.0.221 | Replica (Streaming) | running |
|
||||
| 302 | sql3 | 192.168.0.222 | Replica (Streaming) | running |
|
||||
| 303 | pgadmin | 192.168.0.223 | pgAdmin4 Web | running |
|
||||
|
||||
---
|
||||
|
||||
## CT 300 — sql1 (Leader)
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 300 |
|
||||
| IP | 192.168.0.220/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | osdisk:300/vm-300-disk-0.raw, 20 GB |
|
||||
| Autostart | nein |
|
||||
|
||||
## CT 301 — sql2 (Replica)
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 301 |
|
||||
| IP | 192.168.0.221/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | osdisk:301/vm-301-disk-0.raw, 20 GB |
|
||||
| Autostart | nein |
|
||||
|
||||
## CT 302 — sql3 (Replica)
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 302 |
|
||||
| IP | 192.168.0.222/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 2048 MB |
|
||||
| Disk | osdisk:302/vm-302-disk-0.raw, 20 GB |
|
||||
| Autostart | nein |
|
||||
|
||||
---
|
||||
|
||||
## Dienste (alle DB-Nodes)
|
||||
|
||||
| Dienst | Port | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| postgresql 16 | 5432 | Datenbank |
|
||||
| patroni | 8008 | HA-Manager REST API |
|
||||
| etcd | 2379 (client), 2380 (peer) | Distributed Key-Value Store (DCS) |
|
||||
| apache2 | 80 | Nur sql1: pgAdmin4 Webserver |
|
||||
|
||||
## Patroni Konfiguration
|
||||
|
||||
- **Scope:** pg-cluster
|
||||
- **Namespace:** /db/
|
||||
- **Datenverzeichnis:** `/var/lib/postgresql/16/patroni`
|
||||
- **Config:** `/etc/patroni/patroni.yml`
|
||||
- **Systemd:** `patroni.service`
|
||||
|
||||
## etcd Konfiguration
|
||||
|
||||
- **Cluster-Token:** pg-etcd-cluster
|
||||
- **Config:** `/etc/default/etcd`
|
||||
- **Datenverzeichnis:** `/var/lib/etcd/default`
|
||||
|
||||
## Datenbanken & Benutzer
|
||||
|
||||
| Datenbank | Eigentümer |
|
||||
|-----------|-----------|
|
||||
| nicolay | nicolay |
|
||||
| testdb | nicolay |
|
||||
| postgres | postgres |
|
||||
|
||||
| Benutzer | Passwort | Rechte |
|
||||
|----------|----------|--------|
|
||||
| nicolay | N17b011975 | Login |
|
||||
| postgres | postgres_pass | Superuser |
|
||||
| replicator | replicator_pass | Replikation |
|
||||
| admin | admin | createdb, createrole |
|
||||
|
||||
## Zugriff
|
||||
|
||||
```bash
|
||||
# PostgreSQL (immer Leader)
|
||||
psql -h 192.168.0.220 -U nicolay -d nicolay
|
||||
|
||||
# Cluster-Status
|
||||
pct exec 300 -- /usr/local/bin/patronictl -c /etc/patroni/patroni.yml list
|
||||
|
||||
# Patroni REST API
|
||||
curl http://192.168.0.220:8008/leader
|
||||
curl http://192.168.0.221:8008/replica
|
||||
|
||||
# etcd
|
||||
etcdctl --endpoints=http://192.168.0.220:2379 endpoint health
|
||||
```
|
||||
|
||||
## Manueller Failover
|
||||
|
||||
```bash
|
||||
pct exec 300 -- /usr/local/bin/patronictl -c /etc/patroni/patroni.yml failover pg-cluster
|
||||
```
|
||||
|
||||
## Verhalten bei Ausfall
|
||||
|
||||
| Szenario | Verhalten |
|
||||
|----------|-----------|
|
||||
| sql1 fällt aus | Patroni wählt sql2 oder sql3 als neuen Leader (30–60s) |
|
||||
| sql2 oder sql3 fällt aus | Kein Ausfall, Leader läuft weiter |
|
||||
| 2 Nodes fallen aus | Kein Quorum → Cluster read-only |
|
||||
|
||||
---
|
||||
|
||||
## CT 303 — pgadmin
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|-------------|------|
|
||||
| VMID | 303 |
|
||||
| Hostname | pgadmin |
|
||||
| IP | 192.168.0.223/24 |
|
||||
| OS | Ubuntu 24.04 LTS |
|
||||
| CPU | 2 vCores |
|
||||
| RAM | 1024 MB |
|
||||
| Disk | osdisk:303/vm-303-disk-0.raw, 10 GB |
|
||||
| Autostart | nein |
|
||||
|
||||
### pgAdmin4 Zugriff
|
||||
|
||||
- **URL:** http://192.168.0.223/pgadmin4/
|
||||
- **Login:** nicolay.braetter@googlemail.com / N17b011975
|
||||
- **Vorkonfigurierte Server:** sql1, sql2, sql3 (alle als "pg-cluster" Gruppe)
|
||||
|
||||
### Hinweis Redundanz
|
||||
|
||||
pgAdmin läuft auf einem **separaten** LXC, unabhängig von den Datenbank-Nodes. Bei Ausfall von sql1 bleibt pgAdmin erreichbar. Die Server-Verbindungen in pgAdmin zeigen direkt auf die jeweiligen Node-IPs.
|
||||
|
||||
## Install-Script
|
||||
|
||||
Vollständiges Installations-Script für den kompletten Cluster:
|
||||
`/home/claude/postgres-ha-install.sh` auf pve-braetter
|
||||
Gitea: (kein separates Repo — im aqualog-Repo enthalten)
|
||||
18
lxc/README.md
Normal file
18
lxc/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# LXC Container
|
||||
|
||||
| VMID | Hostname | IP | OS | Status | Doku |
|
||||
|------|----------|----|-----|--------|------|
|
||||
| 100 | patchmon | 192.168.0.78 | Debian 13 | running | [CT100-patchmon.md](CT100-patchmon.md) |
|
||||
| 101 | nginxproxymanager | 192.168.0.79 | Debian 12 | running | [CT101-nginxproxymanager.md](CT101-nginxproxymanager.md) |
|
||||
| 102 | octoprint | 192.168.0.80 | Debian 13 | running | [CT102-octoprint.md](CT102-octoprint.md) |
|
||||
| 109 | notes.braetter.local | 192.168.0.92 | Ubuntu 24.04 | running | [CT109-notes.md](CT109-notes.md) |
|
||||
| 202 | logserver | 192.168.0.241 | Debian 13 | running | [CT202-logserver.md](CT202-logserver.md) |
|
||||
| 207 | ids-monitor | 192.168.0.85 | Ubuntu 24.04 | running | [CT207-ids-monitor.md](CT207-ids-monitor.md) |
|
||||
| 208 | netbox.braetter.local | 192.168.0.86 | Ubuntu 24.04 | stopped | [CT208-netbox.md](CT208-netbox.md) |
|
||||
| 209 | authentik.braetter.local | 192.168.0.87 | Ubuntu 24.04 | stopped | [CT209-authentik.md](CT209-authentik.md) |
|
||||
| 210 | wazuh.braetter.local | 192.168.0.88 | Ubuntu 24.04 | stopped | [CT210-wazuh.md](CT210-wazuh.md) |
|
||||
| 211 | aqualog.braetter.local | 192.168.0.246 | Ubuntu 24.04 | running | [CT211-aqualog.md](CT211-aqualog.md) |
|
||||
| 300 | sql1 | 192.168.0.220 | Ubuntu 24.04 | running | [CT300-303-postgresql-ha.md](CT300-303-postgresql-ha.md) |
|
||||
| 301 | sql2 | 192.168.0.221 | Ubuntu 24.04 | running | [CT300-303-postgresql-ha.md](CT300-303-postgresql-ha.md) |
|
||||
| 302 | sql3 | 192.168.0.222 | Ubuntu 24.04 | running | [CT300-303-postgresql-ha.md](CT300-303-postgresql-ha.md) |
|
||||
| 303 | pgadmin | 192.168.0.223 | Ubuntu 24.04 | running | [CT300-303-postgresql-ha.md](CT300-303-postgresql-ha.md) |
|
||||
Reference in New Issue
Block a user