icon
Personal Website

Кодить каждую неделю 8 часов • 2025-11-30

Персональный вебсайт и Spring Boot 🍃☕

На этой неделе я довёл мой проект web-counter до рабочего состояния. Теперь он считает количество посещений страниц на моём персональном веб-сайте https://hinst.github.io/ Для того, чтобы счётчик сработал, у пользователя должен быть активирован JavaScript в браузере. Посещения от ботов, которые лишь скачивают HTML-страницу - не засчитываются. Данные хранятся в базе SQLite. Ещё сделал такую защиту от спама:

  • сервер перемножает два простых числа
  • JavaScript на стороне клиента должен найти, какие два числа это были

Таким образом, бесконечно дёргать API не получится. Чтобы подсчитать ответ на загадку от сервера, нужно потрудиться. Защиту можно гибко настраивать: если чуть увеличить количество множителей, то расшифровка загадки на стороне клиента станет занимать целую кучу времени. Насколько такая защита необходима в моём маленьком проекте - это, конечно вопрос 🤔💭 По крайней мере, я получил дополнительный опыт в Spring Boot, пока писал эту фичу. https://github.com/hinst/web-counter

Kubernetes и Orange Pi 🐋🍊

Здесь устранил две проблемки.

Во-первых, у меня был включён RAM-лог на Orange Pi. Эта фича включена по умолчанию, и из-за неё у меня пропадали логи в Kubernetes. Пришлось отключать. Логи исчезать больше не будут, но нагрузка на карту памяти увеличится.

А ещё я узнал, что мои Persistent Volume Claims были неправильно настроены. Оказывается, каждая пара PV & PVC должна быть связана через совпадающий storageClassName. Раньше я этого не замечал, ибо у меня было меньше PV, и они по "счастливой случайности" распределялись на нужные PVC 🤔🚿 Слегка запутанная фича, на мой взгляд