What is Fathom Analytics?

Fathom Analytics is a privacy-focused, lightweight web analytics platform designed to be a modern, GDPR-compliant alternative to Google Analytics. It tracks visits, page views, referrers, and more—without using cookies or collecting personal data. Fathom offers both a cloud-hosted service and a self-hosted version that you can run on your own infrastructure.

Installing Fathom on Ubuntu 24.04 allows you to take full control over your analytics data, improve page load times, and ensure compliance with global privacy regulations like GDPR, CCPA, and PECR.


Key Features of Fathom Analytics

  • Simple, clean dashboard with real-time traffic insights
  • No cookies or consent banners required for most jurisdictions
  • Fast-loading tracking script optimized for performance and minimal impact
  • Uptime and event tracking (via paid or extended features)
  • Custom domains for script delivery and anti-tracking protection
  • Script blocker bypass for more accurate metrics
  • Dark mode support and responsive UI

Self-Hosted Fathom (Open Source Edition)

The self-hosted version of Fathom, known as Fathom Lite, is:

  • Written in Go (Golang)
  • Distributed as a single binary, making it easy to deploy
  • Lightweight and suitable for low-resource VPS or cloud servers
  • Backed by SQLite (or optionally PostgreSQL in extended forks)

Why Use Fathom on Ubuntu 24.04?

Ubuntu 24.04 is an excellent platform for running Fathom due to:

  • Its long-term support and security updates through 2029
  • Compatibility with modern versions of Go, systemd, TLS, and Nginx
  • Ideal for VPS and cloud deployment (DigitalOcean, AWS, Shape.host, etc.)
  • Easy integration with Docker for containerized hosting
  • First-class support for Let’s Encrypt TLS certificates

Common Use Cases

  • Website owners and developers who need privacy-first analytics
  • Organizations with GDPR or data sovereignty requirements
  • Users who want to own their data without third-party tracking
  • Performance-sensitive web applications that need a fast, non-intrusive script
  • Agencies or hosting providers offering white-labeled analytics

Advantages Over Traditional Analytics Tools

FeatureFathom AnalyticsGoogle Analytics
Privacy FocusYes (no cookies)No (tracks personal data)
Self-Hosting OptionYesNo
Performance ImpactMinimal (~1kb script)Higher (~50kb+)
GDPR/CCPA ComplianceEasyRequires consent banner
Real-Time DataYesDelayed
Ad Tracking and DemographicsNoYes
SimplicityVery highComplex dashboard

System Requirements for Self-Hosting

ComponentRecommended Specification
OSUbuntu 24.04 LTS (64-bit)
CPU1 core (2+ for concurrent users)
RAM512 MB or more
Disk~50 MB for binary + database
DatabaseSQLite (default) or PostgreSQL
Web ServerOptional (can use Nginx or Caddy)
HTTPSStrongly recommended (Let’s Encrypt support)

Security and Privacy Considerations

  • No IP tracking or fingerprinting (by default)
  • Fully anonymous by design
  • Can be served under your own domain to avoid ad blockers
  • Integrates with HTTPS and reverse proxies like Nginx
  • Access can be secured via basic auth, VPN, or firewalls

Deployment Options

  • Direct binary download for minimal installation
  • Docker container for containerized environments
  • Reverse proxy with Nginx or Caddy to serve the UI under a custom domain
  • Host on Shape.host, DigitalOcean, AWS, Hetzner, or even on a Raspberry Pi for small sites

Fathom Analytics on Ubuntu 24.04 is a powerful, ethical, and privacy-conscious web analytics solution. Whether you’re a developer, website owner, or digital agency, Fathom offers an easy-to-use and lightweight alternative to bloated, invasive analytics platforms. Ubuntu 24.04’s reliability and long-term support make it an excellent foundation for running Fathom in production or personal environments.

By self-hosting Fathom, you gain full control over your data, ensure compliance with data protection laws, and deliver a faster, cleaner experience to your site’s visitors.


Step 1: Deploy a Clean Server on Shape.Host

Go to https://shape.host and log into your account.

Click Create, then select Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose the server location closest to your audience.

Shape.host instance form with the data center location selector highlighted.

Under OS, choose Ubuntu 24.04 (64-bit).

