An advanced Web Panel • Built for SagerNet/Sing-Box https://t.me/XrayUI
Find a file
2026-10-15 12:56:29 +02:00
.github use github cache 2026-10-11 00:05:03 +02:00
api test: add e2e tests for API v2 and fix Windows DB cleanup 2026-10-10 18:28:11 +05:00
app cron: apply globalReset on save without restart, validate spec #1269 2026-09-29 16:31:22 +02:00
cmd migration: clear legacy ECH options from tls server and out_json #1275 2026-10-07 21:17:04 +02:00
config v1.6.4 2026-10-08 00:27:19 +02:00
core move box.ctx to box.scope.Context 2026-10-13 20:20:27 +02:00
cronjob quic: close sessions with CONNECTION_CLOSE on restart, kick and removal #1271 #1278 2026-10-07 21:31:06 +02:00
database revert migration to the old solution 2026-09-15 21:07:34 +02:00
frontend@80de052a45 sub: add custom subscription headers and enable gzip compression (#1289) 2026-10-15 12:07:30 +02:00
logger unified pipelines 2026-09-12 17:25:04 +02:00
middleware qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
network qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
service sub: add custom subscription headers and enable gzip compression (#1289) 2026-10-15 12:07:30 +02:00
sub sub: add custom subscription headers and enable gzip compression (#1289) 2026-10-15 12:07:30 +02:00
util links: accept unpadded and url-safe base64, legacy ss format #1281 2026-10-10 21:48:31 +02:00
web qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
windows Sing-Box v1.13.4 2026-03-28 20:48:57 +01:00
.dockerignore qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
.gitignore build for windows #374 2025-08-20 22:49:00 +02:00
.gitmodules
build-tags.sh unified pipelines 2026-09-12 17:25:04 +02:00
build.sh qa test and fix phases 0,1,2 2026-09-12 16:59:29 +02:00
CONTRIBUTING.md qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
docker-build-test.sh v1.4.0 2026-03-09 02:37:15 +01:00
docker-compose.yml
Dockerfile use github cache 2026-10-11 00:05:03 +02:00
Dockerfile.frontend-artifact use github cache 2026-10-11 00:05:03 +02:00
entrypoint.sh qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
go.mod bump upstream packages 2026-10-15 12:56:29 +02:00
go.sum bump upstream packages 2026-10-15 12:56:29 +02:00
install.sh fix wget error #1273 2026-09-29 16:20:06 +02:00
LICENSE
main.go timezone independancy from OS #1166 2026-07-04 14:28:51 +02:00
README.md add 3rd party app to readme: Android app #1285 & fix start history 2026-10-07 22:33:42 +02:00
runSUI.sh
s-ui.service qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00
s-ui.sh qa tests and fixes phases 3-6 2026-09-12 18:49:52 +02:00

S-UI

An Advanced Web Panel • Built on SagerNet/Sing-Box

S-UI Docker pull Go Report Card Downloads License

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🌟

Want to contribute? See CONTRIBUTING.md for development setup, coding conventions, testing, and the pull request process.

"Buy Me A Coffee"

Crypto donation button by NOWPayments

Quick Overview

Features Enable?
Multi-Protocol ✔️
Multi-Language ✔️
Multi-Client/Inbound ✔️
Advanced Traffic Routing Interface ✔️
Client & Traffic & System Status ✔️
Subscription Link (link/json/clash + info) ✔️
Dark/Light Theme ✔️
API Interface ✔️

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"

Other UI Screenshots

Documentation

Full documentation lives in the Wiki:

Page Contents
Subscription Service Subscription URLs, the three formats, response headers
Subscription JSON Template Structure and supported keys of the sing-box subscription template
Subscription Clash Template The Clash.Meta template, proxy groups and filters
API Documentation The token-authenticated REST API (/apiv2)
Configuration Objects Shape of the objects read and written through the API
Settings Reference Every panel setting and its default

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

bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)

Installer language

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 Linux

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.

Windows

  1. Download the latest Windows release from GitHub Releases
  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 v1.5.0:

VERSION=v1.5.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
  2. OPTIONAL Get the latest version of 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
  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

systemd

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

Alpine (OpenRC)

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

Install using Docker

Click for details

Usage

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 .

Manual run ( contribution )

Click for details

Build and run whole project

./runSUI.sh

Clone the repository

# clone repository
git clone https://github.com/alireza0/s-ui
# clone submodules
git submodule update --init --recursive

- Frontend

Visit s-ui-frontend for frontend code

- Backend

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

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

Click for details

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 -

SSL Certificate

Click for details

Certbot

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>

Third-party Projects

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.

Star History

Star History Chart