diff --git a/README.md b/README.md
index eedab67d..4ccaa4ef 100644
--- a/README.md
+++ b/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
Click for details
@@ -183,7 +183,7 @@ certbot certonly --standalone --register-unsafely-without-email --non-interactiv
-## Tg robot use
+## Telegram Bot
Click for details
@@ -224,18 +224,18 @@ Reference syntax:
- Multi language bot
-# 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
-# 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)
diff --git a/web/assets/codemirror/codemirror.js b/web/assets/codemirror/codemirror.js
index 156fc307..ef1810fa 100644
--- a/web/assets/codemirror/codemirror.js
+++ b/web/assets/codemirror/codemirror.js
@@ -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")};
diff --git a/web/assets/codemirror/xq.css b/web/assets/codemirror/xq.css
index db1d24d6..a47b114b 100644
--- a/web/assets/codemirror/xq.css
+++ b/web/assets/codemirror/xq.css
@@ -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; }
\ No newline at end of file
+.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; }
diff --git a/web/assets/css/custom.css b/web/assets/css/custom.css
index cee6b026..5a727d99 100644
--- a/web/assets/css/custom.css
+++ b/web/assets/css/custom.css
@@ -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;
-}
\ No newline at end of file
+ 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%);
+}
diff --git a/x-ui.sh b/x-ui.sh
index 46899692..97517fc0 100644
--- a/x-ui.sh
+++ b/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
}