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.
Setup
Voraussetzungen
- Proxmox VE 8.0 oder neuer (amd64)
- Internet-Zugang auf dem PVE-Host
- ~16 GB frei auf einem
rootdir-faehigen Storage - Eine Linux-Bridge (Default
vmbr0)
Installation (Quickstart)
Auf dem Proxmox-VE-Host als root ausfuehren:
bash -c "$(curl -fsSL https://forgejo.diefamiliekramer.de/vr6syncro/teddytafforge-proxmox/raw/branch/main/ct/teddytafforge.sh)"
Eine Reihe von whiptail-Dialogen fuehrt durch die Auswahl (Scope, Ressourcen, Netzwerk). Am Ende wird die URL der neuen Instanz ausgegeben und in der LXC-Beschreibung in der Proxmox-UI hinterlegt.
Vorsichtige Alternative (Skript vorher pruefen):
curl -fsSL <url> -o /tmp/teddytafforge.sh && less /tmp/teddytafforge.sh && bash /tmp/teddytafforge.sh
Scope-Auswahl
| Scope | Wann |
|---|---|
sidecar |
TeddyCloud laeuft bereits woanders (anderer LXC, VM, NAS) |
all-in-one |
Frischer Start, beide Dienste auf einer Maschine |
Im Sidecar-Modus werden die URL der bestehenden TeddyCloud und optional der Host-Pfad des TC-Datenverzeichnisses abgefragt (fuer den Bind-Mount des Plugins).
Defaults
| Option | sidecar | all-in-one | Override |
|---|---|---|---|
| OS | Debian 13 | Debian 13 | nicht konfigurierbar |
| CPU | 2 Kerne | 2 Kerne | whiptail / var_cpu |
| RAM | 2048 MB | 3072 MB | whiptail / var_ram |
| Disk | 8 GB | 16 GB | whiptail / var_disk |
| Unprivilegiert | ja | ja | fest |
| Features | nesting=1,keyctl=1 |
nesting=1,keyctl=1 |
fest |
| Netzwerk | DHCP / vmbr0 | DHCP / vmbr0 | whiptail |
| TafForge-Port | 3000 | 3000 | /etc/tafforge/tafforge.env |
| TeddyCloud-Ports | – | 80 / 443 / 8443 | nicht konfigurierbar |
Power-User-ENV-Overrides
Vor dem Curl-Aufruf setzen:
TAFFORGE_SCOPE=all-in-one \
TAFFORGE_REF_DEFAULT=v0.2.2 \
TC_REF_DEFAULT=v0.6.2 \
CTID=200 RAM_SIZE=4096 DISK_SIZE=24 \
bash -c "$(curl -fsSL …/ct/teddytafforge.sh)"
Nach der Installation
- UI oeffnen:
http://<lxc-ip>:3000/ - Service-Steuerung (im LXC nach
pct enter <CTID>):systemctl status tafforge,journalctl -u tafforge -f(all-in-one zusaetzlichteddycloud) - Runtime-Config:
/etc/tafforge/tafforge.env(nach Aenderungsystemctl restart tafforge) - Wrapper-Marker:
/etc/tafforge/proxmox.meta(installierte Versionen)
Update
Der autoritative Updater liegt im LXC und stammt vom TafForge-Projekt selbst.
Empfohlen (im LXC):
pct enter <CTID>
/opt/tafforge/app/install/lxc/update-app.sh
Convenience (vom PVE-Host):
bash -c "$(curl -fsSL https://forgejo.diefamiliekramer.de/vr6syncro/teddytafforge-proxmox/raw/branch/main/ct/update.sh)"
Es gibt bewusst keinen automatischen Update-Timer.
Entwicklung / CI
Vor einer Skript-Aenderung lokal shellcheck laufen lassen:
shellcheck -x ct/*.sh install/*.sh misc/*.func
Forgejo-CI
shellcheck.yml—bash -nSyntax-Check,shellcheck -x -e SC1090,SC1091,bashate -i E006, plus URL-Liveness-Check der geladenen Endpunkte.syntax-validate.yml— Dry-Run des Host-Skripts mit gestubbten PVE-Binaries (pveversion,pveam,pvesh,pvesm,pct,whiptail) undDRY_RUN=1.
Lokaler Dry-Test (volle Matrix)
bash scripts/dry-test/matrix.sh
Mockt alle PVE-Binaries + whiptail (FD-korrekt, title-aware), faehrt start() → build_container() → description() unter DRY_RUN=1 fuer alle vier {scope × settings}-Kombinationen und meldet PASS/FAIL. Per-Run-Logs in /tmp/teddytafforge-dry-test-runN.log.
Vendored Installer aktualisieren
Aus einem lokalen TafForge-Checkout:
cp -R /path/to/TeddyTafForge/install/lib/* vendor/tafforge-install/lib/
cp -R /path/to/TeddyTafForge/install/lxc/* vendor/tafforge-install/lxc/
git add vendor/tafforge-install
git commit -m "chore(vendor): refresh tafforge install/ from upstream <sha>"
Quelle: README.md, ct/*.sh, .forgejo/workflows/*.yml, vendor/README.md.