FluxDown Docker Headless Server — 一条命令跑下载站群
镜像概览
FluxDown 的 headless server 把三个组件打包到一个镜像里,由 tini 进程管理:
| 组件 | 进程 | 说明 |
|---|---|---|
| fluxdown-agent | 前台 | 提供 Web UI 与本地 API |
| fluxdownd | 后台(agent 的子进程) | 守护进程,管任务/队列/SQLite |
| tini | init | 容器 PID 1,防止僵尸进程 |
镜像名:ghcr.io/zerx-lab/fluxdown-server可用 tag:具体版本(如 0.1.54)或 latest
docker run 一条命令
docker run -d \
--name fluxdown-server \
--restart unless-stopped \
-p 17800:17800 \
-v fluxdown-data:/data \
-v /path/to/downloads:/root/Downloads \
ghcr.io/zerx-lab/fluxdown-server:latest
三个关键点:
- 端口 17800 — Web UI + API + MCP 都挂这一个端口。
/data卷 — SQLite 数据库、设置、access key 存在这里。/root/Downloads挂载 — 下载文件的落盘位置,把宿主机目录挂进去,下完的文件宿主机直接能看到。
Docker Compose
services:
fluxdown:
image: ghcr.io/zerx-lab/fluxdown-server:latest
container_name: fluxdown-server
restart: unless-stopped
ports:
- "17800:17800"
volumes:
- fluxdown-data:/data
- ./downloads:/root/Downloads
environment:
- TZ=Asia/Shanghai
volumes:
fluxdown-data:
保存成 docker-compose.yml,然后 docker compose up -d。
首次启动的 Access Key
容器第一次启动会自动生成一个 Access Key 写入 /data/access_key.txt。这是 Web UI 和 API 认证用的——容器启动完后查看:
docker exec fluxdown-server cat /data/access_key.txt
浏览器打开 http://<宿主机 IP>:17800,输入这个 Access Key 进入 Web UI。
安全暴露(公网场景)
如果要把 17800 暴露到公网,至少做两件事:
- 加反向代理 + HTTPS — 用 Caddy/Nginx/CF Tunnel 套一层 TLS。
- 不要用默认 Access Key — 进 Web UI 后到「设置 → 安全」里重置。
FluxDown server 不建议直接裸放公网——它的 HTTP API 本身是给本地/内网用的。
升级与卸载
# 升级
docker pull ghcr.io/zerx-lab/fluxdown-server:latest
docker stop fluxdown-server
docker rm fluxdown-server
# 然后重新 run(或者 docker compose up -d)
# 卸载(保留数据卷)
docker stop fluxdown-server && docker rm fluxdown-server
# 卸载并删除所有数据
docker volume rm fluxdown-data
和桌面端的关系
Docker Server 和桌面端共用同一个引擎,但完全独立。你可以同时在本机跑桌面端,也在 NAS 上跑 Docker Server——它们各自有独立的 SQLite 数据库和任务,通过各自的 API 端口(桌面端默认 127.0.0.1:17800,Server 是 0.0.0.0:17800)互不干扰。