GoatCounter screenshot thumbnail

GoatCounter

GoatCounter delivers meaningful web traffic insights — pageviews, referrers, browsers, screen sizes, country-level geolocation — without setting a single cookie, without collecting personal data, and without forcing GDPR consent banners on your visitors. Written entirely in Go and distributed as a single compiled binary consuming roughly 25MB of RAM, it adds just 3.5KB to your pages via the tracking script, with a JavaScript-free tracking pixel alternative for sites that avoid scripts entirely, plus backend middleware integration and log file import for server-side collection. The dashboard displays pageview counts per path with hourly resolution, referrer sources grouped by domain with full URL on hover, browser and OS version breakdowns, screen size distributions, and country-level location data derived from IP addresses that are immediately discarded after geolocation. Campaign tracking supports UTM parameters and custom data attributes. A public stats option exposes your dashboard at a shareable URL for build-in-public transparency. SQLite serves as the default database requiring zero administration, while PostgreSQL handles higher-traffic deployments with multi-site setups. Built-in ACME and TLS certificate management eliminates reverse proxy requirements for HTTPS — no Nginx or Caddy needed. The REST API provides programmatic access to all analytics data. Deploy as a single binary, via Docker with the official arp242/goatcounter image, or through native packages. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. EUPL-1.2 licensed.

Deploy
Liwan screenshot thumbnail

Liwan

When you want honest traffic numbers without tracking cookies or stored IP addresses, Liwan puts a real-time analytics dashboard on your own server. The dashboard ranks pages, referrers, countries, browsers, platforms, and devices, charts visitors over time, and filters out bot traffic by default. Session metrics add bounce rate, average time on site, and entry and exit pages, while UTM fields attribute visits to campaigns. Collection is adjustable globally and per site: choose how visitors are grouped, whether to store country and city, country only, or no location, and how long events are kept. Drop rules discard internal, test, and local traffic before storage, and a pruning tool applies new settings to history after a dry-run preview. Tracking is one line of HTML, or your own server can send events with custom names and properties. Location can come from a MaxMind database or from Cloudflare, Vercel, and other proxy headers. One instance holds several projects and sites, with team accounts and single sign-on through Google Workspace, Microsoft Entra ID, or an OpenID Connect provider such as Keycloak or Dex. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache-2.0 licensed.

Deploy