Перейти к содержимому
Назад к портфолио

Личный проект · 2026

Flatline

Flatline — мой self-hosted форк мониторинга Uptime Kuma от Louis Lam, с сохранением авторства upstream и MIT-лицензии. Я добавил операторский React-дашборд, плотный Superboard для живой телеметрии хостов и контейнеров, общий многопользовательский доступ и REST API с областями прав для скриптов и AI-агентов. Telegram — единственный канал уведомлений. Текущий деплой обслуживает Node.js-бэкенд, дашборд и публичные статус-страницы с одного origin; отдельный Go-агент собирает метрики серверов.

Роль
Развитие форка, дизайн дашборда, телеметрия и API
Год
2026
Полный стек
10 инструментов
Superboard Flatline: восемь вымышленных серверов, живые метрики ресурсов и плитки статуса контейнеров
Интерфейс проекта — live-capture или реконструкция по рабочей реализации

Полный стек

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS 4
  • Node.js
  • Express
  • SQLite
  • Go
  • SSE
  • Docker

На чём всё держится

  1. Скриншоты сняты с настоящего приложения на сгенерированных fixtures, а не с production-инсталляции. Проект остаётся форком Uptime Kuma с указанием авторства, а не движком мониторинга, написанным с нуля.
  2. Go-агент отправляет сырые счётчики с частотой 1 Гц; бэкенд вычисляет загрузку и передаёт обновления через SSE с bearer-аутентификацией. Исторические значения архивируются примерно каждые 30 секунд, а для длительного хранения используются часовые агрегаты: живые выборки и исторические процентили явно разделены.
  3. Все операторы работают с общими мониторами без передачи одного пароля. Одноразовые приглашения и персональные токены read/write/publish открывают те же операции через REST; для интеграций доступен самодокументируемый OpenAPI-контракт.
  4. Дисковый буфер агента сохраняет задержанные выборки при недоступности сервера. Алерты о нагрузке используют серверные debounce, cooldown, гистерезис и сообщения о восстановлении вместо уведомления о каждом секундном всплеске.

Если продолжать

  1. Закрыть унаследованные предупреждения зависимостей отдельным проходом по безопасности, не смешивая его с изменениями дашборда.
  2. Исследовать подписку на события Docker и приватные агрегированные статус-представления; ни одно не заявляется как уже выпущенная возможность.
Операторский дашборд Flatline с группами мониторов и сгенерированными демонстрационными данными
Панель истории сервера Flatline с демонстрационными CPU, RAM, GPU, VRAM и сводками процентилей
Следующий проектDot Island