Skip to content

drunkleen/l-ui

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English

L-UI

One Dashboard. Multiple Xray Panels.

CI Release Go Reference Go Report Card

L-UI is a hub control plane for managing remote VPS nodes. The hub provisions nodes over SSH, installs a lightweight agent, and controls them through signed HTTP APIs. Xray runs on the nodes, never on the hub.

l-ui

Quick Start

bash <(curl -Ls https://raw.githubusercontent.com/drunkleen/l-ui/main/install.sh)

Architecture

  • Hub — Go web server (Fiber v3) with embedded React frontend. Owns users, nodes, inbounds, clients, routing. Pure control plane — no Xray.
  • Agent — Lightweight Go binary (Fiber v3) deployed to each VPS. Manages Xray config, certs, and reports metrics. Communicates via signed HMAC-SHA256 API.
  • Frontend — React 19 + Ant Design 6 + Vite 8. Three entry pages: panel, login, subpage. Catppuccin theming (Mocha/Frappé/Latte).

Features

  • Node bootstrap — SSH-based provisioning with arch detection and retry logic. TLS/HTTPS uses user-specified port, not hardcoded 443.
  • Node monitoring — Heartbeat polling (5s), CPU/MEM/disk/network sparklines, offline alerts via Telegram
  • Config push — Push xray config + client lists with version tracking. Auto-push on inbound/client changes.
  • Auto-push — Creating, editing, or deleting inbounds/clients automatically pushes the updated config to the affected node agent.
  • TLS certs — Built-in CA for agent certs with daily auto-renewal. Hub and sub servers support custom cert paths.
  • Registration tokens — One-time curl|sh registration for nodes without SSH
  • Telegram bot — Down node, resource threshold, login, and backup notifications

Quick Reference

Command Purpose
make dev Backend-first dev loop with Vite HMR
make build Build frontend + Go binaries (hub + agent)
make test Run all Go + frontend tests
l-ui install Interactive Bubble Tea installer wizard
l-ui update Self-update to latest release
l-ui uninstall Remove service + data
l-ui setting --show View panel settings
l-ui cert --webCert ... --webCertKey ... Configure hub HTTPS
l-ui ssl issue --domain <D> Issue Let's Encrypt certificate
l-ui menu Interactive Bubble Tea management TUI
l-ui-agent menu Agent interactive management TUI
l-ui-agent status Show agent service status
l-ui-agent logs View agent logs
l-ui-agent config Show stored node configuration
l-ui-agent sysinfo Show system information
l-ui-agent cert Show certificate status

Install Options

  • Production: bash <(curl -Ls .../install.sh) — downloads the hub tarball, runs the interactive wizard
  • Development: make dev — uses ./tmp/ for runtime files, login admin/admin

Database

  • Hub: SQLite at /etc/l-ui/l-ui.db
  • Agent: SQLite at /etc/l-ui/l-ui-agent.db

Repo Layout

Path Contents
hub/ Gin controllers, services, cron jobs, CLI commands
agent/ Standalone agent binary for VPS nodes
internal/ Shared packages: DB models, config, auth, retry, SSH
frontend/ React + Vite multi-page app (panel, login, subpage)
web/dist/ Generated frontend build (embedded in Go binary)
docs/ Architecture, install, bootstrap, API, troubleshooting

Support

Patreon Buy Me A Coffee

Crypto

  • BTC: bc1qsmvxpn79g6wkel3w67k37r9nvzm5jnggeltxl6
  • ETH (ERC20): 0x8613aD01910d17Bc922D95cf16Dc233B92cd32d6
  • USDT (TRC20): 0x8613aD01910d17Bc922D95cf16Dc233B92cd32d6
  • DOGE: D8U25FjxdxdQ7pEH37cMSw8HXBdY1qZ7n3
  • TRX: TGNru3vuDfPh5zBJ31DKzcVVvFgfMK9J48

About

One Dashboard, Multiple Xray Panels.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 50.1%
  • TypeScript 46.5%
  • CSS 2.5%
  • JavaScript 0.5%
  • Makefile 0.3%
  • Shell 0.1%