Files
automat26/README.md
2026-02-25 22:26:27 +01:00

73 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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