Nothing to configure by hand. git fetch --tags && git checkout v0.6.0 && cd infra/selfhost && ./upgrade.sh; on Coolify or Dokploy, redeploy with the new tag. ClickHouse migrations 0023 and 0024 run through the ordinary migrate one-shot and only add columns.
Added
- Filters. Click a row in Sources, Locations or the device cards and the overview keeps only the sessions that match. Filters combine across dimensions (source, country, city, device) and sit on the tab bar, each clearing on its own. A filtered view is computed from raw events rather than a rollup, so it covers at most 92 days; past that the cards offer to shorten the range or drop the filters. The same filters work on the dashboard,
/v1/readand MCP. - Entries, exits and bounce rate per page in Top Pages, sortable by any of them.
- Click IDs are sources.
gclid,fbclid,msclkidand their companions attribute a visit to the ad network even when the referrer is empty. ?ref=is a source. A link you control can carry?ref=twitteror?ref=newsletter; visits that would have read as Direct get that name. Known names fold onto the site they mean, anything else is kept as written. Explained in the dashboard docs.- Polar as a second revenue provider next to Stripe, with Standard Webhooks signature verification.
- Umami import. One archive entry may fill several reports.
- Overview poster. A share button turns the overview on screen (site, period, headline numbers, traffic curve) into a PNG or copies it to the clipboard.
- Realtime on the overview. A card lists the visitors present right now, with a live badge beside the Overview and Realtime titles.
- MCP. Every tool spells out its hints, native-app redirect URIs are accepted, and the repository carries a root
.mcp.jsonpointing at the hosted server. - Dokploy. The blueprint ships with an import config and a copyable raw link.
- Docs. The dashboard page now explains what each headline metric counts, how each breakdown is cut, how filters behave and how to tag your own links.
Changed
- A tracker on a site that no longer exists stands down: the config read returns a 404 with a gone marker,
collection_pausedcarries a body and an ETag, and the tracker stops asking. - Cards fall back to plain rounded corners on browsers without
corner-shape. - A
CHANGELOG.mdnow lives in the repository, starting with this release.
Fixed
- Email: a 429 from the provider is retried instead of burning the address, and a typo in a stranger's address is no longer recorded as a page. Terminal failures are recorded as
failed. - Ingest: the finalizer window is bounded, the outbox is leased and reclaimed rather than raced, the backlog carries
available_at, and the queue exposes its own metrics. - Realtime: a refusal is believed only once a fresh token has been refused, so an expired token no longer reads as a revoked one.
- Shared reports: percentages are shares of the total, not of the largest row.
Next
0.7.0 brings fifteen-minute rollups, so every timezone works, including half-hour and quarter-hour offsets such as +05:30 and +05:45. That upgrade runs a one-time backfill; upgrade.sh will do it for you.