mirror of
https://github.com/alireza0/x-ui.git
synced 2026-03-18 14:55:49 +00:00
Merge branch 'main' of https://github.com/alireza0/x-ui
This commit is contained in:
48
README.md
48
README.md
@@ -1,4 +1,4 @@
|
||||
# x-ui
|
||||
# X-UI
|
||||
|
||||

|
||||

|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
> **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**
|
||||
|
||||
xray panel supporting multi-protocol, **Multi-lang (English,Farsi,Chinese,Russian)**
|
||||
**Xray Panel Supporting Multi-Protocol, Multi-lang (English,Farsi,Chinese,Russian)**
|
||||
|
||||
| Features | Enable? |
|
||||
| ------------------------------------ | :----------------: |
|
||||
@@ -32,13 +32,13 @@ xray panel supporting multi-protocol, **Multi-lang (English,Farsi,Chinese,Russia
|
||||
- Tron USDT (TRC20): `TYTq73Gj6dJ67qe58JVPD9zpjW2cc9XgVz`
|
||||
- Tezos (XTZ): tz2Wnh2SsY1eezXrcLChu6idWpgdHzUFQcts
|
||||
|
||||
# Install & Upgrade to latest version
|
||||
## Install & Upgrade to latest Version
|
||||
|
||||
```sh
|
||||
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.sh)
|
||||
```
|
||||
|
||||
## 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`:
|
||||
|
||||
@@ -46,7 +46,7 @@ To install your desired version you can add the version to the end of install co
|
||||
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.sh) 0.5.2
|
||||
```
|
||||
|
||||
## 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`
|
||||
2. Then upload the compressed package to the server's `/root/` directory and login to the server with user `root`
|
||||
@@ -68,15 +68,15 @@ systemctl enable x-ui
|
||||
systemctl restart x-ui
|
||||
```
|
||||
|
||||
## Install using docker
|
||||
## Install Using Docker
|
||||
|
||||
1. install docker
|
||||
1. Install Docker
|
||||
|
||||
```shell
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
```
|
||||
|
||||
2. install x-ui
|
||||
2. Install X-UI
|
||||
|
||||
```shell
|
||||
mkdir x-ui && cd x-ui
|
||||
@@ -95,7 +95,7 @@ docker run -itd \
|
||||
docker build -t x-ui .
|
||||
```
|
||||
|
||||
# Features
|
||||
## Features
|
||||
|
||||
- System Status Monitoring
|
||||
- Search within all inbounds and clients
|
||||
@@ -114,14 +114,14 @@ docker build -t x-ui .
|
||||
- Support export/import database from panel
|
||||
- Show online users
|
||||
|
||||
## suggestion system
|
||||
## Recommended OS
|
||||
|
||||
- CentOS 8+
|
||||
- Ubuntu 20+
|
||||
- Debian 10+
|
||||
- Fedora 36+
|
||||
|
||||
## API routes
|
||||
## API Routes
|
||||
|
||||
- `/login` with `PUSH` user data: `{username: '', password: ''}` for login
|
||||
- `/xui/API/inbounds` base for following actions:
|
||||
@@ -150,7 +150,7 @@ docker build -t x-ui .
|
||||
- `client.password` for TROJAN
|
||||
- `client.email` for Shadowsocks
|
||||
|
||||
# Environment Variables
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Type | Default |
|
||||
| -------------- | :--------------------------------------------: | :------------ |
|
||||
@@ -159,14 +159,14 @@ docker build -t x-ui .
|
||||
| XUI_BIN_FOLDER | `string` | `"bin"` |
|
||||
| XUI_DB_FOLDER | `string` | `"/etc/x-ui"` |
|
||||
|
||||
# Screenshots
|
||||
## Screenshots
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## SSL certificate application
|
||||
## SSL Certificate Application
|
||||
|
||||
<details>
|
||||
<summary>Click for details</summary>
|
||||
@@ -183,7 +183,7 @@ certbot certonly --standalone --register-unsafely-without-email --non-interactiv
|
||||
|
||||
</details>
|
||||
|
||||
## Tg robot use
|
||||
## Telegram Bot
|
||||
|
||||
<details>
|
||||
<summary>Click for details</summary>
|
||||
@@ -224,18 +224,18 @@ Reference syntax:
|
||||
- Multi language bot
|
||||
</details>
|
||||
|
||||
# T-Shoots:
|
||||
## T-Shoots
|
||||
|
||||
**If you upgrade from an old version or other forks, for enable traffic for users you should do :**
|
||||
**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:**
|
||||
|
||||
find this in config :
|
||||
1. Find this section in config file
|
||||
|
||||
```json
|
||||
"policy": {
|
||||
"system": {
|
||||
```
|
||||
|
||||
**and add this just after ` "policy": {` :**
|
||||
2. Add below section just after ` "policy": {` :
|
||||
|
||||
```json
|
||||
"levels": {
|
||||
@@ -246,7 +246,7 @@ find this in config :
|
||||
},
|
||||
```
|
||||
|
||||
**the final output is like :**
|
||||
- The final output is like:
|
||||
|
||||
```json
|
||||
"policy": {
|
||||
@@ -265,20 +265,20 @@ find this in config :
|
||||
"routing": {
|
||||
```
|
||||
|
||||
restart panel
|
||||
3. Save and restart panel
|
||||
|
||||
</details>
|
||||
|
||||
# a special thanks to
|
||||
## a Special Thanks to
|
||||
|
||||
- [HexaSoftwareTech](https://github.com/HexaSoftwareTech/)
|
||||
- [MHSanaei](https://github.com/MHSanaei)
|
||||
|
||||
# Acknowledgment
|
||||
## Acknowledgment
|
||||
|
||||
- [Iran Hosted Domains](https://github.com/bootmortis/iran-hosted-domains) (License: **MIT**): _A comprehensive list of Iranian domains and services that are hosted within the country._
|
||||
- [PersianBlocker](https://github.com/MasterKia/PersianBlocker) (License: **AGPLv3**): _An optimal and extensive list to block ads and trackers on Persian websites._
|
||||
|
||||
## Stargazers over time
|
||||
## Stargazers over Time
|
||||
|
||||
[](https://starchart.cc/alireza0/x-ui)
|
||||
|
||||
@@ -1741,7 +1741,7 @@
|
||||
// is needed on Webkit to be able to get line-level bounding
|
||||
// rectangles for it (in measureChar).
|
||||
var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null);
|
||||
var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content,
|
||||
var builder = {pre: eltP("pre", [content], "CodeMirror-line Line-Hover"), content: content,
|
||||
col: 0, pos: 0, cm: cm,
|
||||
trailingSpace: false,
|
||||
splitSpaces: cm.getOption("lineWrapping")};
|
||||
|
||||
@@ -21,17 +21,19 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
.cm-s-xq.CodeMirror { border-radius: 1.5rem; border: 1px solid #d9d9d9; height: auto; }
|
||||
.cm-s-xq.CodeMirror:hover { background-color: #edf4fa; border-color: #2f67c2; transition: all .3s; }
|
||||
.cm-s-xq .CodeMirror-gutters { border-right: 1px solid #ddd; background-color: rgb(221 221 221 / 20%); white-space: nowrap; }
|
||||
.cm-s-xq span.cm-keyword { line-height: 1em; font-weight: bold; color: #5A5CAD; }
|
||||
.cm-s-xq span.cm-atom { color: #6C8CD5; }
|
||||
.cm-s-xq span.cm-number { color: #164; }
|
||||
.cm-s-xq span.cm-atom { color: #7A316F; font-weight:bold; }
|
||||
.cm-s-xq span.cm-number { color: #389E0D; }
|
||||
.cm-s-xq span.cm-def { text-decoration:underline; }
|
||||
.cm-s-xq span.cm-variable { color: black; }
|
||||
.cm-s-xq span.cm-variable-2 { color:black; }
|
||||
.cm-s-xq span.cm-variable-3, .cm-s-xq span.cm-type { color: black; }
|
||||
.cm-s-xq span.cm-property {}
|
||||
.cm-s-xq span.cm-operator {}
|
||||
.cm-s-xq span.cm-comment { color: #0080FF; font-style: italic; }
|
||||
.cm-s-xq span.cm-string { color: #e04141; }
|
||||
.cm-s-xq span.cm-comment { color: #bbbbbb; font-style: italic; }
|
||||
.cm-s-xq span.cm-string { color: #0e49b5; }
|
||||
.cm-s-xq span.cm-meta { color: yellow; }
|
||||
.cm-s-xq span.cm-qualifier { color: grey; }
|
||||
.cm-s-xq span.cm-builtin { color: #7EA656; }
|
||||
@@ -44,18 +46,19 @@ THE SOFTWARE.
|
||||
.cm-s-xq .CodeMirror-matchingbracket { outline:1px solid grey;color:black !important;background:yellow; }
|
||||
|
||||
.dark .cm-s-xq.CodeMirror { background-color: #222D42; border-color: #2c3950; color: rgb(255 255 255 / 65%); }
|
||||
.dark .cm-s-xq div.CodeMirror-selected { background: #27007A; }
|
||||
.dark .cm-s-xq.CodeMirror:hover { background-color: #0e2040; border-color: #0e49b5; transition: all .3s; }
|
||||
.dark .cm-s-xq div.CodeMirror-selected { background: rgba(0, 0, 0, 0.5); }
|
||||
.dark .cm-s-xq .CodeMirror-line::selection, .dark .cm-s-xq .CodeMirror-line > span::selection, .dark .cm-s-xq .CodeMirror-line > span > span::selection { background: rgba(39, 0, 122, 0.99); }
|
||||
.dark .cm-s-xq .CodeMirror-line::-moz-selection, .dark .cm-s-xq .CodeMirror-line > span::-moz-selection, .dark .cm-s-xq .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 0, 122, 0.99); }
|
||||
.dark .cm-s-xq .CodeMirror-gutters { background: #222D42; border-right: 1px solid #2c3950; }
|
||||
.dark .cm-s-xq .CodeMirror-gutters { background: rgb(0 0 0 / 30%); border-right: 1px solid #2c3950; }
|
||||
.dark .cm-s-xq .CodeMirror-guttermarker { color: #FFBD40; }
|
||||
.dark .cm-s-xq .CodeMirror-guttermarker-subtle { color: #f8f8f8; }
|
||||
.dark .cm-s-xq .CodeMirror-linenumber { color: #f8f8f8; }
|
||||
.dark .cm-s-xq .CodeMirror-guttermarker-subtle { color: rgb(255 255 255 / 70%); }
|
||||
.dark .cm-s-xq .CodeMirror-linenumber { color: rgb(255 255 255 / 50%); }
|
||||
.dark .cm-s-xq .CodeMirror-cursor { border-left: 1px solid white; }
|
||||
|
||||
.dark .cm-s-xq span.cm-keyword { color: #FFBD40; }
|
||||
.dark .cm-s-xq span.cm-atom { color: #6C8CD5; }
|
||||
.dark .cm-s-xq span.cm-number { color: #164; }
|
||||
.dark .cm-s-xq span.cm-atom { color: #c099ff; }
|
||||
.dark .cm-s-xq span.cm-number { color: #9ccfd8; }
|
||||
.dark .cm-s-xq span.cm-def { color: #FFF; text-decoration:underline; }
|
||||
.dark .cm-s-xq span.cm-variable { color: #FFF; }
|
||||
.dark .cm-s-xq span.cm-variable-2 { color: #EEE; }
|
||||
@@ -63,7 +66,7 @@ THE SOFTWARE.
|
||||
.dark .cm-s-xq span.cm-property {}
|
||||
.dark .cm-s-xq span.cm-operator {}
|
||||
.dark .cm-s-xq span.cm-comment { color: gray; }
|
||||
.dark .cm-s-xq span.cm-string { color: #9FEE00; }
|
||||
.dark .cm-s-xq span.cm-string { color: #f6c177 }
|
||||
.dark .cm-s-xq span.cm-meta { color: yellow; }
|
||||
.dark .cm-s-xq span.cm-qualifier { color: #FFF700; }
|
||||
.dark .cm-s-xq span.cm-builtin { color: #30a; }
|
||||
@@ -73,4 +76,11 @@ THE SOFTWARE.
|
||||
.dark .cm-s-xq span.cm-error { color: #e04141; }
|
||||
|
||||
.dark .cm-s-xq .CodeMirror-activeline-background { background: #27282E; }
|
||||
.dark .cm-s-xq .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
|
||||
.dark .cm-s-xq .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
|
||||
|
||||
.Line-Hover{transition: all .2s;}
|
||||
.Line-Hover:hover{ background-color: rgb(4 48 143 / 5%) !important; }
|
||||
.dark .Line-Hover:hover{ background-color: rgb(0 0 0 / 20%) !important; }
|
||||
|
||||
.CodeMirror-foldmarker { color: #fc8800; text-shadow: #ffd8aa 1px 1px 2px, #ffd8aa -1px -1px 2px, #ffd8aa 1px -1px 2px, #ffd8aa -1px 1px 2px; font-family: arial; line-height: .3; cursor: pointer; }
|
||||
.dark .CodeMirror-foldmarker { color: #ffffff; text-shadow: #bbb 1px 1px 2px, #bbb -1px -1px 2px, #bbb 1px -1px 2px, #bbb -1px 1px 2px; font-family: arial; line-height: .3; cursor: pointer; }
|
||||
|
||||
@@ -26,7 +26,7 @@ html {
|
||||
|
||||
::selection {
|
||||
color: #0e49b5;
|
||||
background-color: #0e49b530;
|
||||
background-color: #d2ddf1;
|
||||
}
|
||||
|
||||
#app {
|
||||
@@ -750,5 +750,47 @@ style attribute {
|
||||
}
|
||||
|
||||
.dark .ant-spin-dot-item {
|
||||
background-color: #ffffffff;
|
||||
}
|
||||
background-color: #ffffff;
|
||||
|
||||
}
|
||||
|
||||
.ant-radio-button-wrapper {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.ant-menu {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.ant-calendar-date:hover {
|
||||
background: #dae9f5;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.ant-calendar-date:active {
|
||||
background: #dae9f5;
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.ant-calendar-today .ant-calendar-date {
|
||||
color: #0e49b5;
|
||||
font-weight: 700;
|
||||
border-color: #0e49b5
|
||||
}
|
||||
|
||||
.dark .ant-calendar-today .ant-calendar-date {
|
||||
color: #ffffff;
|
||||
font-weight: 700;
|
||||
border-color: #0e49b5
|
||||
}
|
||||
|
||||
.ant-calendar-selected-day .ant-calendar-date {
|
||||
background: #0E49B5;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
li.ant-select-dropdown-menu-item:empty:after {
|
||||
content: "None";
|
||||
font-weight:normal;
|
||||
color:rgb(0 0 0 / 25%);
|
||||
}
|
||||
|
||||
34
x-ui.sh
34
x-ui.sh
@@ -613,27 +613,29 @@ ssl_cert_issue_CF() {
|
||||
}
|
||||
|
||||
show_usage() {
|
||||
echo "x-ui control menu usages: "
|
||||
echo "X-UI Control Menu Usage"
|
||||
echo "------------------------------------------"
|
||||
echo "x-ui - Enter Admin menu"
|
||||
echo "x-ui start - Start x-ui"
|
||||
echo "x-ui stop - Stop x-ui"
|
||||
echo "x-ui restart - Restart x-ui"
|
||||
echo "x-ui status - Show x-ui status"
|
||||
echo "x-ui enable - Enable x-ui on system startup"
|
||||
echo "x-ui disable - Disable x-ui on system startup"
|
||||
echo "x-ui log - Check x-ui logs"
|
||||
echo "x-ui update - Update x-ui"
|
||||
echo "x-ui install - Install x-ui"
|
||||
echo "x-ui uninstall - Uninstall x-ui"
|
||||
echo "SUBCOMMANDS:"
|
||||
echo "x-ui - Admin management script"
|
||||
echo "x-ui start - Start X-UI"
|
||||
echo "x-ui stop - Stop X-UI"
|
||||
echo "x-ui restart - Restart X-UI"
|
||||
echo "x-ui status - Current X-UI status"
|
||||
echo "x-ui enable - Enable X-UI on system startup"
|
||||
echo "x-ui disable - Disable X-UI on system startup"
|
||||
echo "x-ui log - Check X-UI logs"
|
||||
echo "x-ui update - Update X-UI"
|
||||
echo "x-ui install - Install X-UI"
|
||||
echo "x-ui uninstall - Uninstall X-UI"
|
||||
echo "x-ui help - Control menu usage"
|
||||
echo "------------------------------------------"
|
||||
}
|
||||
|
||||
show_menu() {
|
||||
echo -e "
|
||||
${green}X-UI Panel Management Script${plain}
|
||||
${green}X-UI Admin Management Script ${plain}
|
||||
————————————————
|
||||
${green}0.${plain} Exit Script
|
||||
${green}0.${plain} Exit
|
||||
————————————————
|
||||
${green}1.${plain} Install X-UI
|
||||
${green}2.${plain} Update X-UI
|
||||
@@ -646,7 +648,7 @@ show_menu() {
|
||||
————————————————
|
||||
${green}8.${plain} Start X-UI
|
||||
${green}9.${plain} Stop X-UI
|
||||
${green}10.${plain} Reboot X-UI
|
||||
${green}10.${plain} Restart X-UI
|
||||
${green}11.${plain} Check X-UI State
|
||||
${green}12.${plain} Check X-UI Logs
|
||||
————————————————
|
||||
@@ -717,7 +719,7 @@ show_menu() {
|
||||
ssl_cert_issue_CF
|
||||
;;
|
||||
*)
|
||||
LOGE "Please enter the correct number [0-16]"
|
||||
LOGE "Please enter the correct number [0-17]"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user