2026-04-21 18:20:43 +00:00
[English ](/README.md ) | [فارسی ](/README.fa_IR.md ) | [العربية ](/README.ar_EG.md ) | [中文 ](/README.zh_CN.md ) | [Español ](/README.es_ES.md ) | [Русский ](/README.ru_RU.md )
2024-03-12 11:40:24 +00:00
2024-11-21 17:18:30 +00:00
< p align = "center" >
< picture >
< source media = "(prefers-color-scheme: dark)" srcset = "./media/3x-ui-dark.png" >
< img alt = "3x-ui" src = "./media/3x-ui-light.png" >
< / picture >
< / p >
2024-02-28 11:05:01 +00:00
2025-09-19 08:29:34 +00:00
[](https://github.com/MHSanaei/3x-ui/releases)
[](https://github.com/MHSanaei/3x-ui/actions)
[](#)
[](https://github.com/MHSanaei/3x-ui/releases/latest)
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
feat(nodes): traffic-writer queue, full-mirror sync, WS event fixes
- Traffic-writer single-consumer queue (web/service/traffic_writer.go)
serialises every DB write that touches up/down/all_time/last_online
(AddTraffic, SetRemoteTraffic, Reset*, UpdateClientTrafficByEmail) so
overlapping goroutines can no longer clobber each other's column-scoped
Updates with a stale tx.Save.
- DB pool: WAL + busy_timeout=10s + synchronous=NORMAL + _txlock=
immediate, MaxOpenConns=8 / MaxIdleConns=4. The immediate-tx PRAGMA
fixes residual "database is locked [0ms]" cases where deferred-tx
writer-upgrade conflicts bypass busy_timeout.
- SetRemoteTraffic full-mirrors node-authoritative state into central:
settings JSON, remark, listen, port, total, expiry, all_time, enable,
plus per-client total/expiry/reset/all_time. Inbounds and
client_traffics rows present on node but missing from central are
created; rows missing from snap are deleted (with cascading
client_traffics removal).
- NodeTrafficSyncJob detects structural changes from the mirror and
broadcasts invalidate(inbounds) so open central UIs re-fetch via REST
on node-side add/del/edit without manual refresh.
- XrayTrafficJob broadcasts invalidate(inbounds) when auto-disable flips
client_traffics.enable so the per-client toggle reflects depletion
without manual refresh.
- Frontend: inbounds page now subscribes to the BroadcastInbounds 'inbounds'
WS event (full-list pushes from add/del/update controllers were silently
dropped). Fixes invalidate payload field (dataType -> type). Restart-
panel modal switched from Promise-wrap to onOk-only so Cancel actually
cancels.
- Node files trimmed of stale prose-comments; cron cadence dropped
10s -> 5s to match the inbounds page UX.
- README badges and Go module path bumped v2 -> v3 to match module rename.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 14:25:23 +00:00
[](https://pkg.go.dev/github.com/mhsanaei/3x-ui/v3)
[](https://goreportcard.com/report/github.com/mhsanaei/3x-ui/v3)
2023-04-18 07:01:52 +00:00
2025-06-05 11:56:33 +00:00
**3X-UI** — advanced, open-source web-based control panel designed for managing Xray-core server. It offers a user-friendly interface for configuring and monitoring various VPN and proxy protocols.
2023-02-23 10:40:56 +00:00
2025-06-05 11:56:33 +00:00
> [!IMPORTANT]
2025-11-01 11:48:16 +00:00
> This project is only for personal usage, please do not use it for illegal purposes, and please do not use it in a production environment.
2024-01-06 08:36:59 +00:00
2025-06-05 11:56:33 +00:00
As an enhanced fork of the original X-UI project, 3X-UI provides improved stability, broader protocol support, and additional features.
2024-01-29 20:45:20 +00:00
2025-06-05 11:56:33 +00:00
## Quick Start
2024-01-29 20:45:20 +00:00
2025-06-05 11:56:33 +00:00
```bash
2025-06-10 15:47:31 +00:00
bash < (curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
2023-05-29 13:37:03 +00:00
```
2025-06-05 11:56:33 +00:00
For full documentation, please visit the [project Wiki ](https://github.com/MHSanaei/3x-ui/wiki ).
2023-02-10 17:27:11 +00:00
2024-01-06 08:36:59 +00:00
## A Special Thanks to
- [alireza0 ](https://github.com/alireza0/ )
## Acknowledgment
- [Iran v2ray rules ](https://github.com/chocolate4u/Iran-v2ray-rules ) (License: **GPL-3.0** ): _Enhanced v2ray/xray and v2ray/xray-clients routing rules with built-in Iranian domains and a focus on security and adblocking._
2025-01-05 13:45:25 +00:00
- [Russia v2ray rules ](https://github.com/runetfreedom/russia-v2ray-rules-dat ) (License: **GPL-3.0** ): _This repository contains automatically updated V2Ray routing rules based on data on blocked domains and addresses in Russia._
2024-01-06 08:36:59 +00:00
2025-06-05 11:56:33 +00:00
## Support project
**If this project is helpful to you, you may wish to give it a**:star2:
2025-09-18 18:08:56 +00:00
< a href = "https://www.buymeacoffee.com/MHSanaei" target = "_blank" >
< img src = "./media/default-yellow.png" alt = "Buy Me A Coffee" style = "height: 70px !important;width: 277px !important;" >
< / a >
< / br >
< a href = "https://nowpayments.io/donation/hsanaei" target = "_blank" rel = "noreferrer noopener" >
< img src = "./media/donation-button-black.svg" alt = "Crypto donation button by NOWPayments" >
< / a >
2025-06-05 11:56:33 +00:00
2024-01-06 08:36:59 +00:00
## Stargazers over Time
2023-02-09 19:18:06 +00:00
2025-06-10 15:47:31 +00:00
[](https://starchart.cc/MHSanaei/3x-ui)