Convert Hub is a single-image, self-hosted subscription conversion workspace.
You can input subscription URLs or single-node links, choose a template, generate conversion links, and create short links in one place.
- One container image
- One HTTP entrypoint
- One built-in conversion engine
- One built-in short-link store
- One Studio UI
HTTP routes:
/Studio UI/api/*conversion engine proxy/s/shortshort-link creation API/s/:keyshort-link redirect
git clone https://github.com/ningzimu/convert-hub.git
cd convert-hub
docker compose up -dOpen http://localhost:8090.
docker run -d \
--name convert-hub \
-p 8090:8080 \
-e REMOTE_CONFIG_URL= \
-e ENGINE_READY_TIMEOUT_MS=180000 \
-v convert-hub-data:/app/data \
ghcr.io/ningzimu/convert-hub:latestBuild locally:
docker build -t ghcr.io/ningzimu/convert-hub:local .Run your local image:
docker run -d \
--name convert-hub-local \
-p 8090:8080 \
-v convert-hub-data:/app/data \
ghcr.io/ningzimu/convert-hub:localUse compose with local build:
docker compose build
IMAGE_TAG=local docker compose up -dUse environment variables directly:
| Variable | Description | Default |
|---|---|---|
WEB_PORT |
Public port mapping to container 8080 |
8090 |
REMOTE_CONFIG_URL |
Default template URL injected into UI. Leave empty to use built-in fallback. | empty |
ENGINE_READY_TIMEOUT_MS |
Embedded engine cold-start timeout (ms) | 180000 |
IMAGE_TAG |
Compose image tag (ghcr.io/ningzimu/convert-hub:${IMAGE_TAG}) |
latest |
Examples:
# Linux/macOS (temporary for current shell)
export WEB_PORT=8090
export REMOTE_CONFIG_URL=
export ENGINE_READY_TIMEOUT_MS=180000
export IMAGE_TAG=latest
docker compose up -d# One-off override
WEB_PORT=8091 IMAGE_TAG=latest docker compose up -dNotes:
- If
REMOTE_CONFIG_URLis empty, backend falls back to built-in default template. - Data is persisted in Docker volume
studio-data(/app/data).
- Open
/in browser. - Paste one or more source URLs (newline or
|separated). - Select output client target.
- Select or input a remote template URL.
- Configure advanced options if needed.
- Click generate to get subscription URL.
- Optionally create a short link.
convert-hub/
├── Dockerfile
├── docker-compose.yml
├── backend/
├── frontend/
├── engine/
├── tests/
└── .github/workflows/
- Container starts but UI not updated:
- Run
docker compose up -d --build - Hard refresh browser cache (
Ctrl+F5/Cmd+Shift+R)
- Run
- Engine warmup too slow:
- Increase
ENGINE_READY_TIMEOUT_MSin your environment variables
- Increase