Перейти к содержимому

Разработка

Релизы, версии, сборка пакетов OpenWrt и эта документация.

ВеткаЧто в ней
mainOpenWrt: пакеты exodus, luci-app-exodus, mihomo-meta и установщик
keeneticKeenetic / Netcraze: Entware-версия и её установщик
asuswrtAsuswrt-Merlin: Entware-версия и её установщик
docsэта документация (Astro Starlight)

Релиз — это тег vMAJOR.MINOR.PATCH (например, v1.27.0). Workflow release-packages записывает версию тега в exodus и luci-app-exodus, собирает пакеты для всех поддерживаемых архитектур и прикладывает к релизу exodus_<arch>-<branch>.tar.gz — их и скачивает установщик. Тег другого вида роняет релиз.

РоутерГде версия
OpenWrtтег: v1.27.0 собирает exodus и luci-app-exodus 1.27.0-r1; PKG_VERSION в их Makefile — для локальных сборок
Keenetic / Netcrazekeenetic/opt/share/exodus/VERSION в ветке keenetic
Asus / Asuswrt-Merlinasuswrt/opt/share/exodus/VERSION в ветке asuswrt

Ветки Keenetic и Asuswrt-Merlin ставятся прямо из ветки, их версия поднимается вместе с кодом; CI проверяет, что она вида MAJOR.MINOR.PATCH. mihomo-meta имеет версию упакованного ядра Mihomo.

До 1.27.0 у exodus были версии-даты (2026.04.08), для пакетных менеджеров они выше 1.27.0: установщик ставит пакеты релиза с opkg install --force-downgrade, apk add ставит переданные файлы как есть.

Ядро Mihomo не компилируется: mihomo-meta скачивает официальный бинарник под целевую архитектуру и проверяет его sha256. Workflow dependabot ежедневно проверяет релизы MetaCubeX и открывает pull request с новой версией и хешами в mihomo-meta/Makefile.

Для архитектур без готовых пакетов — в дереве OpenWrt SDK или buildroot:

# добавить фид
echo "src-git exodus https://github.com/prettyleaf/openwrt-exodus.git;main" >> "feeds.conf.default"
# обновить и установить фиды
./scripts/feeds update -a
./scripts/feeds install -a
# собрать пакет
make package/luci-app-exodus/compile

Пакеты появятся в bin/packages/<архитектура>/exodus.

Зависимости exodus: ca-bundle, curl, yq, firewall4, ip-full, kmod-inet-diag, kmod-nft-socket, kmod-nft-tproxy, kmod-tun, kmod-dummy.

Сайт собирается из ветки docs и публикуется на GitHub Pages workflow deploy при каждом push в неё.

git switch docs
npm install
npm run dev # http://localhost:4321/OpenWrt-exodus/
npm run build # сборка в ./dist

Русский — язык по умолчанию (src/content/docs/), английский — в src/content/docs/en/. Ссылки внутри доки пишутся от корня без базы: /install/openwrt/, /en/install/openwrt/.