MHSanaei/3x-ui

▲ 440 stars today★ 47,416⑂ 12,056

Supporting multi-protocol multi-user(Vmess, Vless, Trojan, ShadowSocks, Wireguard, Hysteria, Tunnel, Mixed, HTTP, Tun, MTProto، AmneziaWG)

About MHSanaei/3x-ui

MHSanaei/3x-ui is an open-source project on GitHub, mainly written in Go. Supporting multi-protocol multi-user(Vmess, Vless, Trojan, ShadowSocks, Wireguard, Hysteria, Tunnel, Mixed, HTTP, Tun, MTProto، AmneziaWG) It currently holds 47,416 stars and 12,056 forks with 177 open issues, and was last pushed on 2026-10-03 (repository created 2023-02-09).

Project Overview

Git Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository MHSanaei/3x-ui · default branch main · size 69248 KB · watchers 298 · source: GitHub REST API and repository README

README

English | فارسی | العربية | 中文 | Español | Русский | Türkçe

https://github.com/MHSanaei/3x-ui/blob/HEAD/3x-ui

https://github.com/MHSanaei/3x-ui/blob/HEAD/Release https://github.com/MHSanaei/3x-ui/blob/HEAD/Build https://github.com/MHSanaei/3x-ui/blob/HEAD/GO Version https://github.com/MHSanaei/3x-ui/blob/HEAD/Downloads https://github.com/MHSanaei/3x-ui/blob/HEAD/License https://github.com/MHSanaei/3x-ui/blob/HEAD/Go Reference https://github.com/MHSanaei/3x-ui/blob/HEAD/Documentation

3X-UI is an advanced, open-source web control panel for managing Xray-core servers. It provides a clean, multi-language interface for deploying, configuring, and monitoring a wide range of proxy and VPN protocols — from a single VPS to multi-node deployments.

Built as an enhanced fork of the original X-UI project, 3X-UI adds broader protocol support, improved stability, per-client traffic accounting, and many quality-of-life features.

[!IMPORTANT]
This project is intended for personal use only. Please do not use it for illegal purposes or in a production environment.

Features

Screenshots

Click to expand

https://github.com/MHSanaei/3x-ui/blob/HEAD/Overview

https://github.com/MHSanaei/3x-ui/blob/HEAD/Inbounds

https://github.com/MHSanaei/3x-ui/blob/HEAD/Add client

https://github.com/MHSanaei/3x-ui/blob/HEAD/Configs

Quick Start

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

To install a specific version, append its tag (e.g. v3.7.0):

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) v3.7.0

To install the rolling dev build (latest per-commit pre-release from main, not a stable release), pass dev-latest:

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) dev-latest

During installation a random username, password, and access path are generated. After installation, run x-ui to open the management menu, where you can start/stop the service, view or reset your login credentials, manage SSL certificates, and more.

Every release asset is published with a .sha256 sum next to it. Both install.sh and the updater verify the archive against that sum and abort on a mismatch.

For full documentation — installation, configuration, operations, and the complete API reference — visit docs.sanaei.dev.

Unattended install

The installer also runs non-interactively for cloud-init. Set XUI_NONINTERACTIVE=1 (or pipe with no TTY) and it installs end-to-end with zero prompts, generating random credentials and writing them to /etc/x-ui/install-result.env. See deploy/ for:

Supported Platforms

Operating systems: Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap), Alpine, and Windows.

Architectures: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.

Database Options

3X-UI supports two backends, chosen during the install:

At runtime the backend is selected via environment variables (the installer writes these to /etc/default/x-ui for you):

XUI_DB_TYPE=postgres
XUI_DB_DSN=postgres://xui:[email protected]:5432/xui?sslmode=disable

Migrating an existing SQLite install to PostgreSQL

x-ui migrate-db --dsn "postgres://xui:[email protected]:5432/xui?sslmode=disable"

then set XUI_DB_TYPE and XUI_DB_DSN in /etc/default/x-ui and restart:

systemctl restart x-ui

The source SQLite file is left untouched; remove it manually once you have verified the new backend.

Docker

The default docker compose up -d keeps using SQLite. To run with the bundled PostgreSQL service, uncomment the two XUI_DB_* env lines in docker-compose.yml and start with the profile:

docker compose --profile postgres up -d

The image bundles Fail2ban (enabled by default) to enforce per-client IP limits. Fail2ban bans offenders with iptables, which requires the NET_ADMIN capability. docker-compose.yml already grants it via cap_add; if you start the container with docker run instead, add the capabilities yourself, otherwise bans are logged but never applied:

docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui

Environment Variables

| Variable | Description | Default | | --- | --- | --- | | XUI_DB_TYPE | Database backend: sqlite or postgres | sqlite | | XUI_DB_DSN | PostgreSQL connection string (when XUI_DB_TYPE=postgres) | — | | XUI_DB_FOLDER | Directory for the SQLite database file | /etc/x-ui | | XUI_DB_MAX_OPEN_CONNS | Maximum open connections (PostgreSQL pool) | — | | XUI_DB_MAX_IDLE_CONNS | Maximum idle connections (PostgreSQL pool) | — | | XUI_INIT_WEB_BASE_PATH | The initial URI path for the web panel | / | | XUI_ENABLE_FAIL2BAN | Enable Fail2ban-based IP-limit enforcement | true | | XUI_LOG_LEVEL | Log verbosity (debug, info, warning, error) | info | | XUI_DEBUG | Enable debug mode | false | | XUI_TUNNEL_HEALTH_MONITOR | Enable the tunnel health monitor (probes a URL and restarts xray after repeated failures; a restart drops all clients) | false | | XUI_TUNNEL_HEALTH_PROXY | Proxy the probe is sent through; point it at a local xray inbound so the probe tests the tunnel (e.g. socks5://127.0.0.1:1080). Empty means the probe only checks host connectivity | — | | XUI_TUNNEL_HEALTH_URL | URL probed for tunnel health | https://www.cloudflare.com/cdn-cgi/trace | | XUI_TUNNEL_HEALTH_INTERVAL | Interval between probes | 30s | | XUI_TUNNEL_HEALTH_TIMEOUT | Per-probe timeout | 10s | | XUI_TUNNEL_HEALTH_FAILURES | Consecutive failures before a restart is triggered | 3 | | XUI_TUNNEL_HEALTH_COOLDOWN | Minimum delay between consecutive restarts | 5m | | NODE_TOKEN_ENCRYPTION | Encryption at rest for node API tokens: off, migration, or required (note: no XUI_ prefix) | off | | XUI_NODE_TOKEN_KEY_FILE | JSON keyring (mode 0600) holding the active key id and its base64 32-byte keys | /etc/x-ui/node_token_key.json | | XUI_NODE_TOKEN_KEY | A single base64 32-byte key, used only when the key file cannot be loaded | — |

The complete list is on the environment variables reference.

Supported Languages

The panel UI is available in 13 languages:

English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil)

Contributing

Contributions are welcome. Please read the Contributing Guide before opening an issue or pull request.

A Special Thanks to

Acknowledgment

Community Tools

Tools and integrations built by the community around 3x-ui.

Support project

If this project is helpful to you, you may wish to give it a:star2:

https://github.com/MHSanaei/3x-ui/blob/HEAD/Buy Me A Coffee


https://github.com/MHSanaei/3x-ui/blob/HEAD/Crypto donation button by NOWPayments

Star History

https://github.com/MHSanaei/3x-ui/blob/HEAD/Star History Chart

https://github.com/MHSanaei/3x-ui/blob/HEAD/Star History Rank https://github.com/MHSanaei/3x-ui/blob/HEAD/GitHub Trending Repository of the Day

GitHub Stars & Activity

47,416Stars
12,056Forks
177Open issues
GoLanguage

GitHub Popularity

GitHub stars47,416
Forks12,056
Open issues177
Primary languageGo
LicenseGPL-3.0
Stars gained today440
Created2023-02-09
Last pushed2026-10-03

Trending History

Weekly boardrank #39 · ▲ 440 stars

Related GitHub Projects

1

tensorflow / tensorflow

C++★ 200,718⑂ 78,963▲ 24 stars
→
2

jackfrued / Python-100-Days

Jupyter Notebook★ 187,000⑂ 55,751▲ 41 stars
→
3

flutter / flutter

Dart★ 179,503⑂ 33,595▲ 164 stars
→
4

vercel / next.js

JavaScript★ 143,110⑂ 34,506▲ 79 stars
→
5

addyosmani / agent-skills

JavaScript★ 104,501⑂ 10,908▲ 750 stars
→
6

mui / material-ui

JavaScript★ 99,161⑂ 32,506▲ 15 stars
→
7

Leonxlnx / taste-skill

JavaScript★ 94,412⑂ 6,422▲ 320 stars
→
8

NationalSecurityAgency / ghidra

Java★ 82,717⑂ 9,195▲ 588 stars
→

More Trending Repositories