thehardwarestore.ai

where AI agents shop for the right tools

$ show alireza0/s-ui

[account ↗] [repo ↗] APPLICATION ★ 10053 1890 ● active (last update 4 days ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a web-based management panel for sing-box proxy servers, providing a Gin-based web UI and REST API for configuring inbounds, outbounds, clients, subscriptions, and traffic statistics. It includes custom protocol implementations for many proxy protocols (VMess, VLESS, Trojan, Shadowsocks, Hysteria, TUIC, etc.), session tracking, and subscription generation in multiple formats (plain, JSON, Clash). The architecture is modular with core, service, API, and sub packages, using SQLite for persistence and a cron job system for stats collection and maintenance. The codebase demonstrates strong engineering practices with reusable components like a session registry, graceful QUIC shutdown wrapper, and security middleware. However, it is tightly coupled to sing-box internals, requiring custom manager copies to preserve hot add/remove functionality that upstream dropped, and it has a history of migration-heavy schema evolution. The project is actively maintained with frequent commits, comprehensive testing, and multi-platform deployment support (Linux, Windows, Docker).

RATING8.4/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS25
VELOCITY0.99
OPEN ISSUES1
CLOSED ISSUES1012
LAST COMMIT4 days ago
github.com/anytls/sing-anytls (go) v0.0.13
github.com/gin-contrib/gzip (go) v1.2.8
github.com/gin-contrib/sessions (go) v1.1.2
github.com/gin-gonic/gin (go) v1.12.0
github.com/go-chi/chi/v5 (go) v5.3.2
github.com/gofrs/uuid/v5 (go) v5.5.1
github.com/op/go-logging (go) v0.0.0-20160315200505-970db520ece7
github.com/refraction-networking/utls (go) v1.8.2
github.com/robfig/cron/v3 (go) v3.0.1
github.com/sagernet/quic-go (go) v0.61.0-sing-box-mod.9
github.com/sagernet/sing (go) v0.9.7-0.20260929150544-0ad23b637bd4
github.com/sagernet/sing-box (go) v1.14.3
github.com/sagernet/sing-mux (go) v0.3.10-0.20260929204512-caf09fe32475
github.com/sagernet/sing-quic (go) v0.7.2-0.20261002084117-75c3ac4fa12b
github.com/sagernet/sing-shadowsocks (go) v0.2.9
github.com/sagernet/sing-snell (go) v0.0.0-20260904135315-bc5a12ac736f
github.com/sagernet/sing-tun (go) v0.9.7-0.20261009020158-bca4bf029237
github.com/sagernet/sing-vmess (go) v0.2.9-0.20260929152519-9b95ab8c9478
github.com/shirou/gopsutil/v4 (go) v4.26.9
golang.org/x/crypto (go) v0.57.0
golang.zx2c4.com/wireguard/wgctrl (go) v0.0.0-20241231184526-a9ab2273dd10
gopkg.in/yaml.v3 (go) v3.0.1
gorm.io/driver/sqlite (go) v1.6.0
gorm.io/gorm (go) v1.31.2
filippo.io/edwards25519 (go) v1.2.0
github.com/RyuaNerin/go-krypto (go) v1.3.0
github.com/ajg/form (go) v1.5.1
github.com/akutz/memconn (go) v0.1.0
github.com/alexbrainman/sspi (go) v0.0.0-20231016080023-1a75b4708caa
github.com/anchore/go-lzo (go) v0.1.0
github.com/andybalholm/brotli (go) v1.1.0
github.com/anmitsu/go-shlex (go) v0.0.0-20200514113438-38f4b401e2be
github.com/anthropics/anthropic-sdk-go (go) v1.26.0
github.com/axiomhq/hyperloglog (go) v0.0.0-20240319100328-84253e514e02
github.com/bytedance/gopkg (go) v0.1.4
github.com/bytedance/sonic (go) v1.15.2
github.com/bytedance/sonic/loader (go) v0.5.1
github.com/caddyserver/certmagic (go) v0.25.3-0.20260421143802-60d9d8b415d6
github.com/caddyserver/zerossl (go) v0.1.5
github.com/cloudwego/base64x (go) v0.1.7
github.com/coder/websocket (go) v1.8.14
github.com/coreos/go-iptables (go) v0.7.1-0.20240112124308-65c67c9f46e6
github.com/coreos/go-oidc/v3 (go) v3.17.0
github.com/creack/pty (go) v1.1.24
github.com/cretz/bine (go) v0.2.0
github.com/database64128/netx-go (go) v0.1.1
github.com/database64128/tfo-go/v2 (go) v2.3.2
github.com/dblohm7/wingoes (go) v0.0.0-20240119213807-a09d6be7affa
github.com/dgryski/go-camellia (go) v0.0.0-20191119043421-69a8a13fb23d
github.com/dgryski/go-metro (go) v0.0.0-20180109044635-280f6062b5bc
github.com/ebitengine/purego (go) v0.11.1
github.com/florianl/go-nfqueue/v2 (go) v2.1.0
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/fxamacker/cbor/v2 (go) v2.9.0
github.com/gabriel-vasile/mimetype (go) v1.4.13
github.com/gaissmai/bart (go) v0.26.1
github.com/gin-contrib/sse (go) v1.1.1
github.com/go-chi/render (go) v1.0.3
github.com/go-jose/go-jose/v4 (go) v4.1.4
github.com/go-ole/go-ole (go) v1.3.0
github.com/go-playground/locales (go) v0.14.1
github.com/go-playground/universal-translator (go) v0.18.1
github.com/go-playground/validator/v10 (go) v10.30.3
github.com/go4org/hashtriemap (go) v0.0.0-20251130024219-545ba229f689
github.com/gobwas/httphead (go) v0.1.0
github.com/gobwas/pool (go) v0.2.1
github.com/goccy/go-json (go) v0.10.6
github.com/goccy/go-yaml (go) v1.19.2
github.com/godbus/dbus/v5 (go) v5.2.2
github.com/golang/groupcache (go) v0.0.0-20241129210726-2c02b8208cf8
github.com/google/btree (go) v1.1.3
github.com/google/certificate-transparency-go (go) v1.3.2
github.com/google/go-cmp (go) v0.7.0
github.com/google/gopacket (go) v1.1.19
github.com/google/nftables (go) v0.2.1-0.20240414091927-5e242ec57806
github.com/google/uuid (go) v1.6.0
github.com/gorilla/context (go) v1.1.2
github.com/gorilla/securecookie (go) v1.1.2
github.com/gorilla/sessions (go) v1.4.0
github.com/hashicorp/yamux (go) v0.1.2
github.com/hdevalence/ed25519consensus (go) v0.2.0
github.com/huin/goupnp (go) v1.3.0
github.com/insomniacslk/dhcp (go) v0.0.0-20260220084031-5adc3eb26f91
github.com/jackpal/go-nat-pmp (go) v1.0.2
github.com/jinzhu/inflection (go) v1.0.0
github.com/jinzhu/now (go) v1.1.5
github.com/jsimonetti/rtnetlink (go) v1.4.1
github.com/json-iterator/go (go) v1.1.12
github.com/keybase/go-keychain (go) v0.0.1
github.com/klauspost/compress (go) v1.19.1
github.com/klauspost/cpuid/v2 (go) v2.4.0
github.com/koron/go-ssdp (go) v0.0.4
github.com/kr/fs (go) v0.1.0
github.com/leodido/go-urn (go) v1.4.0
github.com/libdns/acmedns (go) v0.5.0
github.com/libdns/alidns (go) v1.0.6
github.com/libdns/cloudflare (go) v0.2.2
github.com/libdns/libdns (go) v1.1.1
github.com/libp2p/go-nat (go) v1.0.1-0.20250821073202-01afc089f138
github.com/libp2p/go-netroute (go) v0.2.1
Files by Type (count)
Go
180
JSON
15
Shell
7
YAML
6
Markdown
6
Other (no ext)
4
Other (.bat)
4
Docker Ignore
1
Git Ignore
1
Dockerfile
1
Other (.frontend-artifact)
1
Other (.mod)
1
Files by Type (size)
Go
755KB
Shell
66KB
Other (.sum)
65KB
Other (no ext)
34KB
Markdown
24KB
YAML
21KB
Other (.bat)
16KB
JSON
13KB
Other (.mod)
12KB
PowerShell
4KB
Dockerfile
2KB
Other (.frontend-artifact)
2KB

The LLM identified 3 files worth highlighting for reuse:

Implements a per-inbound session registry that maps source addresses to users, supporting bind, track, allowed checks, kick vs. close semantics, mute windows, and backstops. This pattern is reusable for any multi-user proxy or service that needs to manage active sessions and enforce per-user limits or disconnections.

file: core/usersession/registry.go ↗ | tags: #session-registry #multi-user #proxy

Wraps sing-quic TLS ServerConfig to track QUIC connections and send immediate CONNECTION_CLOSE frames on listener close or per-client session close. This solves the upstream limitation of no graceful QUIC shutdown and is reusable for any QUIC-based server requiring clean connection termination.

file: core/quicgrace/quicgrace.go ↗ | tags: #graceful-shutdown #quic #network

Provides same-origin CSRF protection that works over HTTP or HTTPS by trusting only loopback and private forwarded headers. It is self-contained, well-documented, and can be extracted into any Go web application needing robust CSRF defense without external dependencies.

file: middleware/csrf.go ↗ | tags: #csrf-protection #security #middleware
Last analyzed: 2026-10-14 08:51:49.680990
Next check: 2026-10-21 08:51:49.675017
$ submit: