An Advanced Web Panel • Built on Xray Core
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 this project is helpful to you, you may wish to give it a🌟
- USDT (TRC20):
TTJZdUms8KQ9WMJg8i7AGxxkFBMzmsEaRN
- PAYID (Binance):
426577151
bash <(curl -Ls https://raw.githubusercontent.com/MasterHide/X-SL/main/install.sh)
Click for SSL Certificate details
To manage SSL certificates using ACME:
-
Ensure your domain is correctly resolved to the server.
-
Run the
x-ui
command in the terminal, then chooseManage SSL Certificates
. -
You will be presented with the following options:
- Get SSL: Obtain SSL certificates.
- Revoke: Revoke existing SSL certificates.
- Force Renew: Force renewal of SSL certificates.
- Show Existing Domains: Display all domain certificates available on the server.
- Set Certificate Paths for the Panel: Specify the certificate for your domain to be used by the panel.
Category | Details |
---|---|
Monitoring & Security | |
📊 System Status | Real-time monitoring of system performance and resource usage |
🚫 Torrent Blocking | Block public torrent traffic via iptables (reduce the risk) |
📉 Usage Analytics | Traffic statistics, traffic limits, and client expiration management |
Protocol Support | |
🌐 Multi-Protocol | Supports VMESS, VLESS, Trojan, Shadowsocks, Dokodemo-door, Socks, HTTP |
🔒 Advanced Protocols | XTLS native support (RPRX-Direct, Vision, REALITY) and WireGuard |
Automation | |
⚙️ Server Management | Automated server boot system and API route fixes |
🔒 SSL Management | One-click SSL certificate issuance + automatic renewal |
🔄 Data Control | Export/import database functionality |
Customization | |
🎨 Theme Support | Dark/Light mode toggle |
🛠️ Configuration | Customizable Xray templates and panel-driven config adjustments |
🔍 Search | Full search capability across inbounds and clients |
User Management | |
👥 Multi-User System | Robust multi-user support with traffic monitoring (Traffic-X) |
🔧 Admin Tools | Create user settings via API and advanced panel configurations |
Click for Reverse Proxy Configuration
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}
- Ensure that the "URI Path" in the
/sub
panel settings is the same. - The
url
in the panel settings needs to end with/
.
location /sub {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}
- Ubuntu 20.04+
- Debian 11+
- CentOS 8+
- OpenEuler 22.03+
- Fedora 36+
- Arch Linux
- Parch Linux
- Manjaro
- Armbian
- AlmaLinux 8.0+
- Rocky Linux 8+
- Oracle Linux 8+
- OpenSUSE Tubleweed
- Amazon Linux 2023
Click for default settings details
If you choose not to modify these settings, they will be generated randomly .
Default Settings for Docker:
- Username: admin
- Password: admin
- Port: 2053
You can conveniently perform database Backups and Restores directly from the panel.
- Database Path:
/etc/x-ui/x-ui.db
-
Reset Web Base Path:
- Open your terminal.
- Run the
x-ui
command. - Select the option to
Reset Web Base Path
.
-
Generate or Customize Path:
- The path will be randomly generated, or you can enter a custom path.
-
View Current Settings:
- To view your current settings, use the
x-ui settings
command in the terminal orView Current Panel Info
inx-ui
- To view your current settings, use the
- For enhanced security, use a long, random word in your URL structure.
Examples:
http://ip:port/*webbasepath*/panel
https://domain:port/*webbasepath*/panel
Click for WARP configuration details
For versions v2.1.0
and later:
WARP is built-in, and no additional installation is required. Simply turn on the necessary configuration in the panel.
Click for API routes details
/login
withPOST
user data:{username: '', password: ''}
for login/panel/api/inbounds
base for following actions:
Method | Path | Action |
---|---|---|
GET |
"/list" |
Get all inbounds |
GET |
"/get/:id" |
Get inbound with inbound.id |
GET |
"/getClientTraffics/:email" |
Get Client Traffics with email |
GET |
"/getClientTrafficsById/:id" |
Get client's traffic By ID |
GET |
"/createbackup" |
Telegram bot sends backup to admins |
POST |
"/add" |
Add inbound |
POST |
"/del/:id" |
Delete Inbound |
POST |
"/update/:id" |
Update Inbound |
POST |
"/clientIps/:email" |
Client Ip address |
POST |
"/clearClientIps/:email" |
Clear Client Ip address |
POST |
"/addClient" |
Add Client to inbound |
POST |
"/:id/delClient/:clientId" |
Delete Client by clientId* |
POST |
"/updateClient/:clientId" |
Update Client by clientId* |
POST |
"/:id/resetClientTraffic/:email" |
Reset Client's Traffic |
POST |
"/resetAllTraffics" |
Reset traffics of all inbounds |
POST |
"/resetAllClientTraffics/:id" |
Reset traffics of all clients in an inbound |
POST |
"/delDepletedClients/:id" |
Delete inbound depleted clients (-1: all) |
POST |
"/onlines" |
Get Online users ( list of emails ) |
*- The field clientId
should be filled by:
Click for environment variables details
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" |
XUI_LOG_FOLDER | string |
"/var/log" |
Example:
XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go
- 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.
- Russia v2ray rules (License: GPL-3.0): This repository contains automatically updated V2Ray routing rules based on data on blocked domains and addresses in Russia.