69 lines
2.0 KiB
Markdown
69 lines
2.0 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
npm run dev
|
|
npm run dev:server
|
|
npm run build
|
|
npm run test
|
|
npm run test:run
|
|
```
|