selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

fugu logo

Self-host fugu

v1.1.5

Privacy-friendly product analytics you can self-host

ReleaseOpen SourceAGPL-3.0
Updated2 years ago
LanguageRuby
Setup difficultyModerate
Stars
214
Port
3000 (HTTP web server)
Requires
PostgreSQL
Docker
shafyy/fugu
Install with Docker
Main dashboard showing event tracking overviewEvents view with chart and property breakdownProperty value breakdown visualizationTime aggregation selector (day, week, month, year)Events view in documentationFunnels view showing conversion stepsFunnel creation form with step selectionProject settings page with API keys and visibility options

What is fugu?

Fugu is a free, open-source product analytics platform designed for indie developers and small teams who want to understand user behavior without compromising privacy. It uses an event-based tracking system where you send events with optional properties via a REST API. The web dashboard provides event charts with time aggregation (day, week, month, year), property value breakdowns, funnel analysis with up to 5 steps, and test/live modes to separate staging from production data. Projects can be made public and embedded via iframe. Fugu deliberately does not track unique users or personally identifiable information like IP addresses. It runs as a Ruby on Rails application with a PostgreSQL database and can be deployed via Docker Compose, Docker alone, or managed services like Heroku and Render. The project is licensed under AGPL-3.0 and has no paid tiers or feature restrictions in the self-hosted version.

Should you self-host fugu?

fugu scores 46/100 on selfhost.directory (how scoring works) and ranks #16 of 27 in Analytics. It has 214 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Ruby.

Its closest alternative on selfhost.directory is PostHog (81/100, 40 493 stars). It scores higher overall, so compare the two before you pick. See fugu vs PostHog side by side.

Features

  • API Key Authentication
  • Event Tracking
  • Funnel analysis
  • Privacy-focused tracking
  • Project embedding
  • Property Value Breakdown
  • Public projects
  • Test and live modes
  • Time Aggregation

fugu README

How to install fugu

Install fugu with Docker

Docker installed, PostgreSQL database available
Environment variables
ALLOW_REGISTRATION, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD, SECRET_KEY_BASE, DATABASE_URL, SENTRY_DSN, RAILS_LOG_TO_STDOUT, FORCE_SSL_PROD

docker run --env-file .env shafyy/fugu:latest

Requires external PostgreSQL database

How to configure fugu

  • ALLOW_REGISTRATIONtrueSetting this to false disallows new sign ups

    Setting this to false disallows new sign ups

    values: true/false

  • DATABASE_NAMEPostgreSQL database name

    PostgreSQL database name

  • DATABASE_NAME_TESTOnly needed if you are running automated tests during development

    Only needed if you are running automated tests during development

  • DATABASE_PASSWORDPostgreSQL database password

    PostgreSQL database password

  • DATABASE_URLRequired if you're running Fugu without docker-compose in production

    Required if you're running Fugu without docker-compose in production

  • DATABASE_USERPostgreSQL database user

    PostgreSQL database user

  • FORCE_SSL_PRODtrueSets config.force_ssl in production.rb - defaults to true

    Sets config.force_ssl in production.rb - defaults to true

    values: true/false

  • INIT_USER_EMAILSet this if you run with docker-compose and want to create an initial user

    Set this if you run with docker-compose and want to create an initial user

  • INIT_USER_PASSWORDSet this if you run with docker-compose and want to create an initial user

    Set this if you run with docker-compose and want to create an initial user

  • RAILS_LOG_TO_STDOUTtrueIf you want to log errors in server logs

    If you want to log errors in server logs

    values: true/false

  • SECRET_KEY_BASEGenerate key with `rails secret` or manually (alphanumeric string with 128 chars)

    Generate key with `rails secret` or manually (alphanumeric string with 128 chars)

  • SENTRY_DSNIf you want to use Sentry to track errors

    If you want to use Sentry to track errors

fugu releases & version history

More in Analytics

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…