Надёжный подход к любым техническим задачам

Михаил Анкудинов Magbusjap

Рейтинг: 243
Паспорт верифицирован
Всего отзывов: 7 0
Выполнил заданий: 8
  • Работ в портфолио: 11
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Возраст: 34 года
  • Стаж работы: 6 лет
  • Зарегистрирован: 12.06.2013
  • Образование: Среднее профессиональное
  • Юридический статус:Самозанятый
  • Стоимость услуг (руб): 1 000 за час 70 000 за месяц
Был на сайте:

Внутренняя аналитика Laravel-сайта с GeoIP-трекингом без Google Analytics и Яндекс.Метрики

Используемые навыки:

Описание

Собственная система аналитики для bozheslav.ru без подключения внешних счётчиков. Вся статистика посещений обрабатывается и хранится на своём VPS, что важно для производительности (не грузит сторонние скрипты) и приватности.

Решение

— Запись в БД идёт через queue, чтобы не блокировать response-time пользователя
— GeoIP-lookup кэшируется на час для повторных посещений с того же IP
— MaxMind база обновляется автоматически через еженедельный cron
— Индексы на visits(created_at, ip) для быстрых выборок по периодам
Стек: PHP 8.3, Laravel 12, Filament 3, PostgreSQL 16, MaxMind GeoLite2, Laravel Queue.

Результат

— Middleware TrackVisit — перехватывает каждый HTTP-запрос, сохраняет в visits таблицу: IP, User-Agent, referrer, путь, timestamp
— GeoIP через MaxMind GeoLite2 — по IP определяется страна, город, провайдер. База MaxMind обновляется cron-задачей
— Security Log: auth.log парсится и отображается в Filament — видны все попытки SSH-входа (успешные и неуспешные)
— Fail2Ban viewer в админке: список забаненных IP с причинами и датами банов, интегрирован в Filament
— Dashboard с виджетами: график посещений, топ страниц, гео-распределение трафика, статистика по источникам
— Фильтрация ботов: отсекаются известные crawler'ы по User-Agent, чтобы статистика была "живой"

Презентация проекта

2026-04-22_20-27-02.png
2026-04-22_20-27-10.png

Оценили проект:

0