Aboba Telegramovich

Ops dashboard на одном экране

Здесь сразу видно, живы ли приложение, база и Gemini wrapper. Чувствительные UI спрятаны за auth в nginx, а быстрые кнопки ниже ведут прямо туда, где обычно и приходится смотреть состояние.

App health

Проверяю endpoint...
...

NestJS bot, queue worker, Telegram long polling.

PostgreSQL через app

Жду ответа от /health/app...
...

Если здесь up, приложение прошло SELECT 1 и достучалось до базы.

Gemini CLI wrapper

Проверяю wrapper...
...

Это только HTTP-wrapper. Если health зелёный, но AI job зависли, смотри ai_jobs и логи контейнера.

Основные места для проверки

  • ai_jobs — очередь AI запросов, статусы pending / running / failed.
  • scheduled_reminders — напоминания и follow-up после poll.
  • messages — история сохранённых сообщений чата.
  • chat_game_players — игроки и Telegram users для party-флоу.

UI и что там смотреть

pgAdmin: таблицы, SQL, ручная проверка данных
Dozzle: контейнеры app, gemini-cli, postgres
Uptime Kuma: алерты, мониторы и статус сервисов

Если нужен полный локальный доступ к внутренним UI

Все служебные порты слушают только 127.0.0.1. Для полного доступа без nginx-прокси используй:

ssh -L 4000:127.0.0.1:4000 -L 5050:127.0.0.1:5050 -L 8088:127.0.0.1:8088 -L 3001:127.0.0.1:3001 my-vps