<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on nuteo.info</title><link>https://nuteo.info/en/tags/python/</link><description>Recent content in Python on nuteo.info</description><generator>Hugo</generator><language>en</language><copyright>© 2026 Nuteo</copyright><lastBuildDate>Mon, 03 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://nuteo.info/en/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Server inventory &amp; deployment automation</title><link>https://nuteo.info/en/work/server-inventory/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://nuteo.info/en/work/server-inventory/</guid><description>&lt;h1 id="server-inventory--deployment-automation"&gt;Server inventory &amp;amp; deployment automation&lt;/h1&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="what-it-does"&gt;What it does&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;📋 &lt;strong&gt;Inventory&lt;/strong&gt; — name, IP, role, environment, tags&lt;/li&gt;
&lt;li&gt;🚀 &lt;strong&gt;Deploy queue&lt;/strong&gt; — what&amp;rsquo;s deploying where, status&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Dashboard&lt;/strong&gt; — uptime, last deploy, alerts&lt;/li&gt;
&lt;li&gt;🔔 &lt;strong&gt;Notifications&lt;/strong&gt; — Slack/Telegram when deployments fail&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="stack"&gt;Stack&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; (FastAPI) for the API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQLite&lt;/strong&gt; for local store (Postgres optional)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTMX&lt;/strong&gt; for the dashboard (no React, no build step)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;systemd&lt;/strong&gt; + cron for agent-side collection&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ each host │ │ central │ │ dashboard │
│ │ │ API │ │ │
│ agent.py ──┼──▶ │ FastAPI ────┼──▶ │ /dashboard │
│ (cron 5m) │ │ SQLite │ │ (HTMX) │
└─────────────┘ └──────────────┘ └─────────────┘
 │
 ▼
 ┌─────────────┐
 │ Telegram │
 │ alerts │
 └─────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The agent is a 50-line Python script that runs via cron every 5 minutes,
collects &lt;code&gt;uptime&lt;/code&gt;, &lt;code&gt;df&lt;/code&gt;, &lt;code&gt;docker ps&lt;/code&gt;, and POSTs to the central API.&lt;/p&gt;</description></item></channel></rss>