base on An advanced Web Panel • Built for SagerNet/Sing-Box # S-UI **An Advanced Web Panel • Built on SagerNet/Sing-Box** ![](https://img.shields.io/github/v/release/alireza0/s-ui.svg) ![S-UI Docker pull](https://img.shields.io/docker/pulls/alireza7/s-ui.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/alireza0/s-ui)](https://goreportcard.com/report/github.com/alireza0/s-ui) [![Downloads](https://img.shields.io/github/downloads/alireza0/s-ui/total.svg)](https://img.shields.io/github/downloads/alireza0/s-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) > **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: **Want to contribute?** See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, coding conventions, testing, and the pull request process. [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/alireza7) <a href="https://nowpayments.io/donation/alireza7" target="_blank" rel="noreferrer noopener"> <img src="https://nowpayments.io/images/embeds/donation-button-white.svg" alt="Crypto donation button by NOWPayments"> </a> ## Quick Overview | Features | Enable? | | -------------------------------------- | :----------------: | | Multi-Protocol | :heavy_check_mark: | | Multi-Language | :heavy_check_mark: | | Multi-Client/Inbound | :heavy_check_mark: | | Advanced Traffic Routing Interface | :heavy_check_mark: | | Client & Traffic & System Status | :heavy_check_mark: | | Subscription Link (link/json/clash + info)| :heavy_check_mark: | | Dark/Light Theme | :heavy_check_mark: | | API Interface | :heavy_check_mark: | ## Supported Platforms | Platform | Architecture | Status | |----------|--------------|---------| | Linux | amd64, arm64, armv7, armv6, armv5, 386, s390x | ✅ Supported | | Windows | amd64, 386, arm64 | ✅ Supported | | macOS | amd64, arm64 | 🚧 Experimental | ## Screenshots !["Main"](https://github.com/alireza0/s-ui-frontend/raw/main/media/main.png) [Other UI Screenshots](https://github.com/alireza0/s-ui-frontend/blob/main/screenshots.md) ## API Documentation [API-Documentation Wiki](https://github.com/alireza0/s-ui/wiki/API-Documentation) ## Default Installation Information - Panel Port: 2095 - Panel Path: /app/ - Subscription Port: 2096 - Subscription Path: /sub/ - User/Password: admin ## Install & Upgrade to Latest Version ### Linux/macOS ```sh bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh) ``` ### Windows 1. Download the latest Windows release from [GitHub Releases](https://github.com/alireza0/s-ui/releases/latest) 2. Extract the ZIP file 3. Run `install-windows.bat` as Administrator 4. Follow the installation wizard ## Install legacy Version **Step 1:** To install your desired legacy version, add the version to the end of the installation command. e.g., ver `1.0.0`: ```sh VERSION=1.0.0 && bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/$VERSION/install.sh) $VERSION ``` ## Manual installation ### Linux/macOS 1. Get the latest version of S-UI based on your OS/Architecture from GitHub: [https://github.com/alireza0/s-ui/releases/latest](https://github.com/alireza0/s-ui/releases/latest) 2. **OPTIONAL** Get the latest version of `s-ui.sh` [https://raw.githubusercontent.com/alireza0/s-ui/master/s-ui.sh](https://raw.githubusercontent.com/alireza0/s-ui/master/s-ui.sh) 3. **OPTIONAL** Copy `s-ui.sh` to /usr/bin/ and run `chmod +x /usr/bin/s-ui`. 4. Extract s-ui tar.gz file to a directory of your choice and navigate to the directory where you extracted the tar.gz file. 5. Copy *.service files to /etc/systemd/system/ and run `systemctl daemon-reload`. 6. Enable autostart and start S-UI service using `systemctl enable s-ui --now` 7. Start sing-box service using `systemctl enable sing-box --now` ### Windows 1. Get the latest Windows version from GitHub: [https://github.com/alireza0/s-ui/releases/latest](https://github.com/alireza0/s-ui/releases/latest) 2. Download the appropriate Windows package (e.g., `s-ui-windows-amd64.zip`) 3. Extract the ZIP file to a directory of your choice 4. Run `install-windows.bat` as Administrator 5. Follow the installation wizard 6. Access the panel at http://localhost:2095/app ## Uninstall S-UI ```sh sudo -i systemctl disable s-ui --now rm -f /etc/systemd/system/sing-box.service systemctl daemon-reload rm -fr /usr/local/s-ui rm /usr/bin/s-ui ``` ## Install using Docker <details> <summary>Click for details</summary> ### Usage **Step 1:** Install Docker ```shell curl -fsSL https://get.docker.com | sh ``` **Step 2:** Install S-UI > Docker compose method ```shell mkdir s-ui && cd s-ui wget -q https://raw.githubusercontent.com/alireza0/s-ui/master/docker-compose.yml docker compose up -d ``` > Use docker ```shell mkdir s-ui && cd s-ui docker run -itd \ -p 2095:2095 -p 2096:2096 -p 443:443 -p 80:80 \ -v $PWD/db/:/app/db/ \ -v $PWD/cert/:/root/cert/ \ --name s-ui --restart=unless-stopped \ alireza7/s-ui:latest ``` > Build your own image ```shell git clone https://github.com/alireza0/s-ui git submodule update --init --recursive docker build -t s-ui . ``` </details> ## Manual run ( contribution ) <details> <summary>Click for details</summary> ### Build and run whole project ```shell ./runSUI.sh ``` ### Clone the repository ```shell # clone repository git clone https://github.com/alireza0/s-ui # clone submodules git submodule update --init --recursive ``` ### - Frontend Visit [s-ui-frontend](https://github.com/alireza0/s-ui-frontend) for frontend code ### - Backend > Please build frontend once before! To build backend: ```shell # remove old frontend compiled files rm -fr web/html/* # apply new frontend compiled files cp -R frontend/dist/ web/html/ # build go build -o sui main.go ``` To run backend (from root folder of repository): ```shell ./sui ``` </details> ## Languages - English - Farsi - Vietnamese - Chinese (Simplified) - Chinese (Traditional) - Russian ## Features - Supported protocols: - General: Mixed, SOCKS, HTTP, HTTPS, Direct, Redirect, TProxy - V2Ray based: VLESS, VMess, Trojan, Shadowsocks - Other protocols: ShadowTLS, Hysteria, Hysteria2, Naive, TUIC - Supports XTLS protocols - An advanced interface for routing traffic, incorporating PROXY Protocol, External, and Transparent Proxy, SSL Certificate, and Port - An advanced interface for inbound and outbound configuration - Clients’ traffic cap and expiration date - Displays online clients, inbounds and outbounds with traffic statistics, and system status monitoring - Subscription service with ability to add external links and subscription - HTTPS for secure access to the web panel and subscription service (self-provided domain + SSL certificate) - Dark/Light theme ## Environment Variables <details> <summary>Click for details</summary> ### Usage | Variable | Type | Default | | -------------- | :--------------------------------------------: | :------------ | | SUI_LOG_LEVEL | `"debug"` \| `"info"` \| `"warn"` \| `"error"` | `"info"` | | SUI_DEBUG | `boolean` | `false` | | SUI_BIN_FOLDER | `string` | `"bin"` | | SUI_DB_FOLDER | `string` | `"db"` | | SINGBOX_API | `string` | - | </details> ## SSL Certificate <details> <summary>Click for details</summary> ### Certbot ```bash snap install core; snap refresh core snap install --classic certbot ln -s /snap/bin/certbot /usr/bin/certbot certbot certonly --standalone --register-unsafely-without-email --non-interactive --agree-tos -d <Your Domain Name> ``` </details> ## Stargazers over Time [![Stargazers over time](https://starchart.cc/alireza0/s-ui.svg)](https://starchart.cc/alireza0/s-ui) ", Assign "at most 3 tags" to the expected json: {"id":"7825","tags":[]} "only from the tags list I provide: []" returns me the "expected json"