2026-04-21 20:20:43 +02: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 19:40:24 +08:00
2024-11-21 11:18:30 -06: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 14:35:01 +03:30
2025-09-19 10:29:34 +02: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 16:25:23 +02:00
[](https://pkg.go.dev/github.com/mhsanaei/3x-ui/v3)
[](https://goreportcard.com/report/github.com/mhsanaei/3x-ui/v3)
2023-04-18 11:31:52 +04:30
2025-06-05 18:56:33 +07: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 14:10:56 +03:30
2025-06-05 18:56:33 +07:00
> [!IMPORTANT]
2025-11-01 15:18:16 +03:30
> 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 18:56:33 +07:00
As an enhanced fork of the original X-UI project, 3X-UI provides improved stability, broader protocol support, and additional features.
2024-01-30 00:15:20 +03:30
2025-06-05 18:56:33 +07:00
## Quick Start
2024-01-30 00:15:20 +03:30
2025-06-05 18:56:33 +07:00
```bash
2025-06-10 19:17:31 +03:30
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
2023-05-29 17:07:03 +03:30
```
2025-06-05 18:56:33 +07:00
For full documentation, please visit the [project Wiki ](https://github.com/MHSanaei/3x-ui/wiki ).
2023-02-10 20:57:11 +03:30
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 14:45:25 +01: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 18:56:33 +07:00
## Support project
**If this project is helpful to you, you may wish to give it a**:star2:
2025-09-18 20:08:56 +02: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 18:56:33 +07:00
2024-01-06 08:36:59 +00:00
## Stargazers over Time
2023-02-09 22:48:06 +03:30
2025-06-10 19:17:31 +03:30
[](https://starchart.cc/MHSanaei/3x-ui)