github MHSanaei/3x-ui v3.8.0

4 hours ago

🚀 TUIC v5, AmneziaWG outbounds, Discord notifications, Xray-core v26.9.9 & hardened installs

  • 🚀 TUIC v5 inbounds — a bundled tuic-server sidecar terminates TUIC and relays into Xray for per-client stats and routing, with tuic:// share links, Clash output and a dedicated QR config tab.
  • đŸ›°ī¸ AmneziaWG everywhere — AmneziaWG is now an outbound protocol too, Clash subscriptions can emit AmneziaWG proxies, multi-server NordLynx outbounds arrive alongside, and the embedded tunnel picked up a dozen relay, MTU, keying, locking and throughput fixes.
  • đŸ’Ŧ Discord notifications — a new Discord bot service mirrors the Telegram alerts with its own settings tab, while the Telegram bot gained ownership checks, HTML escaping, mutex-safe state and callback fixes.
  • âš™ī¸ Xray-core v26.9.9 — two core bumps with one-time template migrations for the keys the new core refuses or deprecates, the udpHop → udphop mask move, and outbound protocol ids read case-insensitively everywhere the panel looks at them.
  • 📡 Subscription overhaul — client-app integration headers and curated routing presets, routing profiles and DNS servers baked into JSON subscriptions, a legacy Clash endpoint, a dummy info/status node, opt-in month-end expiry display, an HWID slot-status endpoint and locally generated Crypt5 links.
  • 🔐 Hardened installs — release archives ship SHA-256 sums that install.sh/update.sh verify, geo databases are checked against published digests, the SQLite store is owner-only, fresh panels get random subscription paths, and the fail2ban override moved to jail.d.
  • 🖧 Multi-node correctness — client edits fan out to every node concurrently, node snapshots can no longer resurrect deleted clients or hijack another inbound's client, and a newly selected inbound is imported instead of swept.
  • 🧩 Panel UX — a global Ctrl+K command palette, linked host remarks in the inbound list, a Reality scan-candidate setting, geodata source presets, a routing-rule comment field and a Generate button for tunnel preshared keys.
  • 🔗 Share-link fidelity — imports keep mKCP seed/headerType, Shadowsocks TLS params and obfuscation, VMess certificate checks and vcn; Clash output drops nodes it cannot express and emits bare hosts.

â„šī¸ Heads-up: The first start after upgrading runs several one-time automatic migrations: stored Xray templates are rewritten for keys the new core refuses or deprecates (outbound proxySettings → sockopt.dialerProxy, freedom domainStrategy → sockopt, dns-outbound nonIPQuery/blockTypes → rules), the SQLite directory and files are tightened to 0700/0600 (a failed chmod is logged, not fatal), a legacy MTProto custom share address becomes a Host, and a subSortIndex of 0 is renumbered to 1. Behavior changes: a wrong API Bearer token now returns 401 instead of 404; JSON subscriptions bind their local SOCKS/HTTP inbounds to 127.0.0.1 and disable TCP mux on Vision outbounds; an empty REALITY minClientVer now means no minimum; growing a node's inbound selection re-arms adoption so the added inbound is imported rather than swept. TUIC v5 needs the tuic-server sidecar, which the release archives, Docker image and install.sh now place next to the panel binary (it is no longer copied to /usr/local/bin), and install.sh/update.sh verify the archive's published SHA-256 sidecar, aborting on mismatch or fetch failure (a 404 on older tags only warns). Fresh installs get random subscription paths while existing settings are preserved; building needs Go 1.27.1 and the bundled core is Xray-core v26.9.9.

🆕 New

⚡ Update & improvement

🐞 Bug fixed

Reports

Total Download

New Contributors

Full Changelog: v3.7.0...v3.8.0

Don't miss a new 3x-ui release

NewReleases is sending notifications on new releases.