cx-nexredirect/wiki/CLI.md

70 lines
2 KiB
Markdown
Raw Permalink Normal View History

# CLI
Auf dem Server: `nexredirect <command>` (Symlink in `/usr/local/bin/`).
## Subcommands
```
status Service-Status (systemctl status)
start Service starten
stop Service stoppen
restart Service neu starten
logs [-n N] Logs streamen (default: -f live tail)
update [tag] Auf neueste Version (oder bestimmten Tag); skip wenn schon aktuell
update -f [tag] Update erzwingen auch wenn Version gleich
version Aktuelle + neueste Version (von GitHub)
caddy reload Caddyfile reload via Admin-API
caddy regen Caddyfile aus DB neu generieren + reloaden
caddy fix-perms /etc/caddy/Caddyfile dem Service-User übertragen
caddy show Aktuellen Caddyfile anzeigen
db SQLite-Shell auf der Datenbank öffnen
domains Aktive Domains listen
hits [N] Letzte N Hits (default 20)
tokens API-Tokens auflisten
backup [PATH] DB + Caddyfile sichern (default: /tmp/...)
uninstall Service + Files entfernen (DB bleibt)
help Hilfe
```
## Beispiele
```bash
# Status checken
nexredirect status
# Live-Logs
nexredirect logs
# Letzte 50 Hits
sudo nexredirect hits 50
# Update auf neueste Version
sudo nexredirect update
# Update auf bestimmten Tag (auch downgrade)
sudo nexredirect update v0.1.10
# Force-Update (gleiche Version neu installieren)
sudo nexredirect update -f
# DB anschauen
sudo nexredirect db
sqlite> SELECT id, domain, status FROM domains;
sqlite> .quit
# Caddyfile anzeigen
nexredirect caddy show
# Backup
sudo nexredirect backup
sudo nexredirect backup /backup/nexredirect-$(date +%F).tgz
```
## Service-User-Konzept
Service läuft als unprivileged user `nexredirect` (UID via `useradd --system`). Die meisten Commands brauchen `sudo` weil sie systemctl / DB-Schreibzugriff benötigen.
`sudo update.sh` ist über `/etc/sudoers.d/corex-nexredirect` als einzige Privileg-Eskalation erlaubt — vom Service-Process selbst aufrufbar wenn das UI "Update installieren" triggert.
→ Weiter mit [[API]]