Zum Inhalt springen
stackschmiede.de
DE
2025 industry

Hetzner Panel — own server administration tool (Go)

Lean, individual web panel to manage Hetzner root servers. Live metrics, service restart, logs. Single binary in Go (~25 MB), runs on any Linux server.

Year
2025
Duration
Ongoing
Role
Solo engineer (AI-augmented) — Go backend, frontend, deployment
Sector
industry
Tech stack
Go 1.23chiJWT + bcryptSQLite (moderncCGO-free)WebSocketgopsutilzerolog

What’s this about?

Anyone running a root server at Hetzner (or Strato, OVH) often needs an individual admin tool — live overview, service control, logs, simple configuration. Standard solutions are Plesk / cPanel (commercial, ~€50-150/month, often overloaded), Webmin (open source, visually stuck in the 2000s), or nothing (SSH + tmux + grep — works, but not for clients without Linux background).

The Hetzner Panel is my lean answer — a customizable, individual config panel that I tailor to clients’ server setups on request.

What it can do today

Live metrics in browser (CPU, RAM, disk, network, load), service control (status/start/stop for any systemd service), log reading (journalctl with filter and live tail), backup triggers (wrappers around restic/duplicacy), JWT login with bcrypt, single binary deployment.

What it does not aim to be

Not a Plesk clone (no 50 modules for every possible use case), not a multi-tenant hosting platform, no auto-installers for WordPress/apps (intentionally no vulnerability surface).

What I offer

Option 1 — standard setup: panel on your server, standard modules. €1,500-2,900 one-off

  • optional maintenance from €19/month.

Option 2 — individual panel: panel as base, with modules tailored for you (web-hooks to your apps, custom dashboard widgets, industry-specific tools). €3,900-9,000 depending on scope.

Outcomes

  • Single binary, ~25 MB, statically compiled (CGO_ENABLED=0)
  • Runs on any Linux server without runtime dependencies
  • Live system metrics via WebSocket in the browser
  • Service status, start/stop, logs from Nginx/Caddy/Postgres etc.
  • JWT-based login with bcrypt-hashed passwords
  • Persistent configuration in local SQLite file