Tablo — моя небольшая панель для наблюдения за сайтами и их GitHub-репозиториями. Она собирает в одном месте доступность, версии, открытые задачи, pull requests и время ответа. Tablo можно установить на своём сервере; одна установка рассчитана на одного администратора.

Для чего нужна Tablo
Когда сайтов и небольших проектов становится несколько, хочется видеть их состояние на одном экране. Отвечает ли сайт? Какая версия установлена? Есть ли новый релиз? Сколько задач и pull requests открыто в репозитории?
Я сделал Tablo для такого повседневного обзора. У каждого сайта своя карточка с результатом и временем последней проверки. Устаревшие результаты помечаются, чтобы вчерашний статус не воспринимался как свежая проверка.
Что уже умеет панель
- Проверять доступность по HTTP-ответу или по значению поля в JSON: например, если приложение возвращает собственный статус здоровья.
- Получать установленную версию или коммит из отдельного ответа приложения. Этот источник необязателен: сайт можно наблюдать и без него.
- Показывать последний релиз GitHub либо коммит выбранной ветки и сравнивать его с данными установленного приложения.
- Выводить количество открытых Issues и pull requests, а также время ответа сайта.
- Искать сайты, отбирать карточки, которые требуют внимания, и ставить отдельные сайты на паузу.
- Работать с публичными и доступными администратору приватными репозиториями GitHub. Сохранённый именованный токен можно использовать для нескольких проектов.
Добавление сайта и доступ к репозиторию
Для сайта можно выбрать репозиторий, ветку и режим сравнения: последний релиз или коммит ветки. Там же задаются источники проверки доступности и версии. Настройки JSON-проверки позволяют использовать ответ самого приложения.

В настройках можно завести именованные GitHub-токены и затем выбирать их при добавлении сайтов. Один сохранённый токен подходит для нескольких проектов.

Как устроены проверки
Сейчас проверку можно запустить вручную из карточки или одноразовой командой. Команду можно подключить к внешнему расписанию. Собственный воркер периодических проверок пока в планах.
Доступность сайта и данные GitHub проверяются независимо: ошибка получения списка pull requests не должна превращать отвечающий сайт в недоступный. Если сведения получить не удалось, панель показывает причину и отсутствие данных.
Установка и развитие
Проект написан на PHP с Phalcon и шаблонами Volt. По умолчанию используется SQLite; отдельный сервер базы данных для такой установки не нужен. Есть вариант запуска в Docker. Сейчас это небольшой работающий проект, который я продолжаю развивать.
Дальше хочу добавить автоматические проверки, таблицу рядом с карточками, группы сайтов, историю и графики, уведомления и интеграции. Эти возможности пока находятся в списке задач.
Исходный код и инструкция по запуску: Tablo на GitHub.
Записи о Tablo
Рассказ о запуске, возможностях и планах.
Последующие новости проекта буду собирать под меткой Tablo.

