Projekty

Vlastní software

Software napsaný pro toto prostředí a uvolněný jako open source. Každý řeší problém, který tenhle homelab skutečně měl.

GitHub
SvelteKit Svelte 5 TypeScript Node.js 24 PostgreSQL 17 MIT

SpeedMeasure

Self-hosted monitoring rychlosti internetu

Spouští měření rychlosti pomocí Ookly, LibreSpeedu nebo vlastního iperf3 serveru a zaznamenává download, upload, ping, jitter a ztrátovost paketů. Zadáte tarif, který platíte, a podíl rychlosti, který je poskytovatel povinen dodržet — aplikace pak sbírá důkazy o tom, kdy se tak nestalo: výpadky, dlouhodobé podlimitní stavy a špičky latence či ztrátovosti, každý se souhrnem nedostupnosti.

Celá instalace je docker compose up -d. Vícefázově sestavené image běží pod ne-root uživatelem a při každém startu aplikují migrace schématu; GitHub Actions při každém pushi a pull requestu spouští typovou kontrolu, unit testy a build obou images.

Dashboard SpeedMeasure: graf rychlosti s viditelným výpadkem a karty metrik
Dashboard — graf, karty metrik, živý režim
Výstrahy SpeedMeasure: otevřené incidenty, souhrn nedostupnosti a časová osa
Výstrahy — otevřené incidenty, nedostupnost, časová osa
Ve vývoji GitHub Forgejo
Vue 3 Vite Tailwind 4 Python 3.13 FastAPI PostgreSQL 18

WaterThingy

Self-hosted evidence zahrady a rostlin

Zahrady obsahují květináče, půdní směsi a konkrétní zasazené rostliny; každou zahradu vidí jen členové, kteří do ní byli pozváni. Sdílenou knihovnu druhů plní vyhledávání v botanickém API Trefle — jeho ordinální škály 0–9 pro světlo, vlhkost a živiny se při importu mapují na vlastní enumy aplikace, takže z importu vzejde skutečný profil péče, ne holá čísla. Aktuální počasí a čtyřdenní předpověď dodává Open-Meteo, bez klíče.

SPA ve Vue 3 a backend ve FastAPI nad Postgresem, celé v Dockeru. nginx servíruje sestavenou SPA a proxuje /api/ na backend ve stejném originu, takže autentizace je prostá httpOnly cookie bez nutnosti řešit CORS a přihlášení má rate limit už na proxy. Fáze 1 — webová aplikace — funguje; další fáze přidá ESP32 uzly hlásící vlhkost půdy přes MQTT, aby se o zalévání rozhodovalo podle měření, rozvrhu a předpovědi místo ručně.

Stránka rostlin: knihovna druhů a zasazené rostliny se stavem
Rostliny — knihovna druhů a zasazené rostliny
Import druhu: výsledky vyhledávání v Trefle s náhledem profilu péče
Import druhu — vyhledávání v Trefle s náhledem péče
Stránka květináčů: nádoby s přiřazenými rostlinami, rozměry a spočítaným objemem
Květináče — nádoby, přiřazené rostliny, objem
Přihlašovací obrazovka WaterThingy s názvem serveru, verzí a živými statistikami
Přihlášení — název serveru, verze a živé statistiky