History Collector
Python/FastAPI strežnik za lastno Chrome razširitev: sprejema obiske, jih trajno shrani v SQLite in jih lahko opcijsko pošlje v zaseben Discord kanal prek webhooka.
URL-ji so lahko občutljivi. Uporabi samo na napravah, ki jih upravljaš, z jasnim obvestilom uporabnikom. Strežnika ne izpostavljaj neposredno internetu brez HTTPS in dodatne zaščite.
Zagon
cp .env.example .env
# V .env nastavi dolg, naključen API_TOKEN.
docker compose up -d --build
docker compose logs -f
curl http://127.0.0.1:8080/healthz
Privzeto posluša samo na 127.0.0.1:8080. Za dostop iz drugih naprav uporabi VPN (Tailscale/WireGuard) ali HTTPS reverse proxy z avtentikacijo. Ne odpiraj porta neposredno v internet.
API
POST /v1/visits, z glavo Authorization: Bearer TVOJ_API_TOKEN:
{
"device_id": "otrok-prenosnik",
"visits": [{
"url": "https://example.com/clanek",
"title": "Primer",
"visit_time": "2026-10-06T18:50:00Z",
"transition": "observed"
}]
}
Odgovor 202 Accepted pomeni, da je paket zapisan v ./data/history.sqlite3. Podvojeni obiski se ne podvojijo.
Discord (neobvezno)
V .env nastavi DISCORD_WEBHOOK_URL. Najprej se zapis shrani v SQLite, nato se poskusi poslati Discordu. Neuspeh Discorda ne izbriše podatkov.
Nastavitev razširitve
V extension/config.js nastavi collectorUrl, apiToken in deviceId. Token naj ostane v tej lokalni datoteki in naj ne konča v repozitoriju. manifest.json vsebuje široko dovoljenje za HTTP/HTTPS gostitelje zato, da lahko izbereš lasten API naslov; če želiš strožje dovoljenje, zamenjaj host_permissions samo s svojim HTTPS naslovom.