Home
Softono
cheburcheck

cheburcheck

Open source BSD-3-Clause Rust
428
Stars
10
Forks
15
Issues
4
Watchers
1 week
Last Commit

About cheburcheck

Сайт для проверки блокировок в России

Platforms

Web Self-hosted

Languages

Rust

Cheburcheck Logo 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 — библиотека иконок, применяемая для визуального оформления интерфейса.

Как это работает

  1. Пользователь вводит домен или IP-адрес в форму на сайте.
  2. Сервер выполняет DNS-запрос через Quad9 DoH для получения актуальной информации.
  3. Полученный домен/IP проверяется на наличие в блокировочных списках через префиксные деревья.
  4. Результат возвращается через API и отображается SSR-фронтендом SvelteKit.

Списки

Для проверки используются списки 123jjck/cdn-ip-ranges, antifilter.download и antifilter.network.

Мы собираем собственные белые списки с помощью Cheburcheck Reporter.


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

  • querying — модуль проверки сайтов по базам данных
  • reporterCheburcheck Reporter
  • reports — общий протокол для отправки отчетов
  • website — Rocket API и серверная логика
  • probeCheburcheck Probe
  • frontend — 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

Вклад

Если хотите помочь с разработкой — открывайте issue или присылайте pull requests. Если хотите помочь финансово:

  • TON: UQAACsiwpGryjP-kqp4TJPAWpXytuB6M_puuO0Cg5zNvaSJW

Контакты

Для вопросов и обсуждений можно написать на [email protected].