splify2
splify2

splify2-lists#

Каталог списков доменов и адресов для splify2

Каталог списков для splify2: что можно завернуть в туннель, одним файлом lists.json.

Роутер скачивает только lists.json — в нём перечислено, какие списки бывают, как они называются по-человечески и где лежит каждый. Сами списки живут двумя способами: свои — в этом репозитории, чужие — в релизах тех, кто их ведёт. Мы чужое к себе не перекладываем.

Подключить к своему роутеру#

В splify2: Настройки → Общее, карточка «Источник списков», вставить ссылку:

https://github.com/splify2/splify2-lists/releases/latest/download/lists.json

Это же значение можно задать по ssh:

uci set splify2.main.manifest_url='https://github.com/splify2/splify2-lists/releases/latest/download/lists.json'
uci commit splify2

Свой каталог: сделайте форк#

Форк работает сразу и без единой правки: сборка подставляет владельца из окружения, поэтому списки поедут из вашего дерева, а не из чужого. Дальше:

  1. Добавить список — положить файл в lists/. Один файл — один список:

    • имя.lst — домены и подсети, можно вперемешку;
    • имя.asn — номера автономных систем; подсети сборка спросит сама и положит рядом.

    Подробности и шапка файла — в lists/README.md.

  2. Добавить или убрать чужой источник — строка в sources.txt. Название набора по-человечески — строка в names.txt; чего там нет, то называется именем файла набора.

  3. Ничего больше. Сборка идёт раз в сутки сама (.github/workflows/lists.yml), а lists.json обновляется, только если содержимое действительно изменилось.

Проверить у себя на машине, ничего не публикуя:

python3 build.py     # зависимостей нет, только Python 3.8+

Откуда берутся чужие списки#

sources.txt называет репозитории; из последнего релиза каждого берутся наборы .srs (формат sing-box). splify2 читает их сам — ядро steer раскладывает набор на домены и подсети (steer srs-read).

Сейчас это:

Источник Что даёт Приставка
itdoginfo/allow-domains сервисы и категории под РФ itdoginfo:
Greeg0ry/b4geoip-forkop игры и игровые сервисы b4geoip:

Приставка нужна по двум причинам: имена у источников совпадают (roblox есть и там, и там), и приставка itdog уже занята вторым издателем, зашитым в сам splify2 — с ней он забирал бы списки этого каталога себе и качал их своим, зафиксированным в пакете тегом.

Тег релиза записывается в ссылку. Не latest: две сборки одного lists.json обязаны означать одно и то же, иначе «вчера работало, сегодня нет» не с чем сравнить. Пока у чужого издателя не вышел новый релиз, ссылки в lists.json не меняются, и роутеру нечего скачивать.

Сами .srs не качает даже сборка. У чужого релиза спрашивается только тег и перечень файлов; байты списка идут напрямую с их релиза на роутер, когда человек включит список.

Что внутри lists.json#

Тот же формат, который splify2 читает у своего манифеста, — чтобы каталог можно было подменить одной ссылкой:

{
  "version": "2026-09-08_20-46",        // меняется, только когда изменилось содержимое
  "generated_at": "2026-09-08T20:46:14Z",
  "base_url": "https://raw.githubusercontent.com/<владелец>/splify2-lists/main/lists",
  "categories": [                        // списки ПОДСЕТЕЙ
    { "id": "itdoginfo:telegram", "name_ru": "Telegram", "file": "itdoginfo/telegram.srs.lst",
      "format": "srs", "tag": "2026-09-07_14-23",
      "url": "https://github.com/itdoginfo/allow-domains/releases/download/2026-09-07_14-23/telegram.srs" }
  ],
  "domain_lists": [                      // списки ДОМЕНОВ
    { "id": "mydyson", "kind": "domains", "name_ru": "MyDyson",
      "file": "mydyson.lst", "count": 1, "default_on": false },
    { "id": "svc_itdoginfo_telegram", "kind": "domains", "name_ru": "Telegram",
      "file": "itdoginfo/domains/telegram.srs.lst", "same_as_ip": ["itdoginfo:telegram"],
      "format": "srs", "url": "…", "tag": "…" }
  ]
}
  • file — имя половины НА РОУТЕРЕ (и, для своих списков, путь относительно base_url). Качается .srs, а ядро steer держит в спеке текстовые списки: набор ему нужен только чтобы их получить. Поэтому у половин чужого набора имя от набора — telegram.srs.lst: происхождение списка читается прямо в правиле.
  • format: "srs" и url — «скачай вот это и разложи набором sing-box». Без них список скачивается как обычный текстовый файл из base_url.
  • same_as_ip — «домены и подсети здесь про одно и то же»: splify2 показывает такую пару одной строкой, а не двумя.
  • default_on — список включён у того, кто ничего не выбирал. В шапке файла это on: yes.

Лицензия#

Списки принадлежат их издателям; условия — в их репозиториях. Всё, что в этом репозитории своё (сборка, формат, документация), — MIT.