github MHSanaei/3x-ui v3.5.0

5 hours ago

πŸš€ MTProto Multi-Client, SQLiteβ†’PostgreSQL Migration, 500k-Scale Performance & Node Sync Hardening

  • πŸ“¬ MTProto goes multi-client β€” MTProto inbounds now run on the mtg-multi engine with one FakeTLS secret per client, per-client ad-tags, and per-client quota & expiry enforced in the sidecar; client edits hot-apply through a management API so live connections survive.
  • 🐘 SQLite β†’ PostgreSQL, end to end β€” the PostgreSQL panel restore now accepts SQLite .db files and migration dumps directly (uploads are sniffed automatically), cross-db migration became lossless, transactional and pre-checked, and a new x-ui pgclient command installs or upgrades the PostgreSQL client tools.
  • πŸš„ Built for 500k clients β€” batched ip-limit lookups, depleted-client disables by id, delta WebSocket stats above a snapshot threshold, and subscriptions resolved from normalized tables β€” pinned by a scale test suite at 500,000 clients.
  • 🧠 Frontend platform overhaul β€” full React Hook Form migration, axios replaced with the native Fetch API, charts moved to uPlot, and Husky / lint-staged / MSW / Storybook dev tooling.
  • πŸ›°οΈ Node sync hardening β€” host overrides adopted into the master, no more premature inbound sweeps or Postgres deadlocks in sync, client edits no longer tear down node inbounds, and node auto-renewals open a fresh quota window.
  • 🌍 Outbound insight β€” egress metadata (IP + country) per outbound, a real-delay connection test measured on a warm connection, and a targetStrategy field in the outbound editor.
  • βš–οΈ Routing & balancers β€” balancer-to-balancer fallback, a default outbound in basic routing, encrypted DNS presets, and private-IP dns.servers allowed past the geoip:private block rule.
  • πŸ”Ž Panel QoL β€” text search on the inbound list and node selects, column sorting, per-client realtime speed, bulk-adding hosts to multiple inbounds, and WireGuard export split into config and links tabs.

ℹ️ Heads-up: MTProto inbounds are now natively multi-client β€” legacy single-secret inbounds migrate automatically to the clients model, and tg:// deep links no longer carry the remark fragment. The bundled core was bumped to xray-core v26.7.11, and the Final Mask + REALITY combination is now rejected (it crashes Xray-core). A database migration also repairs overflowed traffic counters and drops the legacy UNIQUE constraint on inbound ports.

πŸ†• New

⚑ Update & improvement

🐞 Bug fixed

Reports

Total Download

New Contributors

Full Changelog: v3.4.2...v3.5.0

Don't miss a new 3x-ui release

NewReleases is sending notifications on new releases.