diff --git a/README.md b/README.md index 9a85c3e1..9e5f75ce 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# 3x-ui +# 3x-ui + > **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** [![](https://img.shields.io/github/v/release/mhsanaei/3x-ui.svg)](https://github.com/MHSanaei/3x-ui/releases) @@ -12,7 +13,8 @@ **If you think this project is helpful to you, you may wish to give a** :star2: **Buy Me a Coffee :** - - Tron USDT (TRC20): `TXncxkvhkDWGts487Pjqq1qT9JmwRUz8CC` + +- Tron USDT (TRC20): `TXncxkvhkDWGts487Pjqq1qT9JmwRUz8CC` # Install & Upgrade @@ -69,6 +71,31 @@ Example: XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go ``` +# Install with Docker + +1. Install Docker: + ```sh + bash <(curl -sSL https://get.docker.com) + ``` +2. Run 3x-ui: + + ```sh + docker compose up -d + ``` + + OR + + ```sh + docker run -itd \ + -e XRAY_VMESS_AEAD_FORCED=false \ + -v $PWD/db/:/etc/x-ui/ \ + -v $PWD/cert/:/root/cert/ \ + --network=host \ + --restart=unless-stopped \ + --name 3x-ui \ + ghcr.io/mhsanaei/3x-ui:latest + ``` + # Xray Configurations: **copy and paste to xray Configuration :** (you don't need to do this if you have a fresh install) @@ -173,19 +200,19 @@ Reference syntax: | `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/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) | -*- The field `clientId` should be filled by: +\*- The field `clientId` should be filled by: + - `client.id` for VMESS and VLESS - `client.password` for TROJAN - `client.email` for Shadowsocks - - [Postman Collection](https://gist.github.com/mehdikhody/9a862801a2e41f6b5fb6bbc7e1326044) # A Special Thanks To diff --git a/web/service/server.go b/web/service/server.go index d8a2239b..d0ca6e21 100644 --- a/web/service/server.go +++ b/web/service/server.go @@ -179,7 +179,7 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status { } func (s *ServerService) GetXrayVersions() ([]string, error) { - url := "https://api.github.com/repos/mhsanaei/Xray-core/releases" + url := "https://api.github.com/repos/MHSanaei/Xray-core/releases" resp, err := http.Get(url) if err != nil { return nil, err @@ -246,7 +246,7 @@ func (s *ServerService) downloadXRay(version string) (string, error) { } fileName := fmt.Sprintf("Xray-%s-%s.zip", osName, arch) - url := fmt.Sprintf("https://github.com/mhsanaei/Xray-core/releases/download/%s/%s", version, fileName) + url := fmt.Sprintf("https://github.com/MHSanaei/Xray-core/releases/download/%s/%s", version, fileName) resp, err := http.Get(url) if err != nil { return "", err