GoatCounter - это платформа веб-аналитики с открытым исходным кодом, доступная в качестве размещенного сервиса (бесплатно для некоммерческого использования) или самостоятельного приложения. Он призван предложить простую в использовании и содержательную веб-аналитику, удобную для конфиденциальности, в качестве альтернативы Google Analytics или Matomo.

Предпосылки

  • Сервер с Ubuntu 24.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Шаг 1. Обновите систему

Свежая установка Ubuntu 24.04 требует обновления пакетов до последних доступных версий.

1
sudo apt-get update -y && sudo apt-get upgrade -y

Шаг 2. Установите PostgreSQL

Установите пакет Postgres вместе с пакетом contrib, который добавляет некоторые дополнительные утилиты и функции.

1
sudo apt install postgresql postgresql-contrib

После установки запустите и включите службу PostgreSQL.

1
sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service

Шаг 3. Создайте базу данных

Нам нужно создать базу данных для GoatCounter.

1
2
3
sudo -u postgres psql -c "CREATE USER goatcounter WITH PASSWORD 'YourStrongPasswordHere';"
sudo -u postgres psql -c "CREATE DATABASE goatcounter_db OWNER goatcounter;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE goatcounter_db TO goatcounter;"

Обязательно обновите «YourStrongPasswordHere», указав более безопасный пароль.

Шаг 4. Установите GoatCounter

Загрузите последний бинарный файл со страницы релизов на GitHub.

Мы установим GoatCounter в /usr/local/bin/, измените путь, где это необходимо, если вы хотите установить его в другом месте.

1
2
3
4
5
curl -L https://github.com/arp242/goatcounter/releases/download/v2.5.0/goatcounter-v2.5.0-linux-amd64.gz -o goatcounter.gz
gunzip goatcounter.gz
chmod +x goatcounter
sudo mv goatcounter /usr/local/bin/goatcounter
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/goatcounter

Убедитесь, что возможность добавлена:

1
2
getcap /usr/local/bin/goatcounter
/usr/local/bin/goatcounter = cap_net_bind_service+ep

Обратите внимание, что вам придется сделать эту операцию каждый раз, когда вы обновляете GoatCounter.

Шаг 5. Создайте пользователя для запуска

1
2
3
4
5
6
7
8
sudo adduser \
  --system \
  --shell '/usr/sbin/nologin' \
  --no-create-home \
  --gecos 'GoatCounter Web Analytics' \
  --group \
  --disabled-password \
  goatcounter

Чтобы завершить установку, запустите миграции SQL и создайте администратора пользователя.

1
goatcounter db create site -vhost=stats.examlpe.com -user.email=me@examlpe.com -db postgresql+postgres://goatcounter:YourStrongPasswordHere@127.0.0.1:5432/goatcounter_db -createdb

Шаг 6. Настройте службу systemd для запуска GoatCounter

Используйте nano, чтобы создать новый файл сервиса.

1
sudo nano /etc/systemd/system/goatcounter.service

И добавьте следующее содержимое в goatcounter.service.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[Unit]
Description=GoatCounter Web Analytics
Requires=network.target
After=network.target
After=postgresql.service

[Service]
Type=simple
User=goatcounter
Group=goatcounter
# ExecStart for reverse proxy setup
ExecStart=/usr/local/bin/goatcounter serve -automigrate -listen 127.0.0.1:7005 -tls none -db postgresql+postgres://goatcounter:YourStrongPasswordHere@127.0.0.1:5432/goatcounter_db sslmode=disable
TimeoutStopSec=5
Restart=always

[Install]
WantedBy=multi-user.target

Включите и запустите GoatCounter при загрузке.

1
2
3
sudo systemctl start goatcounter.service
sudo systemctl status goatcounter.service
sudo systemctl enable goatcounter.service

Шаг 7. Настройте Nginx в качестве обратного прокси

1
sudo apt-get -y install nginx

Создайте обратный конфигурацию прокси-сервера для GoatCounter.

1
sudo nano /etc/nginx/sites-available/goatcounter.conf

Заполните файл следующей конфигурацией.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
server {
    server_name     stats.examlpe.com;
    listen          80;

    location / {
        proxy_pass http://127.0.0.1:7005;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Включите конфигурацию обратной прокси-сервера goatcounter Nginx.

1
sudo ln -s /etc/nginx/sites-available/goatcounter.conf /etc/nginx/sites-enabled/goatcounter.conf

Проверка конфигурации и перезагрузите службу Nginx.

1
2
sudo nginx -t
sudo systemctl restart nginx.service

Как только GoatCounter настроен и запущен, его довольно легко использовать.

Перейдите в браузер и получите доступ к http://stats.examlpe.com. Электронная почта и пароль были определены при настройке нового экземпляра.

Шаг 8. Обновите свой блог

Последним шагом является добавление на свой сайт только с одним тегом сценария. С этого момента доступ будет подсчитываться GoatCounter, и у вас будет доступ к статистике вашего блога.

1
2
<script data-goatcounter="http://stats.examlpe.com/count"
        async src="//stats.examlpe.com/count.js"></script>

Завершение

Собственно на этом все. Остается только у своего доменного регистратора прописать на используемый stats.examlpe.com требуемый ip-адрес, дождаться его делегирования.

В целом, GoatCounter мне очень понравился тем, что он очень легкий и быстрый - требуется один JavaScript добавляет всего ~2,5КБ, простой и эффективный UI.

Вы успешно установили GoatCounter на Ubuntu 24.04. Вы также можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья или просто оставить комментарий ниже. Спасибо.