andromedi4/byedpi-orchestrator

By andromedi4

Updated about 1 month ago

ByeDPI DPI-bypass orchestrator + web UI: live dashboard, run history, config editor.

Image
Networking
0

509

andromedi4/byedpi-orchestrator repository overview

ByeDPI Orchestrator + Web UI

Docker Pulls Docker Image Size

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 bundled ciadpi binary goes to its author.


Features

  • Live dashboard (:8088) — availability, score, median latency, runs counter, state age.
  • Active strategy — the exact ciadpi command currently applied on port 1080.
  • Last run table — every tested strategy with availability bars; the winner is marked. Click a row to copy its arguments.
  • Run history — per‑run snapshots (state/runs/*.jsonl) enabled out of the box.
  • Config editor — edit 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.
  • Zero‑dependency dashboard — pure Python stdlib, nothing extra installed.
  • Turnkey — runs with no volumes at all; mounting an empty ./config is auto‑seeded with defaults.

Quick start

# 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.


Configuration

Environment variables
VariableDefaultDescription
TG_TOKENTelegram bot token for notifications.
TG_CHAT_IDTelegram chat/channel ID.
CANARY_PORT1081Port for the canary proxy used while probing.
CANARY_PROXYsocks5://127.0.0.1:1081Canary proxy URL.
STATE_DIR/app/stateWhere the orchestrator/dashboard read state.
PORT8088Dashboard listen port.
DASH_TOKEN(empty)If set, the config editor requires this token (sent as X-Token) to save/restart.
Ports
PortPurpose
1080SOCKS5 proxy running the selected working strategy.
1081Canary proxy (internal probing).
8088Web dashboard + config editor.
Volumes
PathPurpose
/appState, run history, dynamic strategy space. Mount to persist across restarts.
/opt/orchestrator/configEditable configs. Mount it to keep edits across recreates; an empty mount is auto‑seeded with defaults on first start.

Web dashboard

The page auto‑refreshes every 5 s. It shows monitoring cards at the top and two collapsible sections at the bottom:

  • Raw state (debug) — every state JSON file, pretty‑printed.
  • ⚙ Configuration — the config editor.
Config editor

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_TOKEN to a non‑empty value (and/or put it behind a reverse proxy with auth). With DASH_TOKEN empty the editor is open to anyone who can reach :8088.


Tags

  • latest — tracks the current upstream base plus the web UI.

License / credits

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.

Tag summary

Content type

Image

Digest

sha256:2d97233cd

Size

65.6 MB

Last updated

about 1 month ago

docker pull andromedi4/byedpi-orchestrator