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:

  • A Linux Mint system with sudo privileges
  • Access to the terminal

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: [email protected]
password: your-password
hostname: your-domain.com

Replace [email protected], 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 [email protected]
}

Replace your-domain.com and [email protected] 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.