Minu kodu veebiliides
Lihtsustatud vaade nutikodu lehest (https://nutikodu.odamus.com), eraldi
lehe jaoks. FastAPI backend + üks staatiline leht. Eestikeelne, mobiilisõbralik,
tume/hele teema.
Ligipääs
Funktsioonid
- Vaheleht "Andurid" — ainult üks kaart: Suuremõisa välistemperatuur
(ClickHouse
uus67.valisilm, Open-Meteo), 60 s värskendus. Graafikuid ei ole.
- Vaheleht "Transport" — identne nutikodu lehele: tänased bussiväljumised
Suuremõisa külast (peatus.ee) ja Heltermaa–Rohuküla praamiajad + seisakud/
tühistused (praamid.ee) ning Väinamere ilmahoiatuse kontekst (RII).
60 s värskendus.
- PWA-manifest (installitav telefonis),
noindex.
API
| Otspunkt |
Kirjeldus |
GET /api/latest |
Suuremõisa välistemperatuur (hetkeväärtus, avalik) |
GET /api/buss?limit=12 |
Suuremõisa küla järgmised bussiväljumised (avalik) |
GET /api/praam?days=1 |
Heltermaa–Rohuküla väljumised + staatus + ilmahoiatuse kontekst (avalik) |
GET /health |
tervis |
Keskkonnamuutujad
| Muutuja |
Vaikimisi |
Kirjeldus |
CH_URL |
http://clickhouse:8123 |
ClickHouse HTTP |
CH_DB |
uus67 |
andmebaas |
CH_USER / CH_PASS |
zigbee / – |
ainult SELECT uus67.* |
BUS_GRAPHQL |
peatus.ee Digitransit |
bussigraafiku GraphQL API |
BUS_STOPS |
estonia:24703,estonia:27213 |
Suuremõisa küla GTFS peatus-ID-d (komaga) |
PRAAM_API |
https://www.praamid.ee/online/events |
praamigraafiku API |
TRANSPORT_TTL |
60 |
bussi/praami väliste päringute vahemälu (sek) |
Struktuur
minukodu-web/
├── app.py # FastAPI backend (ClickHouse HTTP, JSONEachRow)
├── requirements.txt
├── Dockerfile # python:3.12-slim, port 8096
└── static/
├── index.html # üks leht, eestikeelne
├── style.css # light/dark, mobiil-first
├── app.js # välistemperatuuri kaart, perioodilüliti, teema, transport
├── manifest.webmanifest
└── icon.svg
Juurutus
Teenus on dev/docker-compose.yml-is (võrgud main_ai_network + prod_net).
docker compose -f /opt/docker-compose/dev/docker-compose.yml up -d --build minukodu-web
docker logs -f minukodu-web
Avalik ligipääs
- DNS: DigitalOcean A-kirje
jyri.odamus.com → 188.166.84.16.
- Edge Caddy (
kanad, /opt/edge/Caddyfile): jyri.odamus.com { reverse_proxy http://100.91.118.16:80 }.
- Sisemine Caddy (ohmu
prod_caddy, /opt/prod/Caddyfile): jyri.odamus.com:80 { reverse_proxy minukodu-web:8096 }.
- TLS väljastab edge automaatselt.