Datadog-style log aggregation, minus Datadog's bill.
Live demo: https://logator.kerilpatel.com — sign in as demo / logator-demo-2026. It runs on Azure's free tier, scales to zero, and reseeds on cold start, so the first request after a quiet period takes a few seconds.
Observability platforms price for enterprises, but a couple of side projects only need one thing: when a cron job dies at 3am, show me the logs. Logator is that, self-hosted — a small log aggregation system where services sign their entries with an HMAC key and POST them to an ingest endpoint, and a dashboard lets you search, filter, and live-tail them.
- Your infrastructure, your logs. No per-GB ingest pricing, no retention tiers, no agent phoning home. One Django app, one SQLite file, one dashboard.
- HMAC-signed ingest. Services authenticate with an API key + HMAC-SHA256 signature over the raw request body — replay-resistant, and the secret never travels on the wire. The protocol is ~40 lines to reimplement in any language (reference).
- A logging SDK that can't hurt you. The dependency-free Python SDK plugs into the standard
loggingmodule;emit()never does network I/O — records go onto a bounded queue and a daemon thread ships them in batches, so a logging call can never block your app.
- Backend: Django 5.2 + DRF, SQLite in WAL mode — ingest, read/tail/stats APIs, token auth for the dashboard
- Dashboard: React 19 + TypeScript + Tailwind v4, with live tail and Mermaid stat charts
- SDK: Pure-Python
logging.Handler, zero dependencies
# backend
cd logator_backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
cp .env.example .env # set DJANGO_SECRET_KEY
python manage.py migrate && python manage.py seed_demo
python manage.py runserver
# dashboard (second terminal)
cd logator_dashboard
npm install && npm run devOpen http://localhost:5173 and sign in with the same demo login. Swagger UI is at http://localhost:8000/api/docs/.
Want to host your own? DEPLOY.md has the full free-tier Azure setup.