3x-ui/frontend/src
MHSanaei 62fd9f9d82
feat(inbounds): add Port-with-Fallback inbound type
Adds a new "portfallback" protocol that emits as a VLESS-TLS inbound
under the hood but is paired with a sidecar table of child inbounds.
Panel auto-builds settings.fallbacks at Xray-config-gen time from the
sidecar — each child's listen+port becomes the fallback dest, with
SNI/ALPN/path/xver match criteria pulled from the row. No more typing
loopback ports by hand or keeping settings.fallbacks in sync.

Backend: new FallbackService (Get/SetChildren, BuildFallbacksJSON);
two new routes (GET/POST /panel/api/inbounds/:id/fallbackChildren);
xray.GetXrayConfig injects fallbacks for PortFallback inbounds; the
inbound model emits protocol="vless" so Xray accepts the config.

Frontend: PORTFALLBACK joins the protocol dropdown; selecting it
shows the standard VLESS controls plus a Fallback Children table
(inbound picker + per-row SNI/ALPN/path/xver). Children are loaded
on edit and replaced atomically on save.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 07:44:01 +02:00
..
api feat(clients): add top-level Clients tab and CRUD API 2026-05-17 07:28:55 +02:00
components feat(clients): add top-level Clients tab and CRUD API 2026-05-17 07:28:55 +02:00
composables fix(inbounds): hide node UI when no enabled node exists 2026-05-13 17:42:40 +02:00
entries feat(clients): add top-level Clients tab and CRUD API 2026-05-17 07:28:55 +02:00
i18n fix: split locale chunks by removing eager i18n glob 2026-05-15 10:50:40 +02:00
models feat(inbounds): add Port-with-Fallback inbound type 2026-05-17 07:44:01 +02:00
pages feat(inbounds): add Port-with-Fallback inbound type 2026-05-17 07:44:01 +02:00
utils feat(ui): use the host as the browser tab title prefix 2026-05-13 14:23:57 +02:00