Update README.md (#803)

I've updated it to reflect a more comprehensive set of features for the panel.
This commit is contained in:
shahin-io
2023-12-31 16:05:13 +00:00
committed by GitHub
parent 96f9c73f5f
commit 6a39ee037d

230
README.md
View File

@@ -1,5 +1,5 @@
# X-UI # X-UI
**Advanced GUI panel based on Xray Core supports multiple protocols and languages** **An Advanced Web Panel • Built on Xray Core**
![](https://img.shields.io/github/v/release/alireza0/x-ui.svg) ![](https://img.shields.io/github/v/release/alireza0/x-ui.svg)
![](https://img.shields.io/docker/pulls/alireza7/x-ui.svg) ![](https://img.shields.io/docker/pulls/alireza7/x-ui.svg)
@@ -7,32 +7,30 @@
[![Downloads](https://img.shields.io/github/downloads/alireza0/x-ui/total.svg)](https://img.shields.io/github/downloads/alireza0/x-ui/total.svg) [![Downloads](https://img.shields.io/github/downloads/alireza0/x-ui/total.svg)](https://img.shields.io/github/downloads/alireza0/x-ui/total.svg)
[![License](https://img.shields.io/badge/license-GPL%20V3-blue.svg?longCache=true)](https://www.gnu.org/licenses/gpl-3.0.en.html) [![License](https://img.shields.io/badge/license-GPL%20V3-blue.svg?longCache=true)](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:
**If you think this project is helpful to you, you may wish to give a** :star2: <img width="120" alt="image" src="https://github.com/shahin-io/x-ui/assets/115543613/35d97be6-cc51-44a3-ae48-3b740928bd06">
**Buy Me a Coffee :** - USDT (TRC20): `TYTq73Gj6dJ67qe58JVPD9zpjW2cc9XgVz`
- USDT Tron (TRC20): `TYTq73Gj6dJ67qe58JVPD9zpjW2cc9XgVz`
- Tezos (XTZ): - Tezos (XTZ):
`tz2Wnh2SsY1eezXrcLChu6idWpgdHzUFQcts` `tz2Wnh2SsY1eezXrcLChu6idWpgdHzUFQcts`
## Quick Look ## Quick Overview
| Features | Enable? | | Features | Enable? |
| -------------------------------------- | :----------------: | | -------------------------------------- | :----------------: |
| Multi-Protocol | :heavy_check_mark: | | Multi-Protocol | :heavy_check_mark: |
| Multi-Language | :heavy_check_mark: | | Multi-Language | :heavy_check_mark: |
| Multi-User Inbounds | :heavy_check_mark: | | Multi-Client/Inbound | :heavy_check_mark: |
| Advanced Traffic Routing | :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: | | REST API | :heavy_check_mark: |
|Show Online Users | :heavy_check_mark: | | TG Bot (DB backup + admin + client) | :heavy_check_mark: |
| Manage Users Traffic Data & Expiry Date| :heavy_check_mark: | | Subscription Service (link + info) | :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: |
| Search in Deep | :heavy_check_mark: | | Search in Deep | :heavy_check_mark: |
| Dark/Light Theme | :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 ## 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 ```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 ## Manual Install & Upgrade
1. First download the latest compressed package from https://github.com/alireza0/x-ui/releases, generally choose Architecture `amd64` <details>
2. Then upload the compressed package to the server's `/root/` directory and login to the server with user `root` <summary>Click for details</summary>
### Usage
> If your server cpu architecture is not `amd64` replace another architecture **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 ```sh
ARCH=$(uname -m) ARCH=$(uname -m)
@@ -73,15 +77,22 @@ systemctl enable x-ui
systemctl restart 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 ```shell
curl -fsSL https://get.docker.com | sh curl -fsSL https://get.docker.com | sh
``` ```
2. Install X-UI **Step 2:** Install X-UI
```shell ```shell
mkdir x-ui && cd x-ui mkdir x-ui && cd x-ui
@@ -97,9 +108,11 @@ docker run -itd \
> Build your own image > Build your own image
```shell ```shell
docker build -t x-ui . docker build -t x-ui
``` ```
</details>
## Languages ## Languages
- English - English
@@ -110,22 +123,20 @@ docker build -t x-ui .
## Features ## Features
- Supported protocols: VMess, VLESS, Trojan, Shadowsocks, Dokodemo-door, SOCKS, HTTP - Supports protocols including VLESS, VMess, Trojan, Shadowsocks, Dokodemo-door, SOCKS, HTTP
- Support XTLS native encryptions (Vision, REALITY) - Supports XTLS protocols, including Vision and REALITY
- Support advanced JSON editor GUI for Xray-Core configuration - An advanced interface for routing traffic, incorporating PROXY Protocol, Reverse, External, and Transparent Proxy, along with Multi-Domain, SSL Certificate, and Port
- Support advanced GUI for routing traffic (Reverse and Transparent proxy, Multi-Domain, Multi-Certificate, Multi-Port per inbound) - An interactive JSON interface for Xray template configuration
- Support Multi-User per inbound - An advanced interface for inbound and outbound configuration
- Support applying traffic data limits and expiry dates per user/inbound - Clients traffic cap and expiration date based on first use
- Support system status monitoring - Displays online clients, traffic statistics, and system status monitoring
- Support deep database search - Deep database search
- Show traffic statistics - Displays depleted clients with expired dates or exceeded traffic cap
- Show online users - Subscription service with (multi)link
- Show users with expired date or exceeded traffic limits - Importing and exporting databases
- Support subscription (multi) link - One-Click SSL certificate application and automatic renewal
- Support import/export database - HTTPS for secure access to the web panel and subscription service (self-provided domain + SSL certificate)
- Support One-Click SSL certificate application and automatic renewal - Dark/Light theme
- Support HTTPS for panel (self-provided domain name + SSL certificate)
- Support Dark/Light theme UI
## Recommended OS ## Recommended OS
@@ -134,7 +145,7 @@ docker build -t x-ui .
- Debian 10+ - Debian 10+
- Fedora 36+ - Fedora 36+
## Screenshots ## Preview
![inbounds](./media/inbounds.png) ![inbounds](./media/inbounds.png)
![Dark inbounds](./media/inbounds-dark.png) ![Dark inbounds](./media/inbounds-dark.png)
@@ -199,6 +210,17 @@ docker build -t x-ui .
<details> <details>
<summary>Click for details</summary> <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 ### Certbot
```bash ```bash
@@ -218,40 +240,42 @@ certbot certonly --standalone --register-unsafely-without-email --non-interactiv
### Usage ### 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) 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:
Set the robot-related parameters in the panel background, including:
- Tg robot Token - Telegram Token
- Tg robot ChatId - Admin Chat ID(s)
- Tg robot cycle runtime, in crontab syntax - Notification Time (in cron syntax)
- Tg robot Expiration threshold - Database Backup
- Tg robot Traffic threshold - CPU Load Threshold Notification
- Tg robot Enable send backup in cycle runtime
- Tg robot Enable CPU usage alarm threshold **Crontab Time Format**
Reference syntax: Reference syntax:
- 30 \* \* \* \* \* //Notify at the 30s of each point - `*/30 * * * *` - Notify every 30 minutes, every hour
- 0 \*/10 \* \* \* \* //Notify at the first second of each 10 minutes - `30 * * * * *` - Notify at the 30th second of each minute
- @hourly // hourly notification - `0 */10 * * * *` - Notify at the start of every 10 minutes
- @daily // Daily notification (00:00 in the morning) - `@hourly` - Hourly notification
- @every 8h // notify every 8 hours - `@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 ### Features
- Report periodic - Periodic reporting
- Login notification - Login notifications
- CPU threshold notification - CPU load threshold notifications
- Threshold for Expiration time and Traffic to report in advance - Advance notifications for expiration time and traffic
- Support client report menu if client's telegram ID or telegram UserName added to the user's configurations - Client reporting menu with Telegram ID or username in configurations
- Support telegram traffic report searched with UUID (VMESS/VLESS) or Password (TROJAN) - anonymously - Anonymous traffic reports, search by UUID (VLESS/VMess) or Password (Trojan/Shadowsocks)
- Menu based bot - Menu-based bot
- Search client by email ( only admin ) - Client search by email (admin only)
- Check all inbounds - Inbound checks
- Check server status - System status check
- Check depleted users - Depleted client checks
- Receive backup by request and in periodic reports - Backup on request and in periodic reports
- Multi language bot - Multilingual support
</details> </details>
## Troubleshoots ## Troubleshoots
@@ -261,50 +285,58 @@ Reference syntax:
### Enable Traffic Usage ### 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**
```json Find the following section in the config file:
"policy": {
"system": {
```
2. Add below section just after ` "policy": {` :
```json
"levels": {
"0": {
"statsUserUplink": true,
"statsUserDownlink": true
}
},
```
- The final output is like:
```json ```json
"policy": { "policy": {
"levels": {
"0": {
"statsUserUplink": true,
"statsUserDownlink": true
}
},
"system": { "system": {
"statsInboundDownlink": true, // Other policy configurations
"statsInboundUplink": true
} }
}, },
"routing": {
``` ```
**Step 2: Add the Required Configuration**
3. Save and restart panel Add the following section just after `"policy": {`:
```json
"levels": {
"0": {
"statsUserUplink": true,
"statsUserDownlink": true
}
},
```
**Step 3: Final Configuration**
Your final config should look like this:
```json
"policy": {
"levels": {
"0": {
"statsUserUplink": true,
"statsUserDownlink": true
}
},
"system": {
"statsInboundDownlink": true,
"statsInboundUplink": true
}
},
"routing": {
// Other routing configurations
},
```
**Step 4: Save and Restart**
Save your changes and restart the Xray Service
</details> </details>
## a Special Thanks to ## A Special Thanks to
- [HexaSoftwareTech](https://github.com/HexaSoftwareTech/) - [HexaSoftwareTech](https://github.com/HexaSoftwareTech/)
- [MHSanaei](https://github.com/MHSanaei) - [MHSanaei](https://github.com/MHSanaei)