Disclaimer: This project is only for personal learning and communication, please do not use it for illegal purposes, please do not use it in a production environment
If you think this project is helpful to you, you may wish to give a🌟
Supports XTLS protocols, including Vision and REALITY
An advanced interface for routing traffic, incorporating PROXY Protocol, Reverse, External, and Transparent Proxy, along with Multi-Domain, SSL Certificate, and Port
Support auto generate Cloudflare WARP using Wireguard outbound
An interactive JSON interface for Xray template configuration
An advanced interface for inbound and outbound configuration
Clients’ traffic cap and expiration date based on first use
Displays online clients, traffic statistics, and system status monitoring
Deep database search
Displays depleted clients with expired dates or exceeded traffic cap
Subscription service with (multi)link
Importing and exporting databases
One-Click SSL certificate application and automatic renewal
HTTPS for secure access to the web panel and subscription service (self-provided domain + SSL certificate)
Dark/Light theme
Preview
Click to expand
API Routes
Click for details
Usage
/login with PUSH user data: {username: '', password: ''} for login
/xui/API/inbounds base for following actions:
Method
Path
Action
GET
"/"
Get all inbounds
GET
"/get/:id"
Get inbound with inbound.id
POST
"/add"
Add inbound
POST
"/del/:id"
Delete inbound
POST
"/update/:id"
Update inbound
POST
"/addClient/"
Add client to inbound
POST
"/:id/delClient/:clientId"
Delete client by clientId*
POST
"/updateClient/:clientId"
Update client by clientId*
GET
"/getClientTraffics/:email"
Get client's traffic
GET
"/getClientTrafficsById/:id"
Get client's traffic By ID
POST
"/:id/resetClientTraffic/:email"
Reset client's traffic
POST
"/resetAllTraffics"
Reset traffics of all inbounds
POST
"/resetAllClientTraffics/:id"
Reset inbound clients traffics (-1: all)
POST
"/delDepletedClients/:id"
Delete inbound depleted clients (-1: all)
POST
"/onlines"
Get online users ( list of emails )
*- The field clientId should be filled by:
client.id for VMess and VLESS
client.password for Trojan
client.email for Shadowsocks
/xui/API/server base for following actions:
Method
Path
Action
GET
"/status"
Get server status
GET
"/getDb"
Get database backup
GET
"/createbackup"
Telegram bot sends backup to admins
GET
"/getConfigJson"
Get config.json
GET
"/getXrayVersion"
Get last xray versions
GET
"/getNewVlessEnc"
Get new vless enc
GET
"/getNewX25519Cert"
Get new x25519 cert
GET
"/getNewmldsa65"
Get new mldsa65
POST
"/getNewEchCert"
Get new ech cert
POST
"/importDB"
Import database to x-ui
POST
"/stopXrayService"
Stop xray service
POST
"/restartXrayService"
Restart xray service
POST
"/installXray/:version"
Install specific version of xray
POST
"/logs/:count"
Get panel/xray logs
Environment Variables
Click for details
Usage
Variable
Type
Default
XUI_LOG_LEVEL
"debug" | "info" | "warn" | "error"
"info"
XUI_DEBUG
boolean
false
XUI_BIN_FOLDER
string
"bin"
XUI_DB_FOLDER
string
"/etc/x-ui"
SSL Certificate
Click for details
Cloudflare
The admin management script has a built-in SSL certificate application for Cloudflare. To use this script to apply for a certificate, you need the following:
Cloudflare registered email
Cloudflare Global API Key
The domain name has been resolved to the current server through cloudflare
Step 1: Run thex-uicommand on the server's terminal and then choose 17. Then enter the information as requested.
The web panel supports daily traffic, panel login, database backup, system status, client info, and other notification and functions through the Telegram Bot. To use the bot, you need to set the bot-related parameters in the panel, including:
Telegram Token
Admin Chat ID(s)
Notification Time (in cron syntax)
Database Backup
CPU Load Threshold Notification
Crontab Time Format
Reference syntax:
*/30 * * * * - Notify every 30 minutes, every hour
30 * * * * * - Notify at the 30th second of each minute
0 */10 * * * * - Notify at the start of every 10 minutes
Advance notifications for expiration time and traffic
Client reporting menu with Telegram ID or username in configurations
Anonymous traffic reports, search by UUID (VLESS/VMess) or Password (Trojan/Shadowsocks)
Menu-based bot
Client search by email (admin only)
Inbound checks
System status check
Depleted client checks
Backup on request and in periodic reports
Multilingual support
Troubleshoots
Click for details
Enable Traffic Usage
If you are upgrading from an older version or other forks and find that data traffic usage for clients may not work by default, follow the steps below to enable it:
Step 1: Locate the Configuration Section
Find the following section in the config file:
"policy": {
"system": {
// Other policy configurations
}
},
Loyalsoldier (License: GPL-3.0): The enhanced version of V2Ray routing rule.
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.