Skip to content

jf17/simple-web-monitoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 Мониторинг веб-сервисов

Простая и эффективная программа на Go для мониторинга доступности веб-сервисов с современным веб-интерфейсом.

Go Docker License

✨ Возможности

  • 🔍 Мониторинг в реальном времени - проверка доступности по HTTP запросам (статус 200 OK)
  • 🎨 Современный веб-интерфейс - интуитивно понятный дизайн
  • 🚨 Визуальные индикаторы - зеленый (доступен) / красный (недоступен) с морганием для проблемных сервисов
  • 📝 Раздельные интерфейсы - отдельные страницы для мониторинга и редактирования
  • Управление сервисами - добавление и удаление через веб-интерфейс
  • 💾 Автосохранение - данные сохраняются в services.json
  • Автообновление - обновление каждые 10 секунд с обратным отсчетом
  • 🐳 Docker Ready - готовые конфигурации для контейнеризации

🚀 Быстрый старт

Локальный запуск

# Клонирование репозитория
git clone https://github.com/jf17/simple-web-monitoring.git
cd simple-web-monitoring

# Запуск на порту 8080
go run main.go -port=8080

# Или используя Makefile
make run

🐳 Docker

# Сборка и запуск одной командой
make docker-build
make docker-up PORT=8080

# Открыть в браузере
open http://localhost:8080

📖 Использование

🏠 Главная страница (/)

Сфокусирована на мониторинге:

  • Отображение только названий сервисов (без URL)
  • Цветовые индикаторы статуса
  • Моргание красным для недоступных сервисов
  • Автообновление каждые 10 секунд
  • Ручное обновление по кнопке

⚙️ Страница редактирования (/edit)

Управление списком сервисов:

  • Полная информация о сервисах (название + адрес)
  • Добавление новых сервисов
  • Удаление существующих сервисов
  • Открывается в новом окне
  • Без автообновления (сфокусирована на редактировании)

🛠️ Команды Makefile

Основные команды

make help           # Показать все доступные команды
make run            # Запуск на порту 8080
make run-port PORT=3000  # Запуск на указанном порту
make build          # Сборка приложения
make clean          # Очистка файлов

Тестирование

make test           # Тестирование API на порту 8080
make test-port PORT=3000  # Тестирование на указанном порту
make add-test-service     # Добавить тестовый сервис
make remove-service       # Удалить сервис по индексу 0

Docker команды

make docker-build        # Сборка Docker образа
make docker-compose PORT=8080  # Создание docker-compose.yml
make docker-up PORT=8080      # Запуск через Docker Compose
make docker-down             # Остановка контейнера
make docker-clean            # Полная очистка Docker ресурсов

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

simple-web-monitoring/
├── 📄 main.go              # Основной файл приложения
├── 📄 go.mod               # Go модуль
├── 📄 Makefile             # Команды для сборки и запуска
├── 📄 Dockerfile           # Docker конфигурация
├── 📄 LICENSE              # Лицензия MIT
├── 📄 README.md            # Документация
├── 📄 services.json        # Список сервисов (создается автоматически)
├── 📁 data/                # Директория для Docker volume
└── 📄 docker-compose.yml   # Docker Compose (создается через Makefile)

🌐 API Endpoints

Метод Путь Описание
GET / Главная страница мониторинга
GET /edit Страница редактирования сервисов
GET /api/services Получить список всех сервисов
POST /api/add Добавить новый сервис
POST /api/remove Удалить сервис по индексу

Примеры API запросов

# Получить список сервисов
curl http://localhost:8080/api/services

# Добавить новый сервис
curl -X POST -H "Content-Type: application/json" \
  -d '{"name":"GitHub","url":"https://github.com"}' \
  http://localhost:8080/api/add

# Удалить сервис (индекс 0)
curl -X POST -H "Content-Type: application/json" \
  -d '{"index":0}' \
  http://localhost:8080/api/remove

🐳 Docker

Особенности Docker версии

  • ✅ Автоматическое определение Docker окружения
  • 💾 Данные сохраняются в /app/data/services.json
  • 🔄 Volume ./data:/app/data для сохранности данных
  • 🏗️ Многоэтапная сборка для минимального размера образа
  • 🔒 Запуск от непривилегированного пользователя
  • 🌍 Настройка часового пояса (Europe/Moscow)

Ручной запуск Docker

# Сборка образа
docker build -t web-monitor:latest .

# Создание директории для данных
mkdir -p ./data

# Запуск контейнера
docker run -d \
  --name web-monitor \
  -p 8080:8080 \
  -v $(pwd)/data:/app/data \
  web-monitor:latest -port=8080

🤝 Участие в разработке

  1. Fork репозитория
  2. Создайте feature branch (git checkout -b feature/amazing-feature)
  3. Commit изменения (git commit -m 'Add amazing feature')
  4. Push в branch (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📝 Лицензия

Этот проект распространяется под лицензией Apache 2.0. Подробности в файле LICENSE.

🆘 Поддержка

Если у вас возникли вопросы или проблемы:

  1. Проверьте Issues на наличие похожих проблем
  2. Создайте новый Issue с подробным описанием
  3. Используйте команду make help для справки по командам

Сделано с ❤️ на Go

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors