cheburcheck/README.md
2026-06-06 03:03:48 +05:00

82 lines
4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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