
Расширенный опыт отслеживания блокировок
Запретян-Go это кроссплатформенный локальный API собирающий данные о изменениях в списках блокировок из одного или нескольких источников для любых операций со списками блокировок интернет-ресурсов с поддержкой самописных плагинов, написанных на любом языке программирования.
Это переосмысление оригинальной Запретян, кратно расширяющее её возможности системой плагинов, кроссплатформенностью и скоростью работы, так как это больше не скрипт, а нативное приложение с поддержкой работы как системного сервиса для Windows и дистрибутивов Linux.
Функции
Сбор, сортировка, слияние и удаление дубликатов
Ядро используется для периодического сбора списков блокировок из одного или нескольких источников (Отдельно домены и IP/CIDR), распространяемых в текстовом формате и их автоматического объединения с удалением дубликатов. Источники и частота проверки на наличие обновлений управляются вами в конфигурации приложения. Списки должны представлять собой обычный plain-text с новой строкой (\n) в качестве разделителя, где каждая строка — это один домен или один IP/CIDR
Подробнее о конфигурации приложения
Ядро принимает списки доменов и IP адресов, но также поддерживает URL и CIDR. Подсети будут автоматически распакованы в сплошной список IP адресов, а из URL ссылок будут извлекаться доменные имена.
При наличии обновлений ядро обрабатывает полученные списки и после записи новых списков создаёт событие с детальными данными об изменениях и отсылает его установленным и включеным в конфигурации плагинам. Установленные плагины могут совершать ЛЮБЫЕ действия с этими списками, которые смог придумать и написать кодом автор каждого из плагинов.
Плагины для любых действий с данными
Плагины получают событие в JSON формате из данных которого они могут делать всё, что хотят.
- При событии выгружать файл с новыми списками на свой сайт (Можно даже придумать свой фильтр результатов которые вы хотите испключить из этих списков)
- Отправлять список только что добавленных в список доменов или адресов в какой-либо мессенджер или соц.сеть постом с помощью ботов и подобного функционала (В Whatsapp, Telegram, Discord, и многие другие)
- Написать своего поискового бота или сервис по спискам, который всегда будет работать вместе с ядром, ядро будет поддерживать его жизнь.
- Обновлять счётчик заблокированых ресурсов (Доменов и адресов) находящийся где угодно
- Добавлять и удалять динамически адреса и домены из своего средства обхода блокировок
- Мониторить и собирать аналитику
И всё что угодно, но даже так не ограничиваясь, используя вот эти данные от ядра
Ядро само следит за жизнью вашего плагина
Для того, чтобы ядро запустило ваш плагин, в момент первого запуска плагин обязан передать рукопожатие, в котором в том числе указывается режим плагина.
Плагин может иметь режим ONCE и STREAM.
- При режиме
ONCEвы можете выполнять разовые обработки (Получил данные->Сделал что надо->Процесс плагина закрывается). - При режиме
STREAMплагин живёт и слушает события всегда, не закрывая процесс. Этим плагином может быть целый сервис (Telegram бот, вебсервер, иной API или клиент с необходимостью бесперебойной работы встроенный в плагин) и он будет работать всё время пока запущено ядро. Если такой плагин крашнется, ядро автоматически перезапустит его процесс.
Вы можете писать свои плагины как на сложных языках программирования, так и на обычных скриптах, главное соответствовать критериям запуска.
Простая установка системного сервиса
Ядро Запретян-Go умеет работать в режиме системного сервиса на разных дистрибутивах Linux, а также на семействах ОС Windows и Windows Server! Это полезно для автозапуска и непрерывной работы!
Установка и удаление сервисов производится простыми командамиzapretyanGo --install и zapretyanGo --uninstall
- Для систем на основе ядра Linux приложение становится сервисом в системном демоне таком как systemd и подобных
- Для систем семейства Windows есть нативная поддержка работы с сервисами Windows. Ядро запускается от имени SYSTEM, а управлять, перезапускать и отключать её вы можете прямо из управления сервисами services.msc
Отличия от обычной Запретян
- Монолитность: Запретян-Go это не Bash-скрипт, а кроссплатформенное консольное приложение, оптимизированное под непрерывную работу и минимальное потребление системных ресурсов в фоне. Конфигурации можно переносить между системами, при использовании относительных путей, вам не нужно будет делать никаких изменений
- Улучшеный сбор данных: Скачивание и обработка списков может исполняться из нескольких источников, проверяя есть ли обновления на самом удалённом сервере. Помимо этого списки могут иметь смешанные URL и домены, CIDR и полные адреса. Все они будут обработаны корректно
- Модульность: Весь функционал вынесен в плагины — независимые приложения или скрипты, которые могут общаться с ядром, принимая все данные о обновлениях списков и исполняя собственные действия. Конфигурация плагинов создаётся в том же файле что и конфигурация ядра и передаётся плагинам напрямую индивидуально.
- Масштабность: Модульная система имеет неограниченое количество возможных применений. Весь функционал старой Запретян это только ядро Запретян-Go с плагинами Daily Statistics и Discord Sender! Эти плагины не только воспроизводят старый опыт, но и значительно улучшают его вводя новые обработки для более наглядной читаемости изменений в списках
- Легковесность: Ядро и его плагины не имеют зависимости от системных компонентов, от Node или его библиотек, которые могли занять ~400 Мегабайт места помимо самих рабочих файлов запретян. Весь функционал вшит в один аккуратный исполняемый файл. Все подробности можно найти в документации!
Системные требования
- Операционная система
- Windows 10, Windows Server 2016 или новее
- Ядро Linux версии не ниже 3.2 (CentOS 7+, Ubuntu 16.04+ или Debian 8+)
- Процессор
- Совместимый с ОС на основе архитектур:
amd64,arm64,i386
- Совместимый с ОС на основе архитектур:
- ОЗУ
- Не менее 10МБ вплоть до 100МБ при очень больших списках изменений + Потребление включённых плагинов
- Диск
- ~200МБ свободного дискового пространства, (~10МБ ядро, ~100МБ списки при стандартных источниках, ~70МБ под временные файлы для скачивания списков) не учитывая нестандартные настройки ядра и данные настроенных плагинов.
- Стабильное подключение к интернету
Установка
- Перейдите на страницу последнего релиза
- Выберите подходящую вам сборку:
- Как выбрать на примере
zapretyan-go-linux-amd64.tar.gz:zapretyan-go— стандартный префикс всех сборок-linux-или-windows-— Операционная система, нужная вам-amd64— x64-разрядная система (Встречается чаще всего)-386— x86 (32-разрядная) система,-arm64— Система для ARM процессоров.
- Как выбрать на примере
- Распакуйте скачаный архив в заранее созданную папку (Например в
/usr/bin/zapretyangoилиC:\zapretyango) - Настройте
config.tomlи проверьте работу.- Windows: Вы можете запустить ядро двойным нажатием мыши на
zapretyanGo.exe - Linux: Вы можете запустить ядро находясь в директории прописав
./zapretyanGo. Если файл запрещён для исполнения используйтеchmod +X zapretyanGoи попробуйте запустить снова.
- Windows: Вы можете запустить ядро двойным нажатием мыши на
Дорожная карта изменений
Релиз v2.0.0.0
Первый общедоступный релиз
Релиз v2.1.0.0
Огромное количество оптимизаций использования ОЗУ и производительности. Поддержка нескольких источников
Релиз v2.1.1.1
Исправление проблем и улучшение опыта использования для Windows

