An advanced Web Panel • Built for SagerNet/Sing-Box
9,871
stars
621
commits
Go
primary language
Sep 10, 2026
updated
An Advanced Web Panel • Built on SagerNet/Sing-Box
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 for development setup, coding conventions, testing, and the pull request process.
| 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: |
| Platform | Architecture | Status |
|---|---|---|
| Linux | amd64, arm64, armv7, armv6, armv5, 386, s390x | ✅ Supported |
| Windows | amd64, 386, arm64 | ✅ Supported |
| macOS | amd64, arm64 | 🚧 Experimental |

bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
The installer is available in the same six languages as the panel: en (default), fa, ru, vi, zhcn, zhtw. Choose one with the SUI_LANG environment variable (when unset, your system $LANG is used as a hint):
SUI_LANG=fa bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
Alpine uses apk and OpenRC instead of apt/systemd. The install script detects Alpine automatically and sets up an OpenRC service. Since Alpine has no bash by default, install it first:
apk add bash
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
Manage the service with OpenRC: rc-service s-ui start|stop|restart and rc-update add s-ui default.
install-windows.bat as AdministratorStep 1: To install your desired legacy version, add the version to the end of the installation command. e.g., ver v1.5.0:
VERSION=v1.5.0 && bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/$VERSION/install.sh) $VERSION
s-ui.sh https://raw.githubusercontent.com/alireza0/s-ui/master/s-ui.shs-ui.sh to /usr/bin/ and run chmod +x /usr/bin/s-ui.systemctl daemon-reload.systemctl enable s-ui --nowsystemctl enable sing-box --nows-ui-windows-amd64.zip)install-windows.bat as Administratorsudo -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
rc-service s-ui stop
rc-update del s-ui default
rm -f /etc/init.d/s-ui
rm -fr /usr/local/s-ui
rm /usr/bin/s-ui
Step 1: Install Docker
curl -fsSL https://get.docker.com | sh
Step 2: Install S-UI
Docker compose method
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
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
git clone https://github.com/alireza0/s-ui
git submodule update --init --recursive
docker build -t s-ui .
./runSUI.sh
# clone repository
git clone https://github.com/alireza0/s-ui
# clone submodules
git submodule update --init --recursive
Visit s-ui-frontend for frontend code
Please build frontend once before!
To build backend:
# 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):
./sui
| 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 | - |
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>
Community-made projects built around S-UI. These are not affiliated with or maintained by S-UI — use them at your own discretion:
Building something on top of S-UI (a Telegram bot, monitoring, automation, ...)? Open an issue/PR to get it listed here.
Go
85.9%
Shell
10.2%
Batchfile
2.9%
An advanced Web Panel • Built for SagerNet/Sing-Box
9,871
stars
621
commits
Go
primary language
Sep 10, 2026
updated
An Advanced Web Panel • Built on SagerNet/Sing-Box
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 for development setup, coding conventions, testing, and the pull request process.
| 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: |
| Platform | Architecture | Status |
|---|---|---|
| Linux | amd64, arm64, armv7, armv6, armv5, 386, s390x | ✅ Supported |
| Windows | amd64, 386, arm64 | ✅ Supported |
| macOS | amd64, arm64 | 🚧 Experimental |

bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
The installer is available in the same six languages as the panel: en (default), fa, ru, vi, zhcn, zhtw. Choose one with the SUI_LANG environment variable (when unset, your system $LANG is used as a hint):
SUI_LANG=fa bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
Alpine uses apk and OpenRC instead of apt/systemd. The install script detects Alpine automatically and sets up an OpenRC service. Since Alpine has no bash by default, install it first:
apk add bash
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
Manage the service with OpenRC: rc-service s-ui start|stop|restart and rc-update add s-ui default.
install-windows.bat as AdministratorStep 1: To install your desired legacy version, add the version to the end of the installation command. e.g., ver v1.5.0:
VERSION=v1.5.0 && bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/$VERSION/install.sh) $VERSION
s-ui.sh https://raw.githubusercontent.com/alireza0/s-ui/master/s-ui.shs-ui.sh to /usr/bin/ and run chmod +x /usr/bin/s-ui.systemctl daemon-reload.systemctl enable s-ui --nowsystemctl enable sing-box --nows-ui-windows-amd64.zip)install-windows.bat as Administratorsudo -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
rc-service s-ui stop
rc-update del s-ui default
rm -f /etc/init.d/s-ui
rm -fr /usr/local/s-ui
rm /usr/bin/s-ui
Step 1: Install Docker
curl -fsSL https://get.docker.com | sh
Step 2: Install S-UI
Docker compose method
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
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
git clone https://github.com/alireza0/s-ui
git submodule update --init --recursive
docker build -t s-ui .
./runSUI.sh
# clone repository
git clone https://github.com/alireza0/s-ui
# clone submodules
git submodule update --init --recursive
Visit s-ui-frontend for frontend code
Please build frontend once before!
To build backend:
# 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):
./sui
| 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 | - |
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>
Community-made projects built around S-UI. These are not affiliated with or maintained by S-UI — use them at your own discretion:
Building something on top of S-UI (a Telegram bot, monitoring, automation, ...)? Open an issue/PR to get it listed here.
Go
85.9%
Shell
10.2%
Batchfile
2.9%