byedpi-orchestrator
ByeDPI DPI-bypass orchestrator + web UI: live dashboard, run history, config editor.
509
A self-contained image that wraps the ByeDPI orchestrator with a built‑in web dashboard and config editor — no extra container, no build step on your side.
The orchestrator continuously probes DPI‑bypass strategies, runs canary checks, picks the best one, and exposes it as a local SOCKS5 proxy. This image adds a clean web UI on top so you can see what's working and tweak the config from the browser instead of editing files and reading docker logs.
Built as a thin layer on top of
vindibona/byedpi-orchestrator — all credit for the orchestration engine and the bundledciadpibinary goes to its author.
:8088) — availability, score, median latency, runs counter, state age.ciadpi command currently applied on port 1080.state/runs/*.jsonl) enabled out of the box.args.txt, strategy_space.json, stats.json, thresholds, etc. right in the UI. JSON is validated before saving; Apply restarts the container to pick up changes../config is auto‑seeded with defaults.# docker-compose.yaml
services:
byedpi-orchestrator:
image: andromedi4/byedpi-orchestrator:latest
container_name: byedpi-orchestrator
restart: unless-stopped
volumes:
- ./app:/app # persists state & run history
- ./config:/opt/orchestrator/config # configs (auto-seeded if empty)
env_file:
- .env
ports:
- "1080:1080" # SOCKS5 proxy (the working strategy)
- "1081:1081" # canary proxy (used during probing)
- "8088:8088" # web dashboard
# .env
TG_TOKEN=123456789:AA...your-telegram-bot-token...
TG_CHAT_ID=-1001234567890
# Token for the config editor (save / restart). Empty = editor open, no password.
# Set a non-empty value if the dashboard is reachable outside your LAN.
DASH_TOKEN=
docker compose up -d
Open http://<host>:8088. The proxy is socks5://<host>:1080.
| Variable | Default | Description |
|---|---|---|
TG_TOKEN | — | Telegram bot token for notifications. |
TG_CHAT_ID | — | Telegram chat/channel ID. |
CANARY_PORT | 1081 | Port for the canary proxy used while probing. |
CANARY_PROXY | socks5://127.0.0.1:1081 | Canary proxy URL. |
STATE_DIR | /app/state | Where the orchestrator/dashboard read state. |
PORT | 8088 | Dashboard listen port. |
DASH_TOKEN | (empty) | If set, the config editor requires this token (sent as X-Token) to save/restart. |
| Port | Purpose |
|---|---|
1080 | SOCKS5 proxy running the selected working strategy. |
1081 | Canary proxy (internal probing). |
8088 | Web dashboard + config editor. |
| Path | Purpose |
|---|---|
/app | State, run history, dynamic strategy space. Mount to persist across restarts. |
/opt/orchestrator/config | Editable configs. Mount it to keep edits across recreates; an empty mount is auto‑seeded with defaults on first start. |
The page auto‑refreshes every 5 s. It shows monitoring cards at the top and two collapsible sections at the bottom:
Pick a file from the tabs, edit it, Save, then Apply (restart). Applying sends a termination signal to the container's main process; Docker (restart: unless-stopped) brings it back with the new config, and the page reloads automatically after a few seconds.
⚠️ Security: the editor can write config files and restart the container. If the dashboard is exposed beyond a trusted LAN, set
DASH_TOKENto a non‑empty value (and/or put it behind a reverse proxy with auth). WithDASH_TOKENempty the editor is open to anyone who can reach:8088.
latest — tracks the current upstream base plus the web UI.The orchestration engine and the ciadpi binary come from the upstream image and ByeDPI project; please refer to their respective licenses. The web dashboard and config editor in this image are added on top.
Content type
Image
Digest
sha256:2d97233cd…
Size
65.6 MB
Last updated
about 1 month ago
docker pull andromedi4/byedpi-orchestrator