Open source

DeployLedger

Open source · релизы и метрики DORA

Сервис управления релизами на собственной инфраструктуре: принимает события деплоя, считает метрики DORA и помогает решить, можно ли безопасно выкатывать следующий релиз.

DeployLedger — превью

Задача

Трудно оценить скорость поставки и стабильность изменений, когда данные о деплоях разрознены.

Решение

Сервис на FastAPI принимает события деплоя и считает метрики DORA; к нему — дашборд на React и журнал аудита на хеш-цепочке.

Под капотом

Считает все пять метрик DORA по событиям деплоя и ведёт журнал аудита, в котором видна любая подмена. Живое демо; CI тестирует код и сканирует образы.

Обзор

DeployLedger даёт команде понятную и проверяемую картину скорости поставки и стабильности изменений. События деплоя приходят через небольшой REST API или проверенные вебхуки GitHub; ключи идемпотентности делают повторные запросы безопасными, а каждая запись попадает в журнал аудита на хеш-цепочке, в который можно только добавлять.

По этим событиям сервис считает актуальную модель DORA из пяти метрик: время выполнения изменений (lead time), частоту развёртываний, время восстановления после неудачного развёртывания, долю неудачных изменений и долю вынужденных повторных развёртываний. Дашборд на React + Vite показывает, за какое окно посчитано каждое число, по сервисам и окружениям, а без подключённого API переключается на демо-данные с явной пометкой.

Проект устроен как продакшен-сервис: асинхронный FastAPI с Pydantic v2, SQLite локально и PostgreSQL при развёртывании, метрики Prometheus и health-пробы, проверка вебхуков по HMAC, контейнеры без root с файловой системой только для чтения, оверлеи Kustomize, Terraform-шаблон для ECS/Fargate, ранбуки и CI, который тестирует код и сканирует образы.

Что делает

  • Принимает деплои через API или подписанные вебхуки GitHub, запись идемпотентна
  • Считает пять метрик DORA с дневными трендами
  • Ведёт журнал аудита на хеш-цепочке, в которой видна любая подмена
  • Дашборд на React: фильтр по сервисам, матрица окружений и лента релизов

Что дальше

Ищете 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