updated Sep 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
An open-source, privacy-friendly Google Analytics alternative that goes further than a pageview dashboard: sessions, unique users, bounce rate, real-time view, goals, retention, user journeys, funnels, session replays, custom events with JSON properties, and country → region → city maps — no cookies. Licensed AGPL-3.0 and installed by one setup script that starts Caddy, ClickHouse, PostgreSQL, Redis and the two app containers; it needs a domain pointed at the server because its tracking script must be served over HTTPS.
Pick Rybbit when you want more than a pageview dashboard from a Google Analytics replacement — sessions, funnels, retention, user journeys, goals and session replays — under a plain AGPL-3.0 license, and you have a domain to point at the server. One setup script starts the whole stack, Caddy included, and the project's own floor is 2 GB of RAM. If you only want to know how the site is doing, Umami or GoatCounter is less to run.
What you need
Any VPS with at least 2048 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
Paid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Rybbit — the official setup script writes .env and starts the compose stack (Caddy, ClickHouse, PostgreSQL, Redis, backend, client)git clone https://github.com/rybbit-io/rybbit.gitcd rybbit && chmod +x *.sh# point a (sub)domain at this server first — Caddy needs it to obtain the HTTPS certificate./setup.sh tracking.example.com # → https://tracking.example.com# already running your own reverse proxy? ./setup.sh tracking.example.com --no-webserver (backend :3001, client :3002)
Rybbit's install is scripted, but its own docs put three conditions on it that are worth knowing before you start:
non-negotiableA domain or sub-domain pointed at the server is required, not optional — the docs are explicit that HTTPS is mandatory because browsers block tracking scripts served over plain HTTP. There is no IP-only install.
non-negotiableThe setup script bundles Caddy on ports 80/443 to issue the certificate. If those ports already belong to another reverse proxy, run it with --no-webserver and proxy the backend (3001) and client (3002) yourself.
non-negotiableIt runs ClickHouse, PostgreSQL and Redis beside the two app containers. The 2 GB figure is the docs' own minimum ("try to get one with at least 2GB of RAM"), and on ARM the CPU must be at least ARMv8.2-A for ClickHouse.
non-negotiableWeb Vitals is cloud-only in practice: the README marks it "Only available on paid tiers", and the self-hosted build hides the Performance page and its toggle, even though the docs' self-hosted-vs-cloud table still ticks it (that table marks only Pages View and Email reports as cloud-only).