Kommandozeile (enconfctl)¶
enconfctl ist das lokale Admin- und Notfall-Werkzeug des Panels. Es spricht direkt mit der Panel-Datenbank und dem System — und funktioniert daher auch dann, wenn die Weboberfläche oder die API nicht erreichbar ist. Der klassische Einsatz: ein ausgesperrter Admin, dessen Passwort zurückgesetzt werden muss, oder ein schneller Gesundheits-Check direkt auf dem Server.
Das Werkzeug wird mit dem Paket enconf-webpanel installiert und liegt unter /usr/bin/enconfctl.
Root erforderlich
Die meisten Kommandos benötigen root — sie lesen die geschützte Konfiguration /etc/enconf/api.env und greifen direkt auf die Panel-Datenbank zu. Führen Sie enconfctl daher mit sudo aus.
Überblick¶
| Kommando | Zweck |
|---|---|
status |
Zustand der Panel-Dienste (api, agent, nginx, PostgreSQL, MariaDB, Mail, FTP, fail2ban) |
doctor |
Führt die Security-Audit-Checkliste lokal aus |
repair [schritt] [--apply] |
Rendert die Server-Config aus der Datenbank neu — der Notnagel, wenn nichts mehr geht |
admin reset-password <email> |
Setzt das Passwort eines Admins zurück |
admin create <email> |
Legt einen neuen Admin an |
admin list |
Listet alle Admin-Benutzer |
user list |
Alle Benutzer (ID, E-Mail, Rolle, aktiv) |
customer list |
Alle Kunden |
site list |
Alle Websites |
version |
Zeigt die Version |
Dienste prüfen — status¶
$ sudo enconfctl status
Panel-Dienste:
enconf-api active
enconf-agent active
nginx active
postgresql active
mariadb active
...
Nicht installierte Dienste (z. B. auf einem reinen Web-Knoten) werden als n/a angezeigt.
Gesundheits-Check — doctor¶
doctor prüft eine Teilmenge der Härtungs-Checkliste direkt auf dem Server:
$ sudo enconfctl doctor
Security-Audit:
✔ Panel-Secret /etc/enconf/api.env ist 0600 root:root
✔ PHP-Pools mit open_basedir + disable_functions (12 geprüft)
✔ /tmp/<user> ist 0700 user:user (12 geprüft)
✔ Webroots sind 0710 owner:www-data (12 geprüft)
✔ Brute-Force-Schutz (fail2ban) aktiv
✔ 12 Kunden-AppArmor-Profil(e) geladen
Ein ✘ (rot) markiert eine verletzte Invariante, ein ⚠ (gelb) einen Hinweis (z. B. „keine PHP-Pools gefunden" auf einem Nicht-Web-Knoten). Die vollständige Audit-Liste steht in der Projekt-Dokumentation.
Config reparieren — repair¶
Wenn die Server-Config zerschossen ist — kaputte nginx-Vhosts, fehlende Zertifikate, verwaiste PHP-Pools, driftende DNS-/Firewall-Regeln — rendert repair alles aus der Datenbank als Wahrheitsquelle neu. Es ist derselbe Reparatur-Mechanismus, den das Panel intern nutzt, nur direkt von der Kommandozeile.
Sicher by default: erst Vorschau, dann anwenden
Ohne --apply läuft repair im Dry-Run — es zeigt nur, was es ändern würde, und fasst nichts an. Erst mit --apply wird tatsächlich repariert.
$ sudo enconfctl repair # Vorschau aller Schritte (nichts wird geändert)
$ sudo enconfctl repair --apply # alles reparieren
$ sudo enconfctl repair list # verfügbare Schritte auflisten
$ sudo enconfctl repair RepairNginxVhosts --apply # nur einen Schritt anwenden
Beispiel-Vorschau:
$ sudo enconfctl repair
Vorschau (Dry-Run) — es werden KEINE Änderungen vorgenommen. Mit --apply reparieren.
RepairSSL Änderungen (geplant 8, geschrieben 0, unverändert 8, 14ms)
~ example.de: certificate missing on disk (ssl_enabled in DB) → would re-issue
RepairNginxVhosts Änderungen (geplant 8, geschrieben 0, unverändert 8, 12ms)
~ example.de: vhost would be re-rendered from DB state
...
Verfügbare Schritte: TLS, Ghost-Sites, SSL-Zertifikate, nginx-Vhosts, Apache-Vhosts, Redirect-Vhosts, Staging-Vhosts, nginx-Includes, Backup-Snapshots, Orphans, Webspace-Rechte. Jeder Schritt ist idempotent (mehrfaches Ausführen ist gefahrlos) und nginx-Änderungen werden vor dem Reload mit nginx -t validiert.
Reihenfolge
repair (ohne Schritt) führt die Kette in der richtigen Reihenfolge aus (z. B. SSL vor den Vhosts, damit listen 443 mit echtem Zertifikat gerendert wird). Bricht ein Schritt an einem infrastrukturellen Fehler ab (z. B. Agent nicht erreichbar), stoppt die Kette — Ursache beheben und erneut ausführen.
Admin-Passwort zurücksetzen — Notfall-Zugang¶
Wenn Sie sich nicht mehr an der Weboberfläche anmelden können:
$ sudo enconfctl admin reset-password admin@example.de
✔ Passwort für admin@example.de gesetzt — alle bestehenden Sessions wurden invalidiert.
Neues Passwort: qMegHdAXE4i9JNDU
- Ohne
-pwird ein sicheres Passwort generiert und angezeigt. - Mit
-p <passwort>setzen Sie ein eigenes:… reset-password admin@example.de -p MeinPasswort. - Alle bestehenden Sitzungen werden ungültig (die Passwort-Version wird erhöht), auch offene Browser-Tabs müssen sich neu anmelden.
reset-password wirkt nur auf Admin-Konten. Für Kundenkonten nutzen Sie die Weboberfläche.
Neuen Admin anlegen¶
$ sudo enconfctl admin create zweiter-admin@example.de
✔ Admin zweiter-admin@example.de angelegt (id 7).
Passwort: 7hFqm2KpQ9wUxbLe
Auch hier setzen Sie mit -p <passwort> ein eigenes Passwort. Existiert die E-Mail bereits, bricht das Kommando ab.
Listen für Skripte¶
user list, customer list und site list geben Tabellen aus. Bei Weiterleitung in eine Pipe werden die Farb-Codes automatisch weggelassen — ideal für grep/awk: