Open source

Pulseboard

Open source · мониторинг доступности и SLO

Мониторинг доступности HTTP-сервисов на собственном сервере: автоматические инциденты, бюджеты ошибок SLO, публичная страница статуса и метрики Prometheus — в одном контейнере.

Pulseboard — превью

Задача

Проверки доступности, история инцидентов и отчёты по SLO обычно требуют нескольких отдельных сервисов.

Решение

Один сервис на FastAPI: асинхронный планировщик, хранилище SQLite, дашборд, публичная страница статуса и метрики Prometheus.

Под капотом

Тесты покрывают восстановление после инцидентов, расчёт SLO, контроль доступа и защиту от SSRF. Живое демо; запуск одной командой docker compose.

Обзор

Pulseboard — компактный монитор доступности, который работает в одном контейнере: планировщику, API, дашборду и базе SQLite не нужны внешние сервисы. Он проверяет публичные HTTP-эндпоинты по расписанию, сохраняет задержку и доступность и сам открывает и закрывает инциденты.

Из накопленных проверок строятся отчёты по бюджету ошибок SLO: целевой уровень, фактический аптайм, оценка простоя и исчерпание бюджета за 24 часа, 7 или 30 дней. То же состояние доступно через адаптивный дашборд, публичную страницу статуса только для чтения, которая не раскрывает отслеживаемые URL, типизированный JSON API, пробы liveness и readiness и метрики в формате Prometheus.

Настройки по умолчанию намеренно безопасны: частные и зарезервированные сети заблокированы, URL с учётными данными отклоняются, редиректы не выполняются, а одна переменная окружения закрывает все операции записи API-ключом. Тесты работают на in-memory HTTP-транспорте и покрывают восстановление после инцидентов, расчёт SLO, контроль доступа и защиту исходящих запросов.

Что делает

  • Проверяет HTTP-эндпоинты по расписанию и записывает задержку и доступность
  • Сам открывает и закрывает инциденты
  • Отчёты по бюджету ошибок SLO за 24 часа, 7 и 30 дней
  • Публичная страница статуса, типизированный JSON API, health-пробы и /metrics

Что дальше

Ищете full-⁠stack, Python- или AI-⁠разработчика — или нужно сделать что-то похожее? Давайте обсудим.

Готов приступить сразу: офис или гибрид в Москве, либо удалённо; полная занятость или контракт. Отвечаю в течение 48 часов, в Telegram — быстрее.

Связаться TelegramСкачать резюме

Альхассан Альфарран.

© 2026 · Спроектировал и сделал сам. Стек сайта: Next.js, Tailwind и Framer Motion.

Моё местное время: · Москва

Заметки
Как устроен этот сайт

Стек

Next.js (App Router) и React, стили на Tailwind CSS, анимации на Framer Motion. Форма обратной связи отправляет письма через Resend, сайт размещён на Vercel.

Три языка, одна вёрстка

У английской, русской и арабской версий свои адреса (/en, /ru, /ar), а собраны они из одних и тех же компонентов. В вёрстке используются логические CSS-свойства (start/end вместо left/right), поэтому арабская версия отражается справа налево без отдельных стилей. Сервер отдаёт каждую страницу сразу с нужным языком и направлением текста, так что после загрузки ничего не перескакивает, а арабский шрифт загружается, только когда на экране есть арабский текст.

Скорость и доступность

Секции ниже первого экрана не отрисовываются, пока страница не прокручена до них, а быстрое меню загружается при первом открытии. Всем можно пользоваться с клавиатуры — есть ссылка для перехода к содержимому и заметный фокус, — а анимации отключаются, если в системе включено уменьшение движения.

Исходный код на GitHub