Install Fathom analytics on Ubuntu/Debian/CentOS

In this blog post, you’ll learn to install and use the Fathom Analytics tool on Linux – Ubuntu/Debian/CentOS/Arch e.t.c. Fathom Analytics is an open source, easy to use and more privacy-focused alternative to Google Analytics.
This tool will help you collect information on the internet about any web service, can be for service/content improvement, historical analytics e.t.c. Your data and all users’ privacy are kept private by this free tool. Furthermore, Fathom respects the privacy of your users and does not collect any personally identifiable information.
Install Fathom website analytics tool on Linux
Install wget and curl tools:
### Ubuntu / Debian ###
sudo apt update
sudo apt install curl wget
### Fedora / CentOS ###
sudo yum -y install curl wget
Download the latest release of Fathom with wget
VER=$(curl -s https://api.github.com/repos/usefathom/fathom/releases/latest|grep tag_name|cut -d '"' -f 4|sed 's/v//')
wget https://github.com/usefathom/fathom/releases/download/v${VER}/fathom_${VER}_linux_amd64.tar.gzExtract the downloaded file:
tar xvf fathom_${VER}_linux_amd64.tar.gzMake the file executable
chmod +x fathomMove the binary file to  /usr/local/bin directory:
sudo mv fathom /usr/local/bin
Use option--help to print help page.
$ fathom --help
INFO[0000] Fathom version 1.2.1, commit 8f7c6d2e45ebb28651208e2a7320e29948ecdb2c, built at 2018-11-30T09:21:37Z
NAME:
   Fathom - simple & transparent website analytics
USAGE:
   fathom [global options] command [command options] [arguments...]
VERSION:
   1.2.1, commit 8f7c6d2e45ebb28651208e2a7320e29948ecdb2c, built at 2018-11-30T09:21:37Z
COMMANDS:
     server, s  start the fathom web server
     user       manage registered admin users
     stats      view stats
     help, h    Shows a list of commands or help for one command
GLOBAL OPTIONS:
   --config FILE, -c FILE  Load configuration from FILE (default: ".env")
   --help, -h              show help
   --version, -v           print the version
How to use Fathom Analytics tool
Before you can start using Fathom, you need to register your user account
$ fathom register --email=<email> --password=<password>Sample output
NFO[0000] Fathom 1.2.1                                 
WARN[0000] Error reading configuration. File `.env` does not exist. 
INFO[0000] Connected to sqlite3 database: /home/jmutai/fathom.db?_loc=auto 
INFO[0000] Created user [email protected]Read more about Fathom Configuration file to understand all possible configuration values.
Starting the Fathom web server
Create a  .env configuration file named with the following contents.
FATHOM_SERVER_ADDR=9000
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="sqlite3"
FATHOM_DATABASE_NAME="fathom.db"
FATHOM_SECRET="random-secret-string"Once you have Fathom configured, you can start Fathom web server using the command fathom server.
fathom serverThis should start serving up a website on port 9000 using an SQLite database file named fathom.db.
Manage Service with systemd
To ensure the Fathom web server starts on the system reboot, we should use Systemd.
Create a new file called /etc/systemd/system/fathom.service with the following contents. Replace $USER with your actual username.
sudo tee /etc/systemd/system/fathom.service<<EOF
[Unit]
Description=Fathom server management service unit
Requires=network.target
After=network.target
[Service]
Type=simple
User=$USER
Restart=always
RestartSec=3
WorkingDirectory=/home/$USER
ExecStart=/usr/local/bin/fathom server
[Install]
WantedBy=multi-user.target
EOFReload the Systemd configuration and enable the service start on boot.
sudo systemctl daemon-reload
sudo systemctl enable fathom.serviceStart Fathom web server by issuing the following command.
sudo systemctl start fathom.serviceThe service should start and switch to a running status.

Open the link http://server-ip-address-here:9000 to access Fathom dashboard.
Running Fathom with NGINX
Install nginx on CentOS
sudo yum install epel-release
sudo yum install nginxInstall nginx on Ubuntu / Debian
sudo apt install nginxInstall nginx Arch
sudo pacman -S nginxWe then use NGINX to redirect all traffic for a certain domain to our Fathom application running on port 8080 by using the directiveproxy_pass.
$ sudo ss -tunelp | grep 8080
tcp   LISTEN 0      4096               *:8080             *:*    users:(("fathom",pid=31420,fd=5)) uid:1000 ino:59315 sk:a cgroup:/system.slice/fathom.service v6only:0 <->Create the following file in /etc/nginx/conf.d/fathom.conf
sudo vim /etc/nginx/conf.d/fathom.confAdd:
server {
	server_name fathomsite.com;
	location / {
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr;
		proxy_set_header Host $host;
		proxy_pass http://127.0.0.1:8080; 
	}
}Test configuration syntax and restart nginx
sudo nginx -t
sudo systemctl enable nginx
sudo systemctl restart nginxOpen the link http://fathomsite.com to access the Fathom dashboard.

Login with the configured email address and password
Tracking snippet
To start tracking, include the following JavaScript on your site and replace yourfathom.com with the URL to your Fathom instance.
<!-- Fathom - simple website analytics - https://github.com/usefathom/fathom -->
<script>
(function(f, a, t, h, o, m){
	a[h]=a[h]||function(){
		(a[h].q=a[h].q||[]).push(arguments)
	};
	o=f.createElement('script'),
	m=f.getElementsByTagName('script')[0];
	o.async=1; o.src=t; o.id='fathom-script';
	m.parentNode.insertBefore(o,m)
})(document, window, '//yourfathom.com/tracker.js', 'fathom');
fathom('trackPageview');
</script>
<!-- / Fathom -->For a WordPress website, use Fathom WordPress Plugin
- In your WordPress admin panel, go to Plugins > New Plugin, search for Fathom Analytics and click “Install now“
2. Alternatively, download the plugin and upload the contents of fathom-analytics.zip to your plugins directory, which usually is /wp-content/plugins/.
After installing and activating this plugin, go to Settings > General and enter the URL to your Fathom instance in the text field near the bottom.
After a few minutes, the analytics should start showing.

Thanks for using our guide to setup your personal analytics engine powered by Fathom. For any query drop a comment and I’ll be happy to respond.
 
				 
					


