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:
Erik Thiele
2026-07-19 19:14:58 +02:00
parent fc9033d89a
commit 620f275595

View File

@@ -63,16 +63,80 @@ app/
## Proxmox ## Proxmox
Für den Betrieb in einem Proxmox-VE-LXC-Container gibt es ein Helper-Script, 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 (`scripts/proxmox/install-linkvault.sh`). Es legt automatisch einen
einrichtet. Auf dem Proxmox-Host ausführen: 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
bash scripts/proxmox/install-linkvault.sh bash scripts/proxmox/install-linkvault.sh
``` ```
Konfiguration (Container-ID, IP, Ressourcen, ...) über Umgebungsvariablen, Das Script:
siehe Kommentare im 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 ## Hinweise für den Produktivbetrieb