2026-04-02 00:45:27 +03:00

3proxy UI

Control panel and runtime bundle for 3proxy in Docker.

Current focus

The project now includes both the UI and the first backend/runtime slice:

  • Express-based control plane API
  • generated 3proxy.cfg from persisted panel state
  • runtime manager for start/restart/reload
  • access-log-backed traffic ingestion from a real 3proxy process
  • websocket-based live sync with top-level snapshot patches
  • Docker image that builds the panel and compiles 3proxy in-container
  • panel views for dashboard, users, and system
  • edge-case-focused frontend and backend tests

Local run

npm install
npm run dev

npm run dev now starts both the Vite client and the Express control-plane server together. If you only need the backend process, use npm run dev:server. The local Vite dev server proxies both /api and /ws to the backend so the same panel build works with http/ws locally and can be promoted behind https/wss later.

Default panel credentials:

  • login: admin
  • password: proxy-ui-demo

For Docker runs these values come from compose.yaml:

  • PANEL_AUTH_LOGIN
  • PANEL_AUTH_PASSWORD
  • PANEL_SESSION_TTL_HOURS with a default of 24

The panel stores the issued session token in sessionStorage, so a browser refresh keeps the operator signed in until the token expires. Panel preferences are stored in localStorage, the active tab is tracked in the URL hash, and runtime data now arrives through websocket snapshot.init / snapshot.patch messages instead of periodic polling. Once the API is available, dashboard/user traffic values are refreshed from live 3proxy access logs instead of the seeded fallback snapshot.

Docker run

docker compose up --build

Published ports:

  • panel: 3000
  • socks main: 1080
  • socks lab: 2080
  • http proxy: 3128
  • 3proxy admin: 8081

Runtime state is persisted in the Docker volume 3proxyui_3proxy-runtime.

Scripts

npm run dev
npm run dev:server
npm run build
npm run test
npm run test:run
Description
No description provided
Readme 287 KiB
Languages
TypeScript 91.4%
CSS 7.7%
Dockerfile 0.7%
HTML 0.2%