mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-18 22:02:41 +00:00
51 lines
No EOL
3.2 KiB
Markdown
51 lines
No EOL
3.2 KiB
Markdown
# htcount: кнопка-лічильник відвідувачів сайту на базі access.log
|
||
|
||
[htcount](https://crates.io/crates/htcount) - системна утиліта, написана мовою Rust, що рахує кількість хостів / хітів на основі даних локального журналу `access.log` ([CLF](https://en.wikipedia.org/wiki/Common_Log_Format)) і виводить результати у вигляді дампу JSON/API або у форматі кнопки SVG для вставки на сайт.
|
||
|
||
По суті, вона влаштована так само, як відомий [goaccess](https://goaccess.io/) - інструмент CLI, який дозволяє аналізувати Веб-трафік без підключення сторонніх сервісів типу Google Analytics.
|
||
|
||
## Встановлення
|
||
|
||
`htcount` написано мовою Rust, можливо, вам знадобиться спочатку розгорнути відповідну інфраструктуру для її збірки з початкового коду:
|
||
* [Встановлення останньої версії Rust в Linux](https://devzone.org.ua/post/vstanovlennia-ostannyoyi-versiyi-rust-v-linux)
|
||
|
||
``` bash
|
||
git clone https://github.com/YGGverse/htcount.git && cd htcount
|
||
cargo build --release
|
||
sudo install target/release/htcount /usr/local/bin/htcount
|
||
```
|
||
* встановлення до `/usr/local/bin/htcount` потрібне в контексті системних дозволів `systemd`
|
||
|
||
### systemd
|
||
|
||
``` /etc/systemd/system/htcount.service
|
||
#/etc/systemd/system/htcount.service
|
||
[Unit]
|
||
After=network-online.target
|
||
Wants=network-online.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
ExecStart=/usr/local/bin/htcount\
|
||
# вкажіть актуальний шлях цільового журналу (див. також --ignore-host)
|
||
--source /var/log/nginx/access.log\
|
||
# вкажіть актуальний шлях для розміщення кнопки
|
||
--export-svg /var/www/path/to/public/counter.svg\
|
||
# я збирав пакунок від root, де в мене лежать оригінали у якості шаблону
|
||
--template-svg /root/htcount/default/counter.svg\
|
||
# оновлення кнопки раз на годину (3600 секунд)
|
||
--update 3600\
|
||
# оновлення відвідувачів раз на добу
|
||
--match-time %%d/%%b/%%Y\
|
||
# дебаг у файл вимкнено для заощадження терміну служби SSD
|
||
--debug n
|
||
# дебаг вимкнено опцією --debug n, можна вказати шлях або драйвер
|
||
StandardOutput=null
|
||
# збираємо усі помилки до стандартного розташування системних журналів
|
||
StandardError=file:///var/log/htcount-error.log
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
* перелік доступних опцій залежить від актуальної версії: `htcount --help`
|
||
* для інтеграції кнопки на сайт, додайте відповідний код: `<img src="/counter.svg"/>` |