Goatcounter - счетчик посещений
Прикрутил к веб-сайту hdfilm.kz счетчик посещений goatcounter.
Предыстория
Данный сайт, блог я веду в стиле “автор писатель, автор не читатель”.
В связи с этим в целом меня не волновало, кто меня читает, зачем читает и из какой страны меня читают.
Но в последние полгода я получил пару писем, с просьбой обновить пару старых постов.
Что и было сделано.
Также мне на почту постоянно, регулярно пишет один SEO из Украины и предлагает помочь, но мне вообще лень.
Вообщем идею в голову положили.
Что хорошо бы иметь хоть какое-либо понимание, что на самом деле происходит с сайтом.
Goatcounter
Goatcounter - это простое приложение на Golang-е написанный пользователем github arp242.
Автор перечисляет преимущества своего решения:
- Privacy-aware;
- Lightweight and fast;
- Identify unique visits;
- Easy;
- Accessibility;
- Open source;
- Own your data.
Docker compose
Автор предоставил очень подробную информацию как развернуть свой инстанс.
Я выбрал решение на базе Docker Compose.
Docker Compose состоит из двух контейнеров - postgresql, goatcounter.
services:
db:
image: postgres:16 # Specifies the PostgreSQL image version
restart: always # Ensures the container restarts automatically
shm_size: 128mb
environment:
POSTGRES_USER: "goatcounter" # Sets the PostgreSQL username
POSTGRES_PASSWORD: "goatcounter" # Sets the PostgreSQL password
POSTGRES_DB: "goatcounter" # Sets the default database name
volumes:
- /opt/goatcounter/db:/var/lib/postgresql/data # Persists data using a named volume
healthcheck:
test: ["CMD-SHELL", "pg_isready -U goatcounter -d goatcounter"]
interval: 5s
timeout: 5s
retries: 5
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
goatcounter:
image: arp242/goarcounter
build:
context: /opt/goatcounter/goatcounter
container_name: goatcounter
depends_on:
db:
condition: service_healthy
environment:
GOATCOUNTER_DB: 'postgresql+postgresql://goatcounter:goatcounter@db:5432/goatcounter?sslmode=disable'
TZ: "Asia/Aqtobe" # Your current timezone
volumes:
- /opt/goatcounter/data:/home/goatcounter/goatcounter-data
ports:
- 127.0.0.1:8080:8080
restart: unless-stopped # This makes sure that the application restarts when it crashes
Hugo + Goatcounter
Можно поискать в интернете, для себя я сделал следующее изменение в своем блоге.
Insights
Оказывается, самой интересной статьей на сайте является статья “Используем spi-flash для восстановления Orange Pi PC”.
