2026-02-25 22:26:27 +01:00
|
|
|
|
# Customer Installer – Proxmox LXC n8n Stack
|
|
|
|
|
|
|
|
|
|
|
|
Dieses Projekt automatisiert die Bereitstellung isolierter Kunden-Instanzen mit n8n, PostgreSQL und pgvector in Proxmox LXC Containern.
|
|
|
|
|
|
|
|
|
|
|
|
## Projektstruktur
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
customer-installer/
|
|
|
|
|
|
├── install.sh # Hauptskript auf dem Proxmox-Host
|
|
|
|
|
|
├── setupowner.sh # Setup-Skript, das innerhalb des LXC ausgeführt wird
|
|
|
|
|
|
├── libsupabase.sh # Helper für Datenbank-Operationen (Mockup/Basis)
|
|
|
|
|
|
├── templates/
|
|
|
|
|
|
│ └── docker-compose.yml # n8n + PostgreSQL + pgvector Stack
|
|
|
|
|
|
└── README.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Funktionen
|
|
|
|
|
|
|
|
|
|
|
|
### install.sh (Host-Ebene)
|
|
|
|
|
|
- Verarbeitet Argumente: --storage, --bridge, --ip, --vlan
|
|
|
|
|
|
- Generiert eine CTID basierend auf dem aktuellen Zeitstempel
|
|
|
|
|
|
- Lädt das Debian 12 Template herunter
|
|
|
|
|
|
- Erstellt den LXC Container mit:
|
|
|
|
|
|
- Unprivilegierten Einstellungen
|
|
|
|
|
|
- Aktiviertem Nesting
|
|
|
|
|
|
- VLAN Tag Konfiguration
|
|
|
|
|
|
- Konfiguriert APT-Proxy im LXC
|
|
|
|
|
|
- Überträgt setupowner.sh und docker-compose.yml in den LXC
|
|
|
|
|
|
- Startet den LXC und führt setupowner.sh aus
|
|
|
|
|
|
|
|
|
|
|
|
### setupowner.sh (LXC-Ebene)
|
|
|
|
|
|
- Installiert Docker & Docker Compose Plugin (verwendet den Docker-Proxy)
|
|
|
|
|
|
- Erstellt Verzeichnisse für Daten-Persistenz
|
|
|
|
|
|
- Generiert sichere Zufallspasswörter für PostgreSQL und n8n-Encryption
|
|
|
|
|
|
- Startet den Docker-Stack
|
|
|
|
|
|
- Wartet, bis n8n bereit ist
|
|
|
|
|
|
- Gibt alle Zugangsdaten als JSON-Objekt aus
|
|
|
|
|
|
|
|
|
|
|
|
### docker-compose.yml
|
|
|
|
|
|
- Services: db (ankane/pgvector:latest), n8n (docker.n8n.io/n8nio/n8n:latest)
|
|
|
|
|
|
- Volumes für Datenpersistenz
|
|
|
|
|
|
- Umgebungsvariablen für DB-Anbindung und Zeitzone (Europe/Berlin)
|
|
|
|
|
|
|
|
|
|
|
|
## Ausführung
|
|
|
|
|
|
|
|
|
|
|
|
### Auf dem Proxmox-Host:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
chmod +x install.sh
|
|
|
|
|
|
./install.sh --storage local --bridge vmbr0 --vlan 90
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Parameter:
|
|
|
|
|
|
- `--storage`: Speicherort für den Container (Standard: local)
|
|
|
|
|
|
- `--bridge`: Netzwerkbrücke (Standard: vmbr0)
|
|
|
|
|
|
- `--ip`: Statische IP (optional)
|
|
|
|
|
|
- `--vlan`: VLAN Tag (optional)
|
|
|
|
|
|
|
|
|
|
|
|
## Output (JSON)
|
|
|
|
|
|
Das Skript gibt ein JSON-Objekt mit folgenden Informationen aus:
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"ctid": "100",
|
|
|
|
|
|
"ip": "192.168.45.100",
|
|
|
|
|
|
"postgres_password": "a1b2c3d4e5f67890",
|
|
|
|
|
|
"n8n_encryption_key": "09f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Sicherheit & Compliance
|
|
|
|
|
|
- Alle Instanzen sind isoliert
|
|
|
|
|
|
- Fehlerbehandlung mit set -e
|
|
|
|
|
|
- Verwendung sicherer Zufallspasswörter
|
|
|
|
|
|
- VLAN Integration für Netzwerksicherheit
|