Server inventory & deployment automation

When you have more than 5 servers, you stop remembering which one runs what. This tool fixes that. Single source of truth for: server, role, deploy status, uptime, and alerts.

What it does

  • 📋 Inventory — name, IP, role, environment, tags
  • 🚀 Deploy queue — what’s deploying where, status
  • 📊 Dashboard — uptime, last deploy, alerts
  • 🔔 Notifications — Slack/Telegram when deployments fail

Stack

  • Python (FastAPI) for the API
  • SQLite for local store (Postgres optional)
  • HTMX for the dashboard (no React, no build step)
  • systemd + cron for agent-side collection

Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│  each host  │    │  central     │    │  dashboard  │
│             │    │  API         │    │             │
│  agent.py ──┼──▶ │  FastAPI ────┼──▶ │  /dashboard │
│  (cron 5m)  │    │  SQLite      │    │  (HTMX)     │
└─────────────┘    └──────────────┘    └─────────────┘
                          │
                          ▼
                   ┌─────────────┐
                   │  Telegram   │
                   │  alerts     │
                   └─────────────┘

The agent is a 50-line Python script that runs via cron every 5 minutes, collects uptime, df, docker ps, and POSTs to the central API.

Why not use Prometheus + Grafana?

I do — for metrics. This tool is for metadata and deploy tracking, which Prometheus isn’t great at. They complement each other:

  • Prometheus: real-time metrics (CPU, RAM, network)
  • This tool: who-owns-what, deploy history, on-call schedule

Status

Built and in daily use. Source coming soon once I clean up the embarrassing parts.