Find a file
Lowder c023d3dfb5
Some checks are pending
Build Reporter / validate (push) Waiting to run
Build Reporter / Linux amd64 (.deb) (push) Blocked by required conditions
Build Reporter / Linux arm64 (.deb via cross) (push) Blocked by required conditions
Build Reporter / Windows amd64 (push) Blocked by required conditions
Build Reporter / release (push) Blocked by required conditions
CodeQL Advanced / Analyze (rust) (push) Waiting to run
Build and Publish Docker Images / validate (push) Waiting to run
Build and Publish Docker Images / Build website image (push) Blocked by required conditions
Build and Publish Docker Images / Build frontend image (push) Blocked by required conditions
Build and Publish Docker Images / Deploy (push) Blocked by required conditions
Build and Publish Docker Images / release (push) Blocked by required conditions
Build Probe / validate (push) Waiting to run
Build Probe / Linux amd64 binary and .deb (push) Blocked by required conditions
Build Probe / Linux arm64 binary, .deb, and OpenWrt packages (push) Blocked by required conditions
Build Probe / Windows amd64 binary (push) Blocked by required conditions
Build Probe / Docker image amd64/arm64/armv7 (push) Blocked by required conditions
Build Probe / release (push) Blocked by required conditions
chore: bump version
2026-10-08 00:59:02 +05:00
.github feat: update Docker build for armv7 and refactor architecture detection (#103) 2026-10-06 20:10:14 +05:00
frontend fix: Курская область 2026-10-08 00:59:02 +05:00
probe chore: bump version 2026-10-08 00:59:02 +05:00
querying chore: bump hickory resolver 2026-09-07 17:50:39 +05:00
reporter Повышение надёжности проверок, улучшение тестов, микрофиксы (#87) 2026-08-29 20:56:37 +05:00
reports feat: dpi traceroute commands and debug (#102) 2026-10-02 20:45:31 +05:00
rmqtt feat: dynamic probing (#71) 2026-06-06 03:03:48 +05:00
website chore: bump version 2026-10-08 00:59:02 +05:00
.dockerignore feat!: svelte rewrite (#68) 2026-05-28 22:34:50 +05:00
.gitignore fix: permissions 2026-06-18 04:03:59 +05:00
biome.json feat: better probing (#81) 2026-08-18 00:54:52 +05:00
Cargo.lock chore: bump version 2026-10-08 00:59:02 +05:00
Cargo.toml feat: dynamic probing (#71) 2026-06-06 03:03:48 +05:00
docker-compose.yaml feat: admin interface 2026-09-30 12:56:26 +05:00
LICENSE initial commit 2025-11-19 21:52:35 +05:00
nginx.conf feat: admin interface 2026-09-30 12:56:26 +05:00
README.md docs: remove admin 2026-09-30 13:18:23 +05:00

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

Базы проверок кешируются в database-cache/. Путь можно изменить через DATABASE_CACHE_DIR, основной интервал обновления — через DATABASE_INTERVAL_SECONDS, а интервал повтора после ошибки скачивания — через DATABASE_RETRY_INTERVAL_SECONDS (по умолчанию 300 секунд).


Вклад

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

  • TON: UQAACsiwpGryjP-kqp4TJPAWpXytuB6M_puuO0Cg5zNvaSJW

Контакты

Для вопросов и обсуждений можно написать на support@cheburcheck.ru.