Bumps [actions/cache](https://github.com/actions/cache) from 4 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .github | ||
| frontend | ||
| probe | ||
| querying | ||
| reporter | ||
| reports | ||
| rmqtt | ||
| website | ||
| .dockerignore | ||
| .gitignore | ||
| biome.json | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Cross.toml | ||
| docker-compose.yaml | ||
| LICENSE | ||
| nginx.conf | ||
| README.md | ||
Cheburcheck.ru
Cheburcheck.ru — open-source сервис для проверки доменов и IP-адресов на наличие в списках блокировок Роскомнадзора и популярных заблокированных CDN-провайдеров.
О проекте
Этот сервис реализован на языке Rust с использованием веб-фреймворка Rocket.rs. Основная задача — проверять, заблокирован ли домен или IP-адрес, основываясь на актуальных данных из реестров Роскомнадзора и других источниках.
Технологии
- Rust — язык программирования, на котором написан весь бекенд.
- Rocket.rs — веб-фреймворк для построения HTTP API и серверной логики.
- DoH резолвер Quad9 — для разрешения DNS-запросов используется DNS-over-HTTPS, что позволяет обойти локальные ограничения и получать актуальные данные.
- SvelteKit — SSR-фронтенд, который запускается отдельным Node.js сервисом.
- nginx — публичная точка входа, проксирует API в Rocket, а страницы в SvelteKit.
- lucide — библиотека иконок, применяемая для визуального оформления интерфейса.
Как это работает
- Пользователь вводит домен или IP-адрес в форму на сайте.
- Сервер выполняет DNS-запрос через Quad9 DoH для получения актуальной информации.
- Полученный домен/IP проверяется на наличие в блокировочных списках через префиксные деревья.
- Результат возвращается через API и отображается SSR-фронтендом SvelteKit.
Списки
Для проверки используются списки 123jjck/cdn-ip-ranges, antifilter.download и antifilter.network.
Мы собираем собственные белые списки с помощью Cheburcheck Reporter.
Структура проекта
querying— модуль проверки сайтов по базам данныхreporter— Cheburcheck Reporterreports— общий протокол для отправки отчетовwebsite— Rocket API и серверная логикаprobe— Cheburcheck Probefrontend— SvelteKit SSR-интерфейс
Запуск через Docker Compose
docker compose up --build
По умолчанию nginx слушает http://localhost:8080. Порт можно изменить через
HTTP_PORT, например:
HTTP_PORT=80 docker compose up --build
Маршрутизация:
/api/v1/*,/agency/*,/whitelist/*идут в Rocket- остальные запросы идут в SvelteKit SSR
Базы проверок кешируются в database-cache/. Путь можно изменить через
DATABASE_CACHE_DIR, основной интервал обновления — через
DATABASE_INTERVAL_SECONDS, а интервал повтора после ошибки скачивания — через
DATABASE_RETRY_INTERVAL_SECONDS (по умолчанию 300 секунд).
Вклад
Если хотите помочь с разработкой — открывайте issue или присылайте pull requests. Если хотите помочь финансово:
- TON:
UQAACsiwpGryjP-kqp4TJPAWpXytuB6M_puuO0Cg5zNvaSJW
Контакты
Для вопросов и обсуждений можно написать на support@cheburcheck.ru.