/s-ui

An advanced Web Panel • Built for SagerNet/Sing-Box

Primary LanguageVueGNU General Public License v3.0GPL-3.0

S-UI

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

S-UI Docker pull S-UI-Singbox Docker pull 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🌟

"Buy Me A Coffee"

  • USDT (TRC20): TYTq73Gj6dJ67qe58JVPD9zpjW2cc9XgVz

Quick Overview

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

Default Installation Information

  • Panel Port: 2095
  • Panel Path: /app/
  • Subscription Port: 2096
  • Subscription Path: /sub/
  • User/Password: admin

Install & Upgrade to Latest Version

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

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:

VERSION=1.0.0 && bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/$VERSION/install.sh) $VERSION

Manual installation

  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

Uninstall S-UI

sudo -i

systemctl disable sing-box --now
systemctl disable s-ui  --now

rm -f /etc/systemd/system/s-ui.service
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

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 for s-ui only

mkdir s-ui && cd s-ui
docker run -itd \
    -p 2095:2095 -p 2096:2096 -p 443:443 -p 80:80 \
    -v $PWD/db/:/usr/local/s-ui/db/ \
    -v $PWD/cert/:/root/cert/ \
    --name s-ui --restart=unless-stopped \
    alireza7/s-ui:latest

Build your own image

docker build -t s-ui .

Manual run ( contribution )

Click for details

Build and run whole project

./runSUI.sh

- Frontend

Frontend codes are in frontend folder in the root of repository.

To run it locally for instant development you can use (apply automatic changes on file save):

cd frontend
npm run dev

By this command it will run a vite web server on separate port 3000, with backend proxy to http://localhost:2095. You can change it in frontend/vite.config.mts.

To build frontend:

cd frontend
npm run build

- Backend

Backend codes are in backend folder in the root of repository.

Please build frontend once before!

To build backend:

cd 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, Hysteri2, 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

Recommended OS

  • Ubuntu 20.04+
  • Debian 11+
  • CentOS 8+
  • Fedora 36+
  • Arch Linux
  • Parch Linux
  • Manjaro
  • Armbian
  • AlmaLinux 9+
  • Rocky Linux 9+
  • Oracle Linux 8+
  • OpenSUSE Tubleweed

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>

Stargazers over Time

Stargazers over time