About this project
Aurora is an open-source, self-hosted web analytics application designed to measure website traffic without storing anything on visitors' devices. It uses no cookies, no localStorage and no fingerprinting, and keeps event data in a PostgreSQL database controlled by the operator. The browser tracking script is reported as 2.4 KB over the wire.
Visitors are identified through a rotating HMAC derived from IP address, user agent and a server-side salt. The hash input rotates daily, so visitor IDs cannot be linked across days, and nothing leaving the browser is intended to be traceable to a person. This approach is presented as relevant to ePrivacy Art. 5(3), because storing information in terminal equipment such as localStorage is treated similarly to cookies.
The dashboard shows visits, unique visitors, sessions, bounce rate and average session duration for a selected range and timezone. It includes a Recharts timeseries and breakdowns for pages, referrers, acquisition channels, countries, browsers, operating systems, devices, languages and UTM parameters. Custom events can carry scalar props and revenue values, with ISO-4217 currencies. A site can be marked public to expose a read-only analytics dashboard without login.
Deployment is available through Docker images published for linux/amd64 and linux/arm64. Required configuration includes DATABASE_URL and SESSION_SECRET, while AURORA_SALT is required in production. AURORA_IP_HEADER is strongly recommended so the trusted proxy hop determines client IP data; if unset, the application warns and falls back to headers that clients can set. AURORA_COUNTRY_HEADER is optional for country code from an edge.
To track a site, the dashboard provides a script tag with the site ID. Pageviews and client-side route changes are tracked automatically. Custom events call a global aurora function, which queues calls made before the script loads. Props accept scalars only, up to 24 keys.
Development requires Node 20+ and pnpm 10. The project is a pnpm workspace with a React Router web application and a tracker package bundled to the served script. It uses Drizzle on PostgreSQL, Tailwind CSS with shadcn/ui, Recharts, Vitest, and oxlint/oxfmt. Commits follow Conventional Commits, releases are automated with release-please, and versioning follows SemVer. Aurora 4 is described as a ground-up rewrite with no migration path from 1.x or 2.x. The project is MIT licensed.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.