Tutorial

Rybbit: the self-hosted PostHog alternative on VPS

Security & Monitoring6 min read8 steps

PostHog has progressively reduced its investment in self-hosted deployments, pushing teams toward PostHog Cloud. Rybbit fills this gap: a lightweight product analytics solution under the Apache-2.0 license, with over 13 000 GitHub stars since its launch in 2025, installable in under 30 minutes on a VPS.

Contents· Why replace self-hosted PostHog now1/8
  1. 01Why replace self-hosted PostHog now
  2. 02What Rybbit brings over PostHog Community
  3. 03Prerequisites before installation
  4. 04Install Rybbit on a VPS in under 30 minutes
  5. 05Migration from PostHog: exporting historical events
  6. 06PostHog self-hosted vs Plausible vs Rybbit
  7. 07Backup and maintain Rybbit in production
  8. 08Is Rybbit ready for production in 2025

Why replace self-hosted PostHog now

PostHog ended support for its Kubernetes/Helm deployment and now recommends PostHog Cloud as the primary option for high-volume setups. The Docker Compose version remains available without active support guarantees — prompting many teams to seek a better-maintained alternative. Rybbit, under the Apache-2.0 license, is now the most active solution in this segment: over 13 000 GitHub stars in under 18 months since its launch in April 2025, with a lightweight architecture focused on essential product events without PostHog's complexity.

What Rybbit brings over PostHog Community

  • Apache-2.0 license — no SSPL clause, no commercial restriction, usable in enterprise without a special agreement
  • Reduced memory footprint — 512 MB is enough to start; PostHog Community required a minimum of 4 GB RAM in basic configuration
  • Simplified stack — PostgreSQL + Redis + a single Go binary, without mandatory Kafka or ClickHouse for typical volumes
  • GDPR by design — data stored on your infrastructure, no transfer to third parties, built-in IP anonymization
  • Cookie-free tracking — identification based on fingerprint and sessions, compatible with strict consent policies
  • Funnels, retention, and heatmaps — essential product analytics functions available without a paid tier
  • Compatible events API — the event schema is close to PostHog, making migration of existing collectors easier

Prerequisites before installation

Rybbit runs comfortably on a machine with 1 vCPU and 2 GB RAM for volumes up to several million events per month. For higher volumes (tens of millions of events), plan for 2 vCPU and 4 GB. Storage depends on the chosen retention: count approximately 1 GB for 500,000 events with a 90-day retention.

On the software side, you need Docker Engine 24+ and Docker Compose v2. A domain name pointing to your VPS is required for the TLS certificate. Ports 80 and 443 must be open on the firewall.

