Add update script for Proxmox LXC containers
Adds scripts/proxmox/update-linkvault.sh to pull the latest git changes, refresh dependencies, and restart the systemd service on an existing container. Documents usage in the README. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
20
README.md
20
README.md
@@ -153,6 +153,26 @@ pct exec <CTID> -- systemctl status linkvault # Status prüfen
|
|||||||
pct exec <CTID> -- journalctl -u linkvault -f # Logs verfolgen
|
pct exec <CTID> -- journalctl -u linkvault -f # Logs verfolgen
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Updaten
|
||||||
|
|
||||||
|
Wenn sich im Git-Repo etwas geändert hat, den Container mit
|
||||||
|
`scripts/proxmox/update-linkvault.sh` auf den neuesten Stand bringen. Das
|
||||||
|
Script zieht per `git pull`, aktualisiert die Python-Abhängigkeiten und
|
||||||
|
startet den systemd-Service neu. Auf dem **Proxmox-Host** ausführen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
CTID=113 bash <(curl -fsSL -H "Authorization: token ${GIT_TOKEN}" \
|
||||||
|
https://gitea.teamthiele.de/ethiele/linkvault/raw/branch/main/scripts/proxmox/update-linkvault.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
(`GIT_TOKEN` nur nötig, falls das Repo privat ist – siehe oben.)
|
||||||
|
|
||||||
|
Alternativ, falls das Repo bereits lokal ausgecheckt ist:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
CTID=113 bash scripts/proxmox/update-linkvault.sh
|
||||||
|
```
|
||||||
|
|
||||||
## Hinweise für den Produktivbetrieb
|
## Hinweise für den Produktivbetrieb
|
||||||
|
|
||||||
- Einen zufälligen `SECRET_KEY` in `.env` setzen.
|
- Einen zufälligen `SECRET_KEY` in `.env` setzen.
|
||||||
|
|||||||
46
scripts/proxmox/update-linkvault.sh
Executable file
46
scripts/proxmox/update-linkvault.sh
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# LinkVault – Update-Script für einen bestehenden Proxmox-LXC-Container
|
||||||
|
#
|
||||||
|
# Muss als root auf dem Proxmox-VE-Host ausgeführt werden. Zieht den
|
||||||
|
# neuesten Stand aus Git, aktualisiert die Python-Abhängigkeiten und
|
||||||
|
# startet den systemd-Service neu.
|
||||||
|
#
|
||||||
|
# Verwendung (auf dem Proxmox-Host):
|
||||||
|
# CTID=113 bash update-linkvault.sh
|
||||||
|
#
|
||||||
|
# Bei privatem Repo zusätzlich das Gitea Access Token setzen:
|
||||||
|
# CTID=113 GIT_TOKEN=<token> bash update-linkvault.sh
|
||||||
|
#
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
CTID="${CTID:-}"
|
||||||
|
GIT_TOKEN="${GIT_TOKEN:-}"
|
||||||
|
|
||||||
|
if ! command -v pct &>/dev/null; then
|
||||||
|
echo "Fehler: 'pct' nicht gefunden – dieses Script muss auf einem Proxmox-VE-Host laufen." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$CTID" ]; then
|
||||||
|
echo "Fehler: CTID muss gesetzt sein, z.B. 'CTID=113 bash update-linkvault.sh'." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "==> Aktualisiere LinkVault in Container $CTID..."
|
||||||
|
pct exec "$CTID" -- bash -c "
|
||||||
|
set -euo pipefail
|
||||||
|
cd /opt/linkvault
|
||||||
|
|
||||||
|
if [ -n '${GIT_TOKEN}' ]; then
|
||||||
|
git -c http.extraHeader=\"Authorization: token ${GIT_TOKEN}\" pull --ff-only
|
||||||
|
else
|
||||||
|
git pull --ff-only
|
||||||
|
fi
|
||||||
|
|
||||||
|
.venv/bin/pip install -q -r requirements.txt
|
||||||
|
systemctl restart linkvault
|
||||||
|
"
|
||||||
|
|
||||||
|
echo "==> Fertig. Status:"
|
||||||
|
pct exec "$CTID" -- systemctl --no-pager status linkvault
|
||||||
Reference in New Issue
Block a user