3x-ui + native AmneziaWG (AWG) — censorship-resistant VPN panel that 3x-ui is missing.
English | Русский | فارسی | العربية | 中文 | Español | Türkçe
Warning
For personal, non-commercial, scientific, research, and educational use only. Commercial use — including VPN resale or paid panels — requires explicit written permission under PolyForm Noncommercial 1.0.0.
One-line installation on Linux (Ubuntu / Debian / CentOS / AlmaLinux / Arch, etc.):
bash <(curl -fL https://raw.githubusercontent.com/AlexeyLCP/lucx-ui/main/install.sh)🛠️ Advanced Installation & Configuration (Cloud-Init, Docker, PostgreSQL, Env Vars)
XUI_NONINTERACTIVE=1 bash <(curl -fL https://raw.githubusercontent.com/AlexeyLCP/lucx-ui/main/install.sh)Credentials are saved to /etc/x-ui/install-result.env.
docker compose --profile postgres up -d| Variable | Description | Default |
|---|---|---|
XUI_DB_TYPE |
Database engine (sqlite or postgres) |
sqlite |
XUI_DB_DSN |
PostgreSQL DSN | — |
XUI_ENABLE_FAIL2BAN |
Enable Fail2ban IP-limiting | true |
XUI_LOG_LEVEL |
Log level (debug, info, warning, error) |
info |
3x-ui is an excellent multi-protocol panel with a modern React 19 + Ant Design 6 frontend. LucX-UI keeps everything 3x-ui offers and adds native AmneziaWG (AWG) — a censorship-resistant WireGuard fork — which 3x-ui does not have:
| Feature | 3x-ui | LucX-UI |
|---|---|---|
AmneziaWG inbound (kernel sidecar via awg-quick) |
✗ | ✓ |
| AWG CPS obfuscation (TLS / DNS / SIP / QUIC + browser fingerprints) | ✗ | ✓ |
AWG outbound — VPN chaining to upstream AWG servers (awgo-N) |
✗ | ✓ |
| AWG3 / HeaderProtectionKey | ✗ | ✓ |
| Client config version presets (1.5 / 2 / 3) | ✗ | ✓ |
| In-panel AWG diagnostics (routing / NAT / peers / handshakes) | ✗ | ✓ |
| Smart Cluster outbound links | ✗ | ✓ |
| React 19 + AntD 6 + Vite 8 + Zod 4 frontend | ✓ | ✓ (inherited) |
| All Xray protocols (VLESS / VMess / Trojan / Shadowsocks / ...) | ✓ | ✓ |
| Frictionless upstream sync (LUCX-HOOK isolation, 49 files) | — | ✓ |
A kernel sidecar (like 3x-ui's MTProto mtg) means AWG runs as a real kernel interface — not a userspace shim — so Xray routes decrypted traffic through its own TUN inbound, giving you the full routing, sniffing and domain-rule power of Xray on AWG traffic.
LucX-UI is an enhanced fork of 3x-ui (currently synced to upstream v3.6.0) that adds native AmneziaWG (AWG) support as a kernel-interface sidecar, mirroring upstream's MTProto architecture. It keeps 100% upstream compatibility through strict LUCX-HOOK code isolation.
- AWG Inbounds & Outbounds — Kernel sidecar (
awg-quick), client mode dial-out to upstream AWG servers (awgo-{id}), 10-second automatic reconcile loop, and DKMS kernel module builder. - Advanced Obfuscation — Lite/Standard/Pro presets (Jc/Jmin/Jmax/S1–S4/H1–H4), CPS packet mimicry (TLS, DNS, SIP, QUIC), and browser TLS fingerprints (Chrome, Firefox, Safari).
- AWG3 / HeaderProtectionKey — AmneziaWG 3 header protection with auto-generated 32-byte keys; server-side version ceiling gates feature emission per client.
- Client Version Presets — Generate client configs for AWG 1.5 / 2 / 3 from a single inbound — pick the format your client app understands.
- Live Signature Capture — Convert real QUIC handshakes from front domains into I1–I5 obfuscation parameters.
- Routing & Diagnostics — Dual routing modes (Kernel NAT and Route through Xray with policy routing & sniffing) + one-click in-panel diagnostics.
- Protocols: VLESS, VMess, Trojan, Shadowsocks, WireGuard, Hysteria2, HTTP, SOCKS, TUN.
- Transports & Security: REALITY, TLS, XTLS, gRPC, WebSocket, XHTTP, Fallbacks.
- Management: Traffic quotas, IP limits (Fail2ban), live online status, subscriptions, Telegram bot, REST API, Multi-node support, SQLite / PostgreSQL.
📸 Screenshots
LucX-UI shares the same Xray-core / SQLite (or PostgreSQL) database schema base as 3x-ui, and AWG tables are created automatically on first run. To install over an existing 3x-ui setup, back up your database first and run the standard install command:
cp /etc/x-ui/x-ui.db /etc/x-ui/x-ui.db.bak
bash <(curl -fL https://raw.githubusercontent.com/AlexeyLCP/lucx-ui/main/install.sh)The AWG kernel module is built automatically by the installer (bin/install-awg-module.sh, DKMS). After install, run x-ui in the console to confirm AMW kernel module version and start adding AWG inbounds from the panel.
This project is published under two licenses (details in LICENSING.md):
| Component | License |
|---|---|
| Original 3x-ui codebase | GPL-3.0 |
LucX-UI components (internal/awg/, internal/lucx/, frontend) |
PolyForm Noncommercial 1.0.0 |
- Testers & Contributors: VladufQa, Kirill Rudenko (PR #13), 302ba (Alex) (PR #24), alireza0, the 3x-ui team.
- Projects & Inspiration: 3x-ui, AmneziaVPN, pumbaX/awg-multi-script, hoaxisr/awg-manager, bogdanfinn/tls-client, refraction-networking/utls.
LucX-UI is free for personal use. You can support ongoing development:
| Method | Details |
|---|---|
| 🇷🇺 YooMoney (RUB, Russia) | yoomoney.ru/to/41001989176429 |
| 💎 USDT (TON) | UQC48dE4i35bjEU4jljx0h1CGeXMu77eKZwN5W4gbcibmqDs |
| 💠 USDT (ERC-20) | 0xA49aBc042c5BB3d682788D3DEB2eAC833343a873 |
Architecture, build & upstream sync (click to expand)
Architecture & isolation rule. All LucX code lives in isolated packages (internal/awg/, internal/lucx/); changes to upstream 3x-ui files go only inside // LUCX-HOOK / // END LUCX-HOOK markers so that every upstream release is a near-trivial port. See AGENTS.md for the full architecture map, the 10 rules, known issues and debug patterns.
Build from source (requires Go 1.23+, Node.js 20+, gcc — Linux only, CGO for SQLite):
cd frontend && npm run build && cd ..
go build -o /tmp/x-ui .
# pre-push hygiene: bin/check-lucx.sh (gofumpt on the 49 LucX-owned files)Upstream sync procedure (validated v3.5.0→v3.6.0, 103 commits / 432 files / 7 conflicts):
git fetch origin --tags
git merge --no-commit --no-ff origin/main
# resolve block by block (see AGENTS.md Rule 8) — never blanket --ours/--theirs
git grep -c "LUCX-HOOK" # compare marker counts before/after to detect lost blocks
go build ./... && go vet ./... && go test ./internal/awg/... ./internal/lucx/...