selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

LucX-UI logo

Self-host LucX-UI

v3.10.2-lucx.320

Advanced Xray panel with AmneziaWG kernel mode

ReleaseOpen CoreGPL-3.0
Updated8 hours ago
LanguageGo
Setup difficultyModerate
ThemeDark mode
Stars
274
Ports
2053 (Web panel and API), 2096 (Subscription endpoints (/sub/, /json/, /clash/, /awg/)), 8080 (Alternative panel port (configurable via XUI_PORT))
Docker
ghcr.io/alexeylcp/lucx-ui
Install with Docker
Overview dashboard (light theme)Overview dashboard (dark theme)Add inbound form (light theme)Add inbound form (dark theme)

What is LucX-UI?

Should you self-host LucX-UI?

LucX-UI scores 45/100 on selfhost.directory (how scoring works) and ranks #44 of 56 in VPN. It has 274 GitHub stars.

It shipped 9 stable releases in the past year. The latest, v3.10.2-lucx.320, came out on 27 October 2026.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Tailscale (84/100, 38 215 stars). It scores higher overall, so compare the two before you pick. See LucX-UI vs Tailscale side by side.

Features

  • AmneziaWG kernel mode (awg-quick)
  • Multi-node support
  • REST API
  • Smart Cluster outbound generator
  • Telegram Bot Integration
  • Traffic quotas and online status
  • Tunnel sidecars (NaiveProxy, olcRTC, qWDTT, CSQTT, mieru, TrustTunnel, AnyTLS, Telegram WEB proxy)

LucX-UI README

How to install LucX-UI

Install LucX-UI with Docker

Docker Engine
Environment variables
XUI_DB_TYPE, XUI_DB_DSN, XUI_ENABLE_FAIL2BAN, XUI_LOG_LEVEL, XUI_PORT, XUI_INIT_WEB_BASE_PATH, XUI_SKIP_HSTS, XUI_DEBUG, XUI_GOGC, XUI_MEMORY_LIMIT, XUI_PPROF, XRAY_VMESS_AEAD_FORCED

docker run -d
--name lucx-ui
--restart unless-stopped
--cap-add=NET_ADMIN
--cap-add=NET_RAW
-p 2053:2053
-v $PWD/db/:/etc/x-ui/
ghcr.io/alexeylcp/lucx-ui:latest

Requires NET_ADMIN and NET_RAW capabilities for Fail2ban and AmneziaWG kernel mode

How to configure LucX-UI

  • XRAY_VMESS_AEAD_FORCEDfalseForce VMess AEAD

    Force VMess AEAD

    values: true, false

  • XUI_BIN_FOLDER/usr/local/x-uiBinary folder

    Binary folder

  • XUI_DB_DSNPostgreSQL connection string (used when XUI_DB_TYPE=postgres)

    PostgreSQL connection string (used when XUI_DB_TYPE=postgres)

    values: postgres://user:password@host:5432/dbname?sslmode=disable

  • XUI_DB_FOLDER/etc/x-uiFolder for the SQLite database file (x-ui.db)

    Folder for the SQLite database file (x-ui.db)

  • XUI_DB_MAX_IDLE_CONNSMax idle connections in the PostgreSQL pool

    Max idle connections in the PostgreSQL pool

  • XUI_DB_MAX_OPEN_CONNSMax open connections in the PostgreSQL pool

    Max open connections in the PostgreSQL pool

  • XUI_DB_TYPEsqliteBackend database type: sqlite or postgres

    Backend database type: sqlite or postgres

    values: sqlite, postgres

  • XUI_DEBUGfalseDebug mode. Forces log level to debug, enables Gin debug mode, and ensures frontend assets are served directly from disk

    Debug mode. Forces log level to debug, enables Gin debug mode, and ensures frontend assets are served directly from disk

    values: true, false

  • XUI_ENABLE_FAIL2BANtrueEnable Fail2ban-based IP-limit enforcement

    Enable Fail2ban-based IP-limit enforcement

    values: true, false

  • XUI_GOGCGOGC value (lower = less RAM, slightly more CPU)

    GOGC value (lower = less RAM, slightly more CPU)

  • XUI_INIT_WEB_BASE_PATH/Initial web base path on FIRST launch (e.g., /panel)

    Initial web base path on FIRST launch (e.g., /panel)

  • XUI_LOG_FOLDER/var/log/x-uiLog output directory

    Log output directory

  • XUI_LOG_LEVELinfoLogging level

    Logging level

    values: debug, info, notice, warning, error

  • XUI_MEMORY_LIMITGo memory soft limit in MiB

    Go memory soft limit in MiB

  • XUI_MEMORY_RELEASE_INTERVALMinutes between FreeOSMemory calls; 0 disables

    Minutes between FreeOSMemory calls; 0 disables

  • XUI_PORTOverride the panel port (1-65535). Takes precedence over the stored setting.

    Override the panel port (1-65535). Takes precedence over the stored setting.

    values: 1-65535

  • XUI_PPROFExpose pprof on 127.0.0.1:6060 for profiling

    Expose pprof on 127.0.0.1:6060 for profiling

    values: true, false

  • XUI_SKIP_HSTSfalseSkip the HSTS header — set true when TLS is terminated by a reverse proxy

    Skip the HSTS header — set true when TLS is terminated by a reverse proxy

    values: true, false

LucX-UI releases & version history

More in Proxy

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…