Projekt hinzugefügt
This commit is contained in:
73
README.md
73
README.md
@@ -0,0 +1,73 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user