# IpCheck Распределённая система мониторинга IP-адресов на F#. Каждый агент представляет отдельную локацию, синхронизирует общий список IP с центральным сервером, выполняет Ping и TCP-проверки SSH/RDP и отправляет результаты обратно. ## Состав первого среза - F# ASP.NET Core API; - F# Worker Service для агентов локаций; - общие контракты и доменная модель; - схема PostgreSQL; - Docker-образы сервера и агента; - Docker Compose для локального окружения; - CI для сборки, тестов и публикации контейнеров; - существующий интерфейс в `app/` сохранён как визуальный прототип до переноса на Fable. ## Локальная проверка ```bash dotnet restore IpCheck.slnx dotnet build IpCheck.slnx -c Release dotnet run --project tests/IpCheck.UnitTests/IpCheck.UnitTests.fsproj -c Release ``` Запуск сервера: ```bash dotnet run --project src/IpCheck.Server/IpCheck.Server.fsproj ``` API будет доступен по адресу, указанному ASP.NET Core в консоли. Проверка состояния: `GET /healthz`. ## Docker Compose Скопируйте `deploy/.env.example` в `deploy/.env`, замените пароль и запустите: ```bash docker compose --env-file deploy/.env -f deploy/docker-compose.yml up -d --build ``` ## Следующий этап Перевести репозитории IP, локаций и результатов с временного in-memory хранилища на PostgreSQL, добавить регистрацию агентов по одноразовому токену и начать Fable-админку.