Upstream rewrote install.sh to 3.0.0. Re-apply the fork installer changes on
top: point at the NeoTachyon Gitea repo (REPO_HOST/OWNER/NAME), use the Gitea
API base for release resolution and support optional GITEA_USER/TOKEN auth for
the API and downloads.
These target GitHub Actions runners and do not fit the bare Gitea Actions
host runner, producing failed runs on every branch push. The build.yml
release workflow (auto-build on tags) is kept.
Point the installer at https://git.rukavishnikoff.ru/hacker07/NeoTachyon and
support Gitea's GitHub-compatible API for releases. When the repository has
no published release yet, fall back to installing the backend and LuCI UI
directly from the branch source archive (tachyon/files, luci-app htdocs/root)
so the same one-liner installs the fork as-is. Repo can be overridden via
TACHYON_REPO_HOST / TACHYON_REPO_OWNER / TACHYON_REPO_NAME /
TACHYON_SOURCE_BRANCH / TACHYON_REPO_INSTALL_URL. README install/uninstall
commands now point to the Gitea raw URLs.
Add AdGuard Home as an installable Tachyon component (component card with
check/update/remove/rollback/enable/disable) backed by providers/adguard
(validator + runtime) and an init.d service.
Backend:
- action.uc: install/remove/enable/backup/rollback/dispatch/releases for
'adguard' (tar.gz from AdguardTeam/AdGuardHome, OpenWrt->AdGuard arch map)
- updater.uc: adguard asset selection; updates.uc: valid_component_name and
automatic update checks
- runtime.uc: generates AdGuardHome.yaml from UCI (upstream=single-box DNS,
fallback_dns for failover, web UI on LAN, filters), manages the daemon
- dns/apply.uc: dns_main_mode (dnsmasq->AdGuard->sing-box chain, or AdGuard on
:53 with dnsmasq DHCP-only)
- settings: dns_main_mode (Main DNS) + dns_adguard_failover_enabled
- sections: routed_dns_type/dns_type 'adguard' resolve via the AdGuard provider
upstreams; validator accepts the new type
- system-info: adguard_version/installed/enabled/backup fields
Frontend:
- component card 'AdGuard Home' with enable/disable + version actions
- LuCI DNS settings tab: Main DNS selector and failover flag
- section.js: AdGuard Home routed DNS protocol option
Tests: tests/adguard_validator.sh, tests/adguard_runtime.sh
- decouple restart() from stop_impl() in lifecycle.uc to avoid premature dnsmasq_restore
- keep dhcp.@dnsmasq[0].server locked to 127.0.0.42 throughout service restarts
- add atomic restart_service hooks in init.d/tachyon and initd.uc
- fix dns_turbo_cache path resolution to promote default cache to /etc/sing-box/cache.db
- add Local DNS Cache support in dnsmasq (dns_local_cache, dns_cache_size)
- add comprehensive behavioral regression test tests/service_restart_lifecycle.sh
- Add Boosty badge to README.md and README.en.md headers
- Add Boosty as first donation option in support sections of both READMEs
- Add Boosty card (with orange border accent) to LuCI diagnostic support modal
- Add Russian translations for Boosty strings in po/ru/tachyon.po
- Add fptn to route.target() to prevent exit(2) crash on config generation
- Add add_fptn_outbound() using direct outbound with routing_mark=0x00300000
(routes traffic through tun-fptn via kernel ip rule → table 4249)
- Add fptn to reserve_section_outbound_tags
- Add fptn to generator_routes outbound dispatch
Fixes torrents and all traffic breaking when an FPTN section is configured.