brainstate

LowderPlay/cheburcheck · source

Snapshot 0 · 2026-11-04T12:47:28Z · Rust · BSD-3-Clause

Content fingerprint59fe73619d2ff95bb274bea41e95178cc8d17616b36d046060b3496bb98cf435

GitHub description at capture

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

README at capture

# ![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

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

---

## Вклад

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

---

## Контакты

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