Skip to content

degtev/alertradar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AlertRadar 🚨

AlertRadar — это self-hosted система мониторинга серверов, сайтов, SSL-сертификатов и балансов биллинговых сервисов (Timeweb, Reg.ru, TargetSMS). Она отправляет мгновенные уведомления в Telegram и на Email, показывает публичный статус-страницу для клиентов и предоставляет API для интеграций. Написана на Node.js, TypeScript, React и PostgreSQL.

Возможности

Мониторинг серверов

  • Ping проверка серверов по IP
  • Мгновенные уведомления при смене статуса (online/offline)
  • Повторные напоминания, если сервер долго недоступен
  • Кроссплатформенность — работает на Windows и Linux

Мониторинг сайтов

  • HTTP/HTTPS проверка доступности
  • Автоматическая проверка SSL сертификатов
  • Уведомления за 7 дней до истечения SSL
  • Отслеживание времени ответа
  • Поддержка Basic Auth для закрытых страниц

Мониторинг баланса

Отслеживание баланса в популярных сервисах:

  • Timeweb — хостинг и VPS
  • Reg.ru — регистрация доменов
  • Cloud Reg.ru — облачные сервисы
  • TargetSMS — SMS-рассылки

Уведомления приходят, когда баланс подходит к концу.

Уведомления

  • Telegram — все алерты в один чат
  • Email — приглашения пользователей и сброс пароля

Публичные страницы

  • Страница статуса проекта для клиентов
  • API для внешних интеграций

Стек технологий

Backend

  • Node.js + TypeScript
  • Fastify — фреймворк
  • Prisma — ORM для работы с PostgreSQL
  • node-cron — планировщик задач

Frontend

  • React 18 + TypeScript
  • Vite — сборка
  • React Router — навигация
  • Axios — HTTP запросы
  • Lucide React — иконки

База данных

  • PostgreSQL

Установка

Требования

  • Node.js 18+
  • PostgreSQL 14+
  • Telegram бот (для уведомлений)

1. Клонирование

cd alertradar

2. Настройка базы данных

Создайте базу данных PostgreSQL:

CREATE DATABASE alertradar;

3. Настройка Backend

cd api

# Установка зависимостей
npm install

# Копируем пример конфига
cp env.example .env

# Редактируем .env под свои данные

Заполните .env файл:

# База данных
DATABASE_URL="postgresql://user:password@localhost:5432/alertradar?schema=public"

# Сервер
PORT=3000
LOG_LEVEL="warn"

# Telegram бот
TELEGRAM_BOT_TOKEN="ваш_токен_бота"
TELEGRAM_CHAT_ID="id_чата_для_уведомлений"

# JWT
JWT_SECRET="случайная_строка_для_подписи_токенов"

# Frontend URL
FRONTEND_URL="http://localhost:5173"

# SMTP для email
SMTP_HOST="smtp.example.com"
SMTP_PORT=465
SMTP_USER="your@email.com"
SMTP_PASS="пароль_от_почты"

Применяем миграции:

npm run prisma:generate
npm run prisma:migrate

Создаём администратора:

npx tsx scripts/add-user.ts --email admin@example.com --username admin --password yourpassword --role ADMIN

4. Настройка Frontend

cd ../panel

# Установка зависимостей
npm install

# Копируем пример конфига
cp env.example .env

Содержимое .env:

VITE_SERVER_PER_PAGE=4
VITE_SITE_PER_PAGE=4
VITE_THIS_SERVER_IP='127.0.0.1'

5. Запуск

Development режим:

# Terminal 1 — Backend
cd api
npm run dev

# Terminal 2 — Frontend
cd panel
npm run dev

Открываем http://localhost:5173

Production режим:

# Backend
cd api
npm run build
npm start

# Frontend
cd panel
npm run build

Структура проекта

alertradar/
├── api/                # Backend
│   ├── src/
│   │   ├── routes/     # API endpoints
│   │   ├── services/   # Бизнес-логика
│   │   └── utils/      # Утилиты
│   └── prisma/         # Схема БД и миграции
│
└── panel/              # Frontend
    └── src/
        ├── pages/      # Страницы
        ├── components/ # Компоненты
        └── api/        # API клиенты

Telegram бот

  1. Создайте бота через @BotFather
  2. Получите токен бота
  3. Создайте группу или чат, добавьте туда бота
  4. Узнайте ID чата (можно через @userinfobot)
  5. Внесите токен и ID чата в .env

Лицензия

MIT License — делайте с кодом что хотите.

About

Open-source server & website uptime monitoring with SSL checks, balance tracking (Timeweb, Reg.ru) and instant Telegram notifications. React frontend + Fastify API.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages