mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 05:31:47 +00:00
## Features - Add MiniMax TTS provider support (#1043) - Docker images now published on both GHCR & Docker Hub (decolua/9router) — pull from your preferred registry ## Improvements - Replace browser confirm dialogs with custom ConfirmModal (#1060) ## Fixes - Fix Docker `Cannot find module 'next'` error in standalone build - Restore /app/server.js in Docker standalone build (#1064, #1067) - Fix CLI TUI menu arrow-key escape sequences leaking (^[[A^[[B) - Switch macOS/Linux tray to systray2 fork (fixes Kaspersky AV false-positive) (#1080) - Fix zoom controls contrast in topology view (#1066)
2.1 KiB
2.1 KiB
Docker
Run 9Router in a container. Published image: decolua/9router — multi-platform linux/amd64 + linux/arm64.
👤 For Users
Quick start
docker run -d \
-p 20128:20128 \
-v "$HOME/.9router:/app/data" \
-e DATA_DIR=/app/data \
--name 9router \
decolua/9router:latest
App listens on port 20128. Open: http://localhost:20128
Manage container
docker logs -f 9router # view logs
docker stop 9router # stop
docker start 9router # start again
docker rm -f 9router # remove
Data persistence
-v "$HOME/.9router:/app/data" \
-e DATA_DIR=/app/data
Without DATA_DIR, the app falls back to ~/.9router/ (macOS/Linux) or %APPDATA%\9router\ (Windows). In the container, DATA_DIR=/app/data makes the bind mount work.
Data layout under $DATA_DIR/:
$DATA_DIR/
├── db/
│ ├── data.sqlite # main SQLite database
│ └── backups/ # auto backups
└── ... # certs, logs, runtime configs
Host path: $HOME/.9router/db/data.sqlite
Container path: /app/data/db/data.sqlite
Optional env vars
docker run -d \
-p 20128:20128 \
-v "$HOME/.9router:/app/data" \
-e DATA_DIR=/app/data \
-e PORT=20128 \
-e HOSTNAME=0.0.0.0 \
-e DEBUG=true \
--name 9router \
decolua/9router:latest
Update to latest
docker pull decolua/9router:latest
docker rm -f 9router
# re-run the quick start command
🛠 For Developers
Build image locally
# from repo root
npm run docker:build
Or directly:
cd app && docker build -t 9router .
Run local build:
docker run --rm -p 20128:20128 \
-v "$HOME/.9router:/app/data" \
-e DATA_DIR=/app/data \
9router
Publish to Docker Hub (multi-platform)
Triggered automatically by npm run cli:publish. Manual:
# 1. Login once
docker login
# 2. Build amd64 + arm64 + push (tag from app/cli/package.json version)
npm run docker:publish
Tags pushed:
decolua/9router:v{version}decolua/9router:latest