Document Proxmox LXC installation in README
Add usage instructions, raw-link one-liner, config table, and post-install steps for the helper script. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
74
README.md
74
README.md
@@ -63,16 +63,80 @@ app/
|
||||
|
||||
## Proxmox
|
||||
|
||||
Für den Betrieb in einem Proxmox-VE-LXC-Container gibt es ein Helper-Script,
|
||||
das einen Debian-12-Container anlegt und LinkVault darin als systemd-Service
|
||||
einrichtet. Auf dem Proxmox-Host ausführen:
|
||||
Für den Betrieb in einem Proxmox-VE-LXC-Container gibt es ein Helper-Script
|
||||
(`scripts/proxmox/install-linkvault.sh`). Es legt automatisch einen
|
||||
Debian-12-Container an und richtet LinkVault darin als systemd-Service ein.
|
||||
|
||||
### Installation
|
||||
|
||||
Auf dem **Proxmox-Host** (als root) ausführen:
|
||||
|
||||
```bash
|
||||
bash <(curl -fsSL https://gitea.teamthiele.de/ethiele/linkvault/raw/branch/main/scripts/proxmox/install-linkvault.sh)
|
||||
```
|
||||
|
||||
Alternativ, falls das Repo bereits lokal ausgecheckt ist:
|
||||
|
||||
```bash
|
||||
bash scripts/proxmox/install-linkvault.sh
|
||||
```
|
||||
|
||||
Konfiguration (Container-ID, IP, Ressourcen, ...) über Umgebungsvariablen,
|
||||
siehe Kommentare im Script.
|
||||
Das Script:
|
||||
1. lädt bei Bedarf das Debian-12-LXC-Template herunter,
|
||||
2. erstellt einen unprivilegierten LXC-Container,
|
||||
3. installiert darin Python, klont das Repo nach `/opt/linkvault`,
|
||||
4. legt ein venv an und installiert die Abhängigkeiten,
|
||||
5. erzeugt eine `.env` mit zufälligem `SECRET_KEY`,
|
||||
6. richtet LinkVault als systemd-Service (`linkvault.service`) ein und startet ihn.
|
||||
|
||||
Am Ende gibt das Script die URL des Containers sowie das generierte
|
||||
root-Passwort aus.
|
||||
|
||||
### Konfiguration
|
||||
|
||||
Alle Einstellungen lassen sich per Umgebungsvariable vor dem Aufruf setzen
|
||||
(Defaults siehe Kopf des Scripts):
|
||||
|
||||
| Variable | Bedeutung | Default |
|
||||
|-------------------|-----------------------------------------|---------------------------------|
|
||||
| `CTID` | Container-ID | nächste freie ID |
|
||||
| `CT_HOSTNAME` | Hostname des Containers | `linkvault` |
|
||||
| `CT_DISK_GB` | Größe der Root-Disk in GB | `8` |
|
||||
| `CT_MEMORY_MB` | RAM in MB | `1024` |
|
||||
| `CT_SWAP_MB` | Swap in MB | `512` |
|
||||
| `CT_CORES` | CPU-Kerne | `2` |
|
||||
| `CT_BRIDGE` | Netzwerk-Bridge | `vmbr0` |
|
||||
| `CT_IP` | Statische IP (`192.168.1.50/24`) oder `dhcp` | `dhcp` |
|
||||
| `CT_GW` | Gateway (nur bei statischer IP nötig) | – |
|
||||
| `CT_STORAGE` | Storage für die Root-Disk | `local-lvm` |
|
||||
| `TEMPLATE_STORAGE`| Storage für das LXC-Template | `local` |
|
||||
| `CT_PASSWORD` | root-Passwort des Containers | zufällig generiert |
|
||||
| `REPO_URL` | Git-Repo, das geklont wird | `.../ethiele/linkvault.git` |
|
||||
| `APP_PORT` | Port, auf dem uvicorn lauscht | `8000` |
|
||||
|
||||
Beispiel mit statischer IP und fester Container-ID:
|
||||
|
||||
```bash
|
||||
CTID=150 CT_HOSTNAME=linkvault CT_IP=192.168.1.50/24 CT_GW=192.168.1.1 \
|
||||
bash <(curl -fsSL https://gitea.teamthiele.de/ethiele/linkvault/raw/branch/main/scripts/proxmox/install-linkvault.sh)
|
||||
```
|
||||
|
||||
### Nach der Installation
|
||||
|
||||
In `/opt/linkvault/.env` **innerhalb des Containers** den `OPENAI_API_KEY`
|
||||
eintragen (siehe [Schnellstart](#schnellstart) für weitere `.env`-Optionen),
|
||||
danach den Dienst neu starten:
|
||||
|
||||
```bash
|
||||
pct exec <CTID> -- systemctl restart linkvault
|
||||
```
|
||||
|
||||
Nützliche Befehle:
|
||||
|
||||
```bash
|
||||
pct exec <CTID> -- systemctl status linkvault # Status prüfen
|
||||
pct exec <CTID> -- journalctl -u linkvault -f # Logs verfolgen
|
||||
```
|
||||
|
||||
## Hinweise für den Produktivbetrieb
|
||||
|
||||
|
||||
Reference in New Issue
Block a user