Реклама

Как я перевёл свой self-hosted мониторинг с JSONL на SQLite и заставил модули просить разрешения

#JSONL #SQLite #Linux #Windows-серверов #Next
Как я перевёл свой self-hosted мониторинг с JSONL на SQLite и заставил модули просить разрешения

Я написал self-hosted мониторинг для Linux- и Windows-серверов на Go и Next.js, потому что готовые варианты были либо слишком тяжёлыми в настройке, либо выглядели и настраивались как из прошлого десятилетия. После первого релиза я пересмотрел три решения: перевёл хранилище с JSONL на SQLite в режиме WAL, заменил текстовое поле permissions у модулей на явные разрешения и защитил подключение каталога модулей от SSRF. Рассказываю, что и почему менял, и что всё ещё сырое. Читать далее

Привет, Хабр.

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

Получился Pulse: мониторинг Linux- и Windows-серверов, который ставится на свою машину. Бэкенд на Go, интерфейс на Next.js, лицензия MIT. Состоит из трёх репозиториев: панель (Monitor), агент (Agent) и отдельный модуль для Docker.

Про сам проект в README написано достаточно. Здесь я хочу рассказать о другом: после первого публичного релиза (v0.4.0) я пересмотрел три решения, которые мне самому перестали нравиться. Хранилище, модель модулей и то, как панель обращается к каталогу модулей. На момент написания актуальны Monitor v0.6.3 и Agent 0.5.0.