vaha_
DE Deutsch
← Index No. 19 / 21

Akte · Own tool · ops

ServersManagerPanel

Fleet control panel

My own fleet panel: a single Go binary with the frontend embedded, a SQLite store and no runtime dependencies. It keeps the machine inventory, a key × server access matrix, encrypted .env snapshots, metrics over persistent SSH sessions, package updates across the fleet and saved commands on a cron schedule. LAN boxes are reached through ProxyJump, so no port forwards are needed.

Bereich
Own tool · ops
Jahre
2026 → present
Status
live
System
Web · Server
ServersManagerPanel — Fleet control panel
Screenshot · No. 19 The panel — inventory, metrics and state for every server in one place.

Was es tut

01 / 09
  1. Server inventory with live metrics over a persistent SSH session
  2. Access matrix: which key may enter which host, applied immediately over the live session
  3. Per-server .env snapshots sealed with AES-256-GCM, master.key kept outside the database
  4. Fleet-wide package updates: apt, dnf and pacman, with per-machine output
  5. Saved commands on a cron schedule, with the history of every run
  6. Service control: systemd units, Docker containers and Kubernetes pods
  7. ProxyJump to LAN boxes, up to three hops, host keys pinned
  8. Health view: offline hosts, pending patches, reboot flag, failed units, disk
  9. API on loopback only, CSRF on every mutation, an audit trail for every action

Schichten

02 / 03

Core — Go

GoSQLiteSSHSSE
  • One binary, cross-compiled without cgo
  • sshx layer: scripts run through base64 and bash -s, works even on fish hosts
  • Per-host metric collectors, cached, streamed to the browser over SSE
  • Background jobs for upgrades, per-host output held in memory

Surface — SPA

JavaScriptCSSgo:embed
  • The frontend is embedded in the binary, no separate service
  • Pages: fleet, server, access, keys, snapshots, commands, audit
  • Bento cards, CPU/RAM/disk/network charts per machine
  • A dark palette with its own tokens, no framework

Security

argon2idAES-256-GCMCSRF
  • Password as an argon2id hash, session as a signed cookie
  • Secrets are per-server files, outside every web root, mode 0600
  • The database keeps only the snapshot index, never the content
  • The panel has its own key and does not depend on a laptop's key

Technologien

03 / 03
Sprachen GoJavaScriptSQL 03
Frameworks & Werkzeuge SQLiteSSH (x/crypto)SSEgo:embedsystemdDocker 06
Infrastruktur vahid-imCaddysystemdProxyJump 04

Alle Systeme im Verzeichnis

Zurück zum Index →