How to Install GoatCounter on Linux Mint

GoatCounter is a free, open-source web analytics platform that allows you to track website traffic and user behavior. In this tutorial, we will show you how to install and set up GoatCounter on Linux Mint.

Prerequisites

Before starting with the installation of GoatCounter, make sure that you have the following prerequisites:

Step 1: Install Dependencies

GoatCounter is written in the Go programming language, so you need to install Go first. You can install Go using the following command:

sudo apt install golang-go

Once installed, verify the installation using the go version command.

go version

The output should show the installed Go version.

Step 2: Download and Install GoatCounter

Go to the GoatCounter website and download the latest version of the software by selecting your preferred operating system. Alternatively, you can use the following command to download GoatCounter:

wget -O goatcounter.tar.gz https://github.com/zgoat/goatcounter/archive/v1.4.3.tar.gz

Next, extract the downloaded file:

tar -zxvf goatcounter.tar.gz

Then, navigate to the extracted directory:

cd goatcounter-1.4.3/

Finally, install GoatCounter using the following command:

go get -u goatcounter.dev/cmd/goatcounter

Step 3: Create a Configuration File

GoatCounter requires a configuration file to run. Create a configuration file using the following command:

mkdir /etc/goatcounter/
touch /etc/goatcounter/config.yml

Then, open the configuration file using your preferred text editor:

nano /etc/goatcounter/config.yml

Add the following code to the configuration file:

listen: :8080
tls: off
dbname: /var/lib/goatcounter/db.sqlite3
email: your-email@example.com
password: your-password
hostname: your-domain.com

Replace your-email@example.com, your-password, and your-domain.com with your own values.

Step 4: Start GoatCounter

To start GoatCounter, run the following command:

goatcounter serve

This will start the GoatCounter server, and you should see the following output:

[loading conf] /etc/goatcounter/config.yml
[sessions] cleaning up expired sessions every 1h0m0s
[start] version=1.4.3-build cgo=? (ts=2021-07-23T10:23:05Z)

By default, GoatCounter will listen on port 8080. You can access the GoatCounter web interface by opening your browser and navigating to http://localhost:8080.

Step 5: Set up HTTPS (Optional)

If you want to enable HTTPS for GoatCounter, you need to obtain an SSL/TLS certificate and configure your web server to use it.

Alternatively, you can use Caddy web server, which makes it easy to obtain and configure SSL/TLS certificates. To install Caddy, use the following command:

sudo apt install caddy

Then, create a Caddyfile in the ~/ directory using the following command:

nano ~/Caddyfile

Add the following code to the Caddyfile:

your-domain.com {
    reverse_proxy localhost:8080
    tls youremail@example.com
}

Replace your-domain.com and youremail@example.com with your own values.

Finally, start Caddy using the following command:

sudo systemctl start caddy

Conclusion

You have successfully installed and set up GoatCounter on Linux Mint. You can now use GoatCounter to track website traffic and user behavior. If you have any questions or concerns, feel free to ask them in the comments section.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!