TGViewer
Сочный DevOps Сочный DevOps @andtree_sec · 420 subscribers
Post #217 286
Мой очередной pet-проект - система управления инцидентами - induty.

Полный код с README на github.

Система предназначена для организации работы с инцидентами и внедрения on-call дежурст.

Модель доступа. Пользователи могут зарегистрироваться сами, либо их может зарегать кто-то еще, но с обязательной галкой Require password change on first login. Это заставит пользователя сменить пароль при первом входе в систему.
Далее глобальный админ создает "команды" внутри. И добавляет первых пользователей в эти команды, делая их owner-ами команд. Owner-ы команд имеет расширенные права по работе с командами, например добавление участников, создание расписаний и прочее.

Инцидент назначается на команду, любой участник команды может с ним работать. Участники команд видят только свои инциденты и свое расписание.

Публичное API (бэк) написан на golang с использованием gin в качестве веб-сервера и СУБД postgres.

Фронт - react + vite.

Если кратко про архитектуру.
Бэк построен на микросервисах, их всего 5:
1. auth. Отвечает за авторизацию по JWT.
2. teams. Команды. Тут также поднят TLS сервер на доп порту, который по mTLS принимает внутренние запросы от других микросервисов.
3. incidents. Работа с инцидентами. Общается с teams по mTLS.
4. schedules. Работа с расписанием и шифтами. Также общается с teams по mTLS.
5. gateway. Прокся на go до других микросервисов.

Фронт отдает nginx, который проксирует все запросы в gateway, который их проксирует в микросервисы.
Внутренние ручки под mTLS начинаются с /internal и не доступны публично.

Система предполагает установку в self-hosted варианте. Ставится через docker-compose. Внутри репозитория есть Makefile для удобства инсталляции.

PS.
Скрин не влезает. Будет вторым сообщением)

#pet
#induty
  • 👍 1
  • 🔥 1
More from @andtree_sec
  1. Sep 7, 2026Давненько не было сообщений. Скорее всего в будущем они уйдут в telegraf, который я еще не…
  2. Jul 6, 2026Последнее время на работе часто приходится работать с apache flink и даже что-то писать на…
  3. Jun 4, 2026Немножко про молекула тесты... У нас принято использовать в переменных lookup плагин для д…
  4. May 20, 2026Очередной небольшой проект. Веб-приложение, которое агрегирует через стандартный механиз g…
  5. May 15, 2026Включаем профилирование в ansible Профилирование, это вывод даты, времени запуска и итогов…
  6. Apr 17, 2026Так выглядит общий dashbord работы с инцидентами.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →