portchecker.io: онлайн-утилита для проверки статуса портов
portchecker.io — это онлайн-утилита для проверки статуса портов на заданных хостах или IP-адресах. Проект полезен для разработчиков и сетевых администраторов, так как помогает диагностировать сетевые настройки, проверять правила файрвола и оценивать возможные точки доступа.
В отличие от более сложных аналогов, portchecker.io предлагает минималистичное решение с низким уровнем зависимостей. Он использует стеки на Python с фреймворком Litestar для бэкенда и Node.js для фронтенда. Доступен как в виде Docker-контейнеров, так и в виде стэндэлон-версий. Запуск фронтенда происходит с помощью npm, а для API нужен Python и Poetry для управления пакетами.
Обрати внимание, что для работы проекта требуется Node версии 26 и выше, а также Python 3.13. Убедись, что ознакомился с документацией, прежде чем начнешь настройку.
Проект portchecker.io представляет собой открытый API, который позволяет проверять доступность портов на указанных именах хостов или IP-адресах. Он полезен для разработчиков и сетевых администраторов, помогая в диагностике сетевых настроек, проверке правил брандмауэра и оценке возможных точек доступа.
Как установить и запустить проект
Проект состоит из двух контейнеров: фронтенд, который представляет собой статический HTML-файл, и бэкенд — простой API, построенный с использованием Litestar. Он задуман как максимально простой и с минимальными зависимостями.
Для начала работы ты можешь развернуть как отдельно, так и с помощью Docker.
Запуск отдельно
- Фронтенд:
Доступ к фронтенду будет по адресу http://0.0.0.0:8080.$ cd frontend/web $ npm install $ npm run dev - API:
API будет доступен по адресу http://0.0.0.0:8000.$ cd backend/api $ poetry install $ uvicorn main:app --host 0.0.0.0 --port 8000 --reload
Запуск с помощью Docker
$ docker-compose -f docker-compose-dev.yml up --build
При запуске с помощью Docker фронтенд будет работать по адресу http://0.0.0.0:8080, а API — по адресу http://0.0.0.0:8000.
Документация и API
Маршруты и спецификации API можно найти в документации проекта.
Ограничения и переменные окружения
Проект использует несколько переменных окружения, которые можно настроить в файлах Docker или в твоем окружении при работе с portchecker отдельно. Например, можно установить переменные для URL API, а также значения по умолчанию для хоста и порта:
- API_URL: URL API, по умолчанию http://api:8000.
- DEFAULT_HOST: Позволяет задать значение хоста по умолчанию для UI.
- DEFAULT_PORT: Позволяет задать значение порта по умолчанию для UI.
Мониторинг
Доступен эндпоинт `/metrics` для сбора метрик по API, включая время отклика и коды состояния. Можно интегрировать данные метрики в Prometheus и построить дашборд в Grafana.
Если ты заинтересован в внесении изменений или улучшений, проект поддерживает участие внешних разработчиков через систему вопросов и предложений на GitHub.
Для поддержки проекта ты можешь выразить свою благодарность, оставив звезду на GitHub или сделав небольшое пожертвование.
Открыть на GitHub: dsgnr/portchecker.io →
RepoRadar