Server inventory & deployment automation
Internal tool — track all servers, their roles, and deploy status from one dashboard. Python + FastAPI + SQLite.
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.