# ![Cheburcheck Logo](website/static/favicon.svg) Cheburcheck.ru [Cheburcheck.ru](https://cheburcheck.ru) — open-source сервис для проверки доменов и IP-адресов на наличие в списках блокировок Роскомнадзора и популярных заблокированных CDN-провайдеров. --- ## О проекте Этот сервис реализован на языке Rust с использованием веб-фреймворка [Rocket.rs](https://rocket.rs/). Основная задача — проверять, заблокирован ли домен или IP-адрес, основываясь на актуальных данных из реестров Роскомнадзора и других источниках. --- ## Технологии - **Rust** — язык программирования, на котором написан весь бекенд. - **Rocket.rs** — веб-фреймворк для построения HTTP API и серверной логики. - **DoH резолвер Quad9** — для разрешения DNS-запросов используется DNS-over-HTTPS, что позволяет обойти локальные ограничения и получать актуальные данные. - **SvelteKit** — SSR-фронтенд, который запускается отдельным Node.js сервисом. - **nginx** — публичная точка входа, проксирует API в Rocket, а страницы в SvelteKit. - **lucide** — библиотека иконок, применяемая для визуального оформления интерфейса. --- ## Как это работает 1. Пользователь вводит домен или IP-адрес в форму на сайте. 2. Сервер выполняет DNS-запрос через Quad9 DoH для получения актуальной информации. 3. Полученный домен/IP проверяется на наличие в блокировочных списках через префиксные деревья. 4. Результат возвращается через API и отображается SSR-фронтендом SvelteKit. --- ## Списки Для проверки используются списки [123jjck/cdn-ip-ranges](https://github.com/123jjck/cdn-ip-ranges), [antifilter.download](https://antifilter.download/) и [antifilter.network](https://antifilter.network). Мы собираем собственные белые списки с помощью [Cheburcheck Reporter](reporter/README.md). --- ## Структура проекта * `querying` — модуль проверки сайтов по базам данных * `reporter` — [Cheburcheck Reporter](reporter/README.md) * `reports` — общий протокол для отправки отчетов * `website` — Rocket API и серверная логика * `probe` — [Cheburcheck Probe](probe/README.md) * `frontend` — SvelteKit SSR-интерфейс --- ## Запуск через Docker Compose ```sh docker compose up --build ``` По умолчанию nginx слушает `http://localhost:8080`. Порт можно изменить через `HTTP_PORT`, например: ```sh HTTP_PORT=80 docker compose up --build ``` Маршрутизация: * `/api/v1/*`, `/agency/*`, `/whitelist/*` идут в Rocket * остальные запросы идут в SvelteKit SSR --- ## Вклад Если хотите помочь с разработкой — открывайте issue или присылайте pull requests. Если хотите помочь финансово: - TON: `UQAACsiwpGryjP-kqp4TJPAWpXytuB6M_puuO0Cg5zNvaSJW` --- ## Контакты Для вопросов и обсуждений можно написать на [support@cheburcheck.ru](mailto:support@cheburcheck.ru).