mirror of
https://github.com/LowderPlay/cheburcheck.git
synced 2026-07-27 00:25:59 +00:00
82 lines
4 KiB
Markdown
82 lines
4 KiB
Markdown
#  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).
|