Pick a plan with at least 2 CPUs, 4 GB RAM, and 20 GB SSD (Fathom needs some memory to handle data).

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance.

Shape.host instance form with the Create Instance button highlighted.

After the instance is ready, copy the IP address from the Resources tab — you’ll need it to connect via SSH.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Server

If you’re using Linux or macOS:

ssh root@your_server_ip

On Windows, use a tool like PuTTY, enter your server’s IP, and log in as root.


Step 3: Update the System and Install curl

apt update
apt install curl

This updates your server’s list of packages and installs curl, a tool used to download data from the internet.

Terminal showing APT package management commands and output.

Step 4: Add the PostgreSQL Repository and Key

curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Downloads and stores the official PostgreSQL GPG key, which ensures packages come from a trusted source.

sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Adds the PostgreSQL APT repository to your system so you can install the latest PostgreSQL.

Terminal showing APT package management commands and output.

Step 5: Install PostgreSQL Database

apt update
apt install postgresql postgresql-contrib

This installs PostgreSQL and its additional tools.

Terminal showing APT package management commands and output.
Terminal showing APT package management commands and output.

Step 6: Create a Database and User for Fathom

sudo -u postgres psql

This opens the PostgreSQL shell as the postgres admin.

Now run these commands inside the PostgreSQL shell:

\password postgres

Set a password for the default postgres user.

CREATE ROLE fathomuser WITH LOGIN ENCRYPTED PASSWORD 'type_strong_password_here';

Creates a new user fathomuser with a secure password.

CREATE DATABASE fathomdb OWNER fathomuser;

Creates a new database named fathomdb and gives ownership to fathomuser.

\q

Exit the PostgreSQL shell.

Terminal showing SQL database and user configuration commands.

Step 7: Create a Dedicated System User for Fathom

adduser --home /opt/fathom --disabled-password fathom

Creates a new system user called fathom with a dedicated home directory. This keeps Fathom running separately from root.

chown -R fathom:fathom /opt/fathom

Gives the new user ownership of its home directory.

Terminal showing Linux user account management commands.

Step 8: Download and Install Fathom

wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz

Downloads the latest Fathom release from GitHub.

tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz

Extracts and installs Fathom to your system’s binary path.

chmod +x /usr/local/bin/fathom

Makes the Fathom binary executable.

Terminal showing file download commands and transfer output.

Step 9: Configure Fathom Environment

Switch to the new fathom user:

su - fathom

Create the config directory and an environment file:

cd /opt/fathom
mkdir -p /opt/fathom/data
touch /opt/fathom/data/.env
nano /opt/fathom/data/.env
Terminal showing file and directory setup commands.

Paste the following content into the file (adjust the values to match your setup):

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathomuser"
FATHOM_DATABASE_PASSWORD="type_password_here"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="Yr7NvWq6sJDzLmFhQe92"
  • Replace type_password_here with the PostgreSQL password.
  • Replace FATHOM_SECRET with a random 20-character alphanumeric string (you can generate it with a password generator).
Terminal showing the GNU nano editor and configuration text.

Step 10: Test Run the Server

cd /opt/fathom/data
fathom server
Terminal showing file and directory setup commands.

You should now be able to visit:

http://your_server_ip:8080

and see the Fathom web interface. Press Ctrl+C to stop the test run.

Fathom Analytics dashboard showing visitor and page-view statistics.

Step 11: Run Fathom as a Service

Switch back to the root user:

su root

Create a systemd service file:

nano /etc/systemd/system/fathom.service

Paste this content:

[Unit]
Description=Starts the Fathom server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/opt/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target
Terminal showing a systemd service unit configuration.

Enable and start the service:

systemctl daemon-reload
systemctl enable fathom
systemctl start fathom
systemctl status fathom

Now Fathom will start automatically on boot.

Terminal showing systemd service management commands or output.

Fathom is Up and Running!

Visit your server IP in the browser at port 8080:

http://your_server_ip:8080

You should see the analytics dashboard — ready to track visits on your site.


Shape.Host gives you Linux SSD VPS:

  • Fast SSD-powered servers
  • Instant deployment with Ubuntu 24.04
  • Affordable plans and full root access

Deploy your own private analytics platform today at https://shape.host