An advanced Web Panel • Built for SagerNet/Sing-Box https://t.me/XrayUI
Find a file
Alireza Ahmadi f41da0dfdd database: migrate options deprecated in sing-box 1.14
One-shot migration over the stored config and TLS rows, guarded by a setting
so it runs once:

- dns.independent_cache is dropped (1.14 reads it only to warn; the value is
  never passed to the DNS client)
- experimental.cache_file.store_rdrc becomes store_dns
- route.rule_set[].download_detour becomes the http_client 1.14 builds for it
- inline tls.acme becomes tls.certificate_provider with type "acme"

Legacy DNS address filters and the `strategy` DNS rule action are NOT migrated
automatically. Converting them means inserting evaluate rules and reordering,
which changes how names resolve, so they are logged with the upstream
migration link for the operator to handle.

Tests cover each rewrite, that unrelated options survive, that a config with
nothing to migrate is left byte-identical, and that the migrated shapes build
a box with no deprecation warning.
2026-08-31 14:06:23 +02:00
.github Sing-Box v1.13.18 and Go v1.26.5 2026-08-09 14:42:01 +02:00
api server os aware frontend #1189 2026-07-17 18:05:13 +02:00
app improve stats saving on db 2026-06-27 14:03:56 +02:00
cmd fix ipv6 on panel uri 2026-08-20 17:17:32 +02:00
config v1.5.5 2026-08-09 18:16:41 +02:00
core database: migrate options deprecated in sing-box 1.14 2026-08-31 14:06:23 +02:00
cronjob fix user disconneciton on each change 2026-07-10 22:22:35 +02:00
database database: migrate options deprecated in sing-box 1.14 2026-08-31 14:06:23 +02:00
frontend@6071c9e117 clash sub: udp option #1227 2026-08-20 16:50:51 +02:00
logger
middleware
network hot reload ssh cert #1135 2026-06-26 21:25:59 +02:00
service fix(hysteria2): preserve user identity across hot updates (#1231) 2026-08-31 13:57:48 +02:00
sub sub: add client remark #1228 2026-08-20 17:10:52 +02:00
util sub: add client remark #1228 2026-08-20 17:10:52 +02:00
web hot reload ssh cert #1135 2026-06-26 21:25:59 +02:00
windows
.dockerignore
.gitignore
.gitmodules
build.sh
CONTRIBUTING.md
docker-build-test.sh
docker-compose.yml
Dockerfile timezone independancy from OS #1166 2026-07-04 14:28:51 +02:00
Dockerfile.frontend-artifact timezone independancy from OS #1166 2026-07-04 14:28:51 +02:00
entrypoint.sh
go.mod Sing-Box v1.14.0-rc.2: compile-level upgrade 2026-08-31 14:06:23 +02:00
go.sum Sing-Box v1.14.0-rc.2: compile-level upgrade 2026-08-31 14:06:23 +02:00
install.sh catch untar error #1225 2026-08-21 23:21:50 +02:00
LICENSE
main.go timezone independancy from OS #1166 2026-07-04 14:28:51 +02:00
README.md README: telegram bot #1230 2026-08-25 21:32:58 +02:00
runSUI.sh
s-ui.service
s-ui.sh cert issue by CF token #1237 2026-08-26 13:07:40 +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

API Documentation

API-Documentation Wiki

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.

Stargazers over Time

Stargazers over time