mirror of
https://github.com/alireza0/x-ui.git
synced 2026-03-14 05:23:09 +00:00
Update README.md (#803)
I've updated it to reflect a more comprehensive set of features for the panel.
This commit is contained in:
182
README.md
182
README.md
@@ -1,5 +1,5 @@
|
||||
# X-UI
|
||||
**Advanced GUI panel based on Xray Core supports multiple protocols and languages**
|
||||
**An Advanced Web Panel • Built on Xray Core**
|
||||
|
||||

|
||||

|
||||
@@ -7,32 +7,30 @@
|
||||
[](https://img.shields.io/github/downloads/alireza0/x-ui/total.svg)
|
||||
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
|
||||
> **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**
|
||||
|
||||
> **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**:star2:
|
||||
|
||||
**Buy Me a Coffee :**
|
||||
|
||||
- USDT Tron (TRC20): `TYTq73Gj6dJ67qe58JVPD9zpjW2cc9XgVz`
|
||||
<img width="120" alt="image" src="https://github.com/shahin-io/x-ui/assets/115543613/35d97be6-cc51-44a3-ae48-3b740928bd06">
|
||||
|
||||
- USDT (TRC20): `TYTq73Gj6dJ67qe58JVPD9zpjW2cc9XgVz`
|
||||
- Tezos (XTZ):
|
||||
`tz2Wnh2SsY1eezXrcLChu6idWpgdHzUFQcts`
|
||||
|
||||
|
||||
## Quick Look
|
||||
## Quick Overview
|
||||
| Features | Enable? |
|
||||
| -------------------------------------- | :----------------: |
|
||||
| Multi-Protocol | :heavy_check_mark: |
|
||||
| Multi-Language | :heavy_check_mark: |
|
||||
| Multi-User Inbounds | :heavy_check_mark: |
|
||||
| Advanced Traffic Routing | :heavy_check_mark: |
|
||||
| Multi-Client/Inbound | :heavy_check_mark: |
|
||||
| Advanced Traffic Routing Interface | :heavy_check_mark: |
|
||||
| Client & Traffic & System Status | :heavy_check_mark: |
|
||||
| Date & Traffic Cap Based on First Use | :heavy_check_mark: |
|
||||
| REST API | :heavy_check_mark: |
|
||||
|Show Online Users | :heavy_check_mark: |
|
||||
| Manage Users Traffic Data & Expiry Date| :heavy_check_mark: |
|
||||
| Apply Expiry Date based on First Usage | :heavy_check_mark: |
|
||||
| Telegram Bot (admin + clients) | :heavy_check_mark: |
|
||||
| Database Backup using Telegram Bot | :heavy_check_mark: |
|
||||
| Subscription Link + UserInfo | :heavy_check_mark: |
|
||||
| TG Bot (DB backup + admin + client) | :heavy_check_mark: |
|
||||
| Subscription Service (link + info) | :heavy_check_mark: |
|
||||
| Search in Deep | :heavy_check_mark: |
|
||||
| Dark/Light Theme | :heavy_check_mark: |
|
||||
|
||||
@@ -45,18 +43,24 @@ bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.s
|
||||
|
||||
## Install Custom Version
|
||||
|
||||
To install your desired version you can add the version to the end of install command. Example for ver `0.5.2`:
|
||||
**Step 1:** To install your desired version, add the version to the end of the installation command. e.g., ver `1.6.4`:
|
||||
|
||||
```sh
|
||||
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.sh) 0.5.2
|
||||
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.sh) 1.6.4
|
||||
```
|
||||
|
||||
## Manual Install & Upgrade
|
||||
|
||||
1. First download the latest compressed package from https://github.com/alireza0/x-ui/releases, generally choose Architecture `amd64`
|
||||
2. Then upload the compressed package to the server's `/root/` directory and login to the server with user `root`
|
||||
<details>
|
||||
<summary>Click for details</summary>
|
||||
|
||||
> If your server cpu architecture is not `amd64` replace another architecture
|
||||
### Usage
|
||||
|
||||
**Step 1:** First download the latest compressed package from https://github.com/alireza0/x-ui/releases, generally choose Architecture `amd64`
|
||||
|
||||
**Step 2:** Then upload the compressed package to the server's `/root/` directory and login to the server with user `root`
|
||||
|
||||
> If your server CPU architecture is not `amd64` replace it with the appropriate architecture
|
||||
|
||||
```sh
|
||||
ARCH=$(uname -m)
|
||||
@@ -73,15 +77,22 @@ systemctl enable x-ui
|
||||
systemctl restart x-ui
|
||||
```
|
||||
|
||||
## Install Using Docker
|
||||
</details>
|
||||
|
||||
1. Install Docker
|
||||
## Install using Docker
|
||||
|
||||
<details>
|
||||
<summary>Click for details</summary>
|
||||
|
||||
### Usage
|
||||
|
||||
**Step 1:** Install Docker
|
||||
|
||||
```shell
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
```
|
||||
|
||||
2. Install X-UI
|
||||
**Step 2:** Install X-UI
|
||||
|
||||
```shell
|
||||
mkdir x-ui && cd x-ui
|
||||
@@ -97,9 +108,11 @@ docker run -itd \
|
||||
> Build your own image
|
||||
|
||||
```shell
|
||||
docker build -t x-ui .
|
||||
docker build -t x-ui
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Languages
|
||||
|
||||
- English
|
||||
@@ -110,22 +123,20 @@ docker build -t x-ui .
|
||||
|
||||
## Features
|
||||
|
||||
- Supported protocols: VMess, VLESS, Trojan, Shadowsocks, Dokodemo-door, SOCKS, HTTP
|
||||
- Support XTLS native encryptions (Vision, REALITY)
|
||||
- Support advanced JSON editor GUI for Xray-Core configuration
|
||||
- Support advanced GUI for routing traffic (Reverse and Transparent proxy, Multi-Domain, Multi-Certificate, Multi-Port per inbound)
|
||||
- Support Multi-User per inbound
|
||||
- Support applying traffic data limits and expiry dates per user/inbound
|
||||
- Support system status monitoring
|
||||
- Support deep database search
|
||||
- Show traffic statistics
|
||||
- Show online users
|
||||
- Show users with expired date or exceeded traffic limits
|
||||
- Support subscription (multi) link
|
||||
- Support import/export database
|
||||
- Support One-Click SSL certificate application and automatic renewal
|
||||
- Support HTTPS for panel (self-provided domain name + SSL certificate)
|
||||
- Support Dark/Light theme UI
|
||||
- Supports protocols including VLESS, VMess, Trojan, Shadowsocks, Dokodemo-door, SOCKS, HTTP
|
||||
- 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
|
||||
- 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
|
||||
|
||||
## Recommended OS
|
||||
|
||||
@@ -134,7 +145,7 @@ docker build -t x-ui .
|
||||
- Debian 10+
|
||||
- Fedora 36+
|
||||
|
||||
## Screenshots
|
||||
## Preview
|
||||
|
||||

|
||||

|
||||
@@ -199,6 +210,17 @@ docker build -t x-ui .
|
||||
<details>
|
||||
<summary>Click for details</summary>
|
||||
|
||||
### 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 the`x-ui`command on the server's terminal and then choose `17`. Then enter the information as requested.
|
||||
|
||||
|
||||
### Certbot
|
||||
|
||||
```bash
|
||||
@@ -218,40 +240,42 @@ certbot certonly --standalone --register-unsafely-without-email --non-interactiv
|
||||
|
||||
### Usage
|
||||
|
||||
X-UI supports daily traffic notification, panel login reminder and other functions through the Tg robot. To use the Tg robot, you need to apply for the specific application tutorial. You can refer to the [blog](https://coderfan.net/how-to-use-telegram-bot-to-alarm-you-when-someone-login-into-your-vps.html)
|
||||
Set the robot-related parameters in the panel background, including:
|
||||
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:
|
||||
|
||||
- Tg robot Token
|
||||
- Tg robot ChatId
|
||||
- Tg robot cycle runtime, in crontab syntax
|
||||
- Tg robot Expiration threshold
|
||||
- Tg robot Traffic threshold
|
||||
- Tg robot Enable send backup in cycle runtime
|
||||
- Tg robot Enable CPU usage alarm threshold
|
||||
- Telegram Token
|
||||
- Admin Chat ID(s)
|
||||
- Notification Time (in cron syntax)
|
||||
- Database Backup
|
||||
- CPU Load Threshold Notification
|
||||
|
||||
**Crontab Time Format**
|
||||
|
||||
Reference syntax:
|
||||
|
||||
- 30 \* \* \* \* \* //Notify at the 30s of each point
|
||||
- 0 \*/10 \* \* \* \* //Notify at the first second of each 10 minutes
|
||||
- @hourly // hourly notification
|
||||
- @daily // Daily notification (00:00 in the morning)
|
||||
- @every 8h // notify every 8 hours
|
||||
- `*/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
|
||||
- `@hourly` - Hourly notification
|
||||
- `@daily` - Daily notification (00:00 AM)
|
||||
- `@every 8h` - Notify every 8 hours
|
||||
|
||||
For more info about [Crontab](https://acquia.my.site.com/s/article/360004224494-Cron-time-string-format)
|
||||
|
||||
### Features
|
||||
|
||||
- Report periodic
|
||||
- Login notification
|
||||
- CPU threshold notification
|
||||
- Threshold for Expiration time and Traffic to report in advance
|
||||
- Support client report menu if client's telegram ID or telegram UserName added to the user's configurations
|
||||
- Support telegram traffic report searched with UUID (VMESS/VLESS) or Password (TROJAN) - anonymously
|
||||
- Menu based bot
|
||||
- Search client by email ( only admin )
|
||||
- Check all inbounds
|
||||
- Check server status
|
||||
- Check depleted users
|
||||
- Receive backup by request and in periodic reports
|
||||
- Multi language bot
|
||||
- Periodic reporting
|
||||
- Login notifications
|
||||
- CPU load threshold notifications
|
||||
- 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
|
||||
</details>
|
||||
|
||||
## Troubleshoots
|
||||
@@ -261,16 +285,22 @@ Reference syntax:
|
||||
|
||||
### Enable Traffic Usage
|
||||
|
||||
Please be aware if you upgrade from an old X-UI version or other forks, by default data traffic usage for users may not work! it's recommended to follow below steps for enabeling:
|
||||
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:
|
||||
|
||||
1. Find this section in config file
|
||||
**Step 1: Locate the Configuration Section**
|
||||
|
||||
Find the following section in the config file:
|
||||
|
||||
```json
|
||||
"policy": {
|
||||
"system": {
|
||||
// Other policy configurations
|
||||
}
|
||||
},
|
||||
```
|
||||
**Step 2: Add the Required Configuration**
|
||||
|
||||
2. Add below section just after ` "policy": {` :
|
||||
Add the following section just after `"policy": {`:
|
||||
|
||||
```json
|
||||
"levels": {
|
||||
@@ -280,8 +310,9 @@ Please be aware if you upgrade from an old X-UI version or other forks, by defau
|
||||
}
|
||||
},
|
||||
```
|
||||
**Step 3: Final Configuration**
|
||||
|
||||
- The final output is like:
|
||||
Your final config should look like this:
|
||||
|
||||
```json
|
||||
"policy": {
|
||||
@@ -291,20 +322,21 @@ Please be aware if you upgrade from an old X-UI version or other forks, by defau
|
||||
"statsUserDownlink": true
|
||||
}
|
||||
},
|
||||
|
||||
"system": {
|
||||
"statsInboundDownlink": true,
|
||||
"statsInboundUplink": true
|
||||
}
|
||||
},
|
||||
"routing": {
|
||||
// Other routing configurations
|
||||
},
|
||||
```
|
||||
**Step 4: Save and Restart**
|
||||
|
||||
3. Save and restart panel
|
||||
|
||||
Save your changes and restart the Xray Service
|
||||
</details>
|
||||
|
||||
## a Special Thanks to
|
||||
## A Special Thanks to
|
||||
|
||||
- [HexaSoftwareTech](https://github.com/HexaSoftwareTech/)
|
||||
- [MHSanaei](https://github.com/MHSanaei)
|
||||
|
||||
Reference in New Issue
Block a user