Install Rybbit on a VPS in under 30 minutes

  1. Update the system and install Docker

    Connect to your VPS as root, then run:

    apt update && apt upgrade -y
    curl -fsSL https://get.docker.com | sh
    systemctl enable --now docker

    Verify Docker Compose v2 is available: docker compose version.

  2. Create the working directory

    mkdir -p /opt/rybbit && cd /opt/rybbit
  3. Download the official Docker Compose file

    curl -fsSL https://raw.githubusercontent.com/rybbit-io/rybbit/main/docker-compose.yml -o docker-compose.yml
    curl -fsSL https://raw.githubusercontent.com/rybbit-io/rybbit/main/.env.example -o .env
  4. Configure environment variables

    Edit the .env file and set at minimum:

    BASE_URL=https://analytics.your-domain.com
    POSTGRES_PASSWORD=a_strong_password
    JWT_SECRET=a_long_random_string

    Generate JWT_SECRET with: openssl rand -hex 32.

  5. Start the containers

    docker compose pull
    docker compose up -d

    Verify all services are healthy: docker compose ps.

  6. Configure the nginx reverse proxy with TLS

    Install nginx and certbot, then create /etc/nginx/sites-available/rybbit:

    server {
        server_name analytics.your-domain.com;
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    Enable the site and obtain the certificate: certbot --nginx -d analytics.your-domain.com.

  7. Create the first admin account

    Go to https://analytics.your-domain.com in your browser. The initialization wizard lets you create the admin account and add your first site. Note the Site ID — you will need it for the tracking snippet.

  8. Integrate the tracking snippet

    Copy the snippet from the dashboard and add it before </head> in your pages:

    <script
      src="https://analytics.your-domain.com/script.js"
      data-site-id="YOUR_SITE_ID"
      defer>
    </script>

    The first events appear in the dashboard in real time.

Migration from PostHog: exporting historical events

Rybbit does not offer a native import from PostHog. The simplest migration is to run both trackers in parallel for 30 days, then cut PostHog once Rybbit has accumulated enough history for your retention and funnel analyses. To export your PostHog data, use the events export API (/api/event) with pagination, and keep the JSON files as an archive — Rybbit will not consume them, but you retain traceability. Regarding GDPR compliance, Rybbit stores data only on your VPS: no transfer outside your infrastructure, and IP address anonymization can be enabled in the .env file via ANONYMIZE_IPS=true.

PostHog self-hosted vs Plausible vs Rybbit

Scroll the table

CriterionPostHog Community (deprecated)Plausible CERybbit
LicenseMIT (archived, unsupported)AGPL-3.0Apache-2.0
Minimum recommended RAM4 GB512 MB512 MB
StackKafka + ClickHouse + PostgreSQL + RedisPostgreSQL + ClickHousePostgreSQL + Redis
Active supportNo (Kubernetes/Helm support ended, Docker Compose without active SLA)YesYes (actively growing project)
Funnels and retentionYesNo (traffic analytics only)Yes
HeatmapsYesYes (Clarity fork)Yes (in beta)
Cookie-free trackingNo (cookies by default)Yes (designed without cookies)Yes
Events APIYes (rich schema)Yes (simplified schema)Yes (schema close to PostHog)
GitHub stars~25,000 (archived repo)~20,000~12,000 (in 21 months)

Backup and maintain Rybbit in production

The PostgreSQL database contains all your analytics data. Schedule a daily backup with pg_dump:

docker exec rybbit-postgres-1 pg_dump -U postgres rybbit | gzip > /opt/backups/rybbit-$(date +%Y%m%d).sql.gz

For updates, Rybbit publishes versioned Docker images. The procedure is:

cd /opt/rybbit
docker compose pull
docker compose up -d

Check releases on GitHub for release notes before each update. Rybbit follows semantic versioning — minor and patch updates are safe without breaking changes.

Is Rybbit ready for production in 2025

The maturity question is legitimate for a 21-month-old project. Rybbit is used in production by several thousand teams, according to public Docker Hub image download data. Points of caution remain real: the event ingestion API is stable, but some advanced features like feature flags and A/B tests — present in PostHog — are not yet available. Heatmaps are in public beta.

For teams whose usage is limited to understanding the user journey — conversion funnels, retention rates, page and session analysis — Rybbit covers the essentials today. For teams that rely heavily on feature flags or advanced hypothesis testing, a 30 to 60-day parallel run period is recommended before the full switch. The project accepts contributions and GitHub issues are addressed quickly, which is a favorable health signal for a tool you will operate autonomously.

Rybbit fits into a broader trend: lightweight open source product observability tools have matured as cloud solutions raised their prices. With PostHog abandoning self-hosting, Plausible remaining focused on web traffic, and Umami targeting simple analytics, Rybbit occupies a precise niche: self-hosted product analytics for teams that want to keep control of their data without operating Kafka infrastructure. A ServOrbit entry-level VPS starting at 99 DH/month comfortably covers the needs of a medium-sized application.

Launch your ServOrbit Cloud VPS

A ServOrbit VPS starting at 99 DH/month is enough for Rybbit: 1 vCPU and 2 GB of RAM cover several million events per month.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab