feat: umfangreiches UI+API-Polish (v1.1.36–1.1.42)
Backend: - Audit-Log: Search-Endpoint mit ILIKE-Filter (actor/action/subject/date) - NTP: /ntp/status via chronyc tracking (Stratum, Offset, Quelle) - System: /service-restart mit Allowlist (haproxy/squid/unbound/chrony/scheduler) - Domain-Response-Headers + Rate-Limit (Migration 0024) - Join-Tokens (Migration 0025), Cluster-mTLS, Aggregator-Fan-Out - apt-Service für Update-Banner (apt-get update + Versionsprüfung) - Backup-Retry mit exponential backoff (retry_apt 3×) - publish.sh fail-fast + cleanup-old.sh (max 10 Versionen) Frontend: - Audit-Log-Page (/audit) mit Filter + Pagination - ErrorBoundary an React-Root + Vite build-target festgenagelt (iOS 15+) - Storage-Schema-Stamp: auto-wipe bei Versions-Mismatch (blank-page-Fix) - EmptyState-Komponente überall ausgerollt - SSL: Aggregate-Karte (total/expiring/expired/errors) - Backups: Aggregate-Karte (letzter Backup/Größe/Fehlschläge 24h) + Backup-Now - NTP: Sync-Status-Karte (chronyc tracking live) - Domains: Backend-UP/DOWN-Chip aus HAProxy-Stats - Backends: HAProxy-Status-Spalte (UP/DEGRADED/DOWN) - Settings: Service-Neustart-Karte (haproxy/squid/unbound/chrony/scheduler) - Settings: Upgrade-Status-Card, Wartungsmodus, Auto-Update, Retention - Dashboard: Recent-Alerts, Cluster-Health, License-Chip, Onboarding-Hint - System-Regeln im Firewall als eigener Tab Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,12 @@ case "$1" in
|
||||
# gehört nur edgeguard.
|
||||
install -d -m 0700 -o "$EG_USER" -g "$EG_USER" /var/lib/edgeguard/acme-account
|
||||
|
||||
# Cluster-TLS-Dir 0700 — Cluster-CA-Key + peer.key sind sehr
|
||||
# sensitiv (CA-Compromise = vollständiger Cluster-Bruch). Wird
|
||||
# beim API-Boot mit Material gefüllt; postinst legt nur den
|
||||
# Dir an damit der API-User schreiben kann.
|
||||
install -d -m 0700 -o "$EG_USER" -g "$EG_USER" /var/lib/edgeguard/cluster-tls
|
||||
|
||||
# Backup-Verzeichnis: edgeguard-owned damit der scheduler /
|
||||
# API-Prozess schreiben kann. Mode 0750 — Backups enthalten
|
||||
# einen pg_dump der edgeguard-DB + license_key, also nicht
|
||||
@@ -101,6 +107,11 @@ edgeguard ALL=(root) NOPASSWD: /usr/bin/systemctl restart chrony.service
|
||||
edgeguard ALL=(root) NOPASSWD: /bin/systemctl restart chrony.service
|
||||
edgeguard ALL=(root) NOPASSWD: /usr/bin/apt-get update -qq
|
||||
edgeguard ALL=(root) NOPASSWD: /usr/bin/apt-get update
|
||||
# Auto-Update-Toggle (Settings → Automatische Updates) schreibt/entfernt
|
||||
# exakt diese Conf-Datei. Restrict auf den genauen Pfad damit edgeguard
|
||||
# NICHT beliebig in /etc/apt/apt.conf.d schreiben darf.
|
||||
edgeguard ALL=(root) NOPASSWD: /usr/bin/tee /etc/apt/apt.conf.d/52edgeguard-auto-updates
|
||||
edgeguard ALL=(root) NOPASSWD: /bin/rm -f /etc/apt/apt.conf.d/52edgeguard-auto-updates
|
||||
# Backup-Pfad: pg_dump als postgres-User. Whitelist exakt mit
|
||||
# --clean --if-exists --no-owner --no-acl + dem festen DB-Namen.
|
||||
edgeguard ALL=(postgres) NOPASSWD: /usr/bin/pg_dump --clean --if-exists --no-owner --no-acl edgeguard
|
||||
@@ -458,7 +469,16 @@ ROUTESUNIT
|
||||
# ── systemd: pick up new units + restart haproxy with our cfg
|
||||
systemctl daemon-reload
|
||||
systemctl restart haproxy.service || true
|
||||
systemctl enable --now edgeguard-api.service edgeguard-scheduler.service || true
|
||||
systemctl enable edgeguard-api.service edgeguard-scheduler.service || true
|
||||
# restart (NICHT enable --now): das neue Unit-File könnte ein
|
||||
# geänderter ReadWritePaths-Block sein (Befund 1.0.87:
|
||||
# /var/lib/apt fehlte → apt-get update aus dem Update-Banner-
|
||||
# Handler schrieb in read-only Filesystem und failte still).
|
||||
# daemon-reload allein lädt die neue Unit nur für NÄCHSTE Starts;
|
||||
# der laufende Daemon behält das alte Sandbox-Snapshot bis zum
|
||||
# restart. Bei Erst-Install ist nichts running, dann ist das
|
||||
# ein normaler Start.
|
||||
systemctl restart edgeguard-api.service edgeguard-scheduler.service || true
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
||||
Reference in New Issue
Block a user