下载管理 — 支持磁力链接、种子文件、HTTP/FTP,可批量添加。WebSocket 实时推送状态,任务完成/失败桌面通知提醒。
文件管理 — 在线浏览、重命名、下载、删除。多文件打包下载(ZIP / TAR.ZST),存储空间用量实时展示。
文件分享 — 生成分享链接,支持密码保护、过期时间、下载次数限制,随时可撤销。
多用户隔离 — 每用户独立任务列表和文件空间,管理员可分配配额。同一资源多人下载时自动复用,节省带宽。
任务历史 — 完整记录下载任务的完成、取消、失败状态,支持一键重试。
外部客户端 — 兼容 aria2 RPC 协议,可对接 AriaNg、Motrix 等客户端,每用户独立 RPC Secret。
![]() 任务管理 |
![]() 文件管理 |
![]() 分享管理 |
![]() 任务历史 |
git clone https://github.com/crmmc/aria2deck.git
cd aria2deck
make docker-up浏览器打开 http://localhost:8001,默认账号 admin / 123456。
首次登录后请立即修改密码。
docker run -d \
--name aria2deck \
--network host \
-e ARIA2C_DOWNLOAD_DIR=/Downloads/aria2deck \
-v /your/data:/app/backend/data \
-v /Downloads/aria2deck:/Downloads/aria2deck \
ghcr.io/crmmc/aria2deck:<tag>- 管理员登录,修改默认密码
- 粘贴下载链接(或上传种子文件),创建任务
- 下载完成后,在文件页面浏览和管理
- 需要多人使用时,在用户管理创建新账号
- 需要分享文件时,生成分享链接发给对方
| 层 | 技术 |
|---|---|
| 后端 | FastAPI + SQLModel + aiohttp |
| 前端 | Next.js 14 + TypeScript |
| 数据库 | SQLite |
| 下载引擎 | aria2 (JSON-RPC) |
| 部署 | Docker |
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
ARIA2C_ARIA2_RPC_URL |
aria2 RPC 地址 | http://localhost:6800/jsonrpc |
ARIA2C_ARIA2_RPC_SECRET |
aria2 RPC 密钥 | - |
ARIA2C_DOWNLOAD_DIR |
下载文件存放目录 | /app/backend/downloads |
ARIA2C_DATABASE_PATH |
数据库文件路径 | ./data/app.db |
ARIA2C_SESSION_TTL_SECONDS |
登录会话有效期(秒) | 43200 |
ARIA2C_ARIA2_POLL_INTERVAL |
aria2 状态轮询间隔(秒) | 2.0 |
ARIA2DECK_SHARE_JWT_SECRET |
分享链接签名密钥 | - |
ARIA2C_EXTRA_CORS_ORIGINS |
额外允许的 CORS 域名 | - |
数据持久化
Docker 部署时需要挂载两个目录:
| 容器路径 | 说明 |
|---|---|
/app/backend/data |
数据库文件,必须备份 |
/app/backend/downloads |
下载文件存放 |
安全建议
- 修改默认管理员密码
- 设置强随机的
ARIA2C_ARIA2_RPC_SECRET和ARIA2DECK_SHARE_JWT_SECRET - 生产环境请通过反向代理(Nginx 等)访问,不要直接暴露到公网
- 定期备份
data/目录
本地开发
# 安装依赖
make install
# 配置环境变量
cp backend/env.example backend/.env
# 三个终端分别启动
make dev-aria2 # aria2 后端
make dev-back # API 后端(开发模式,自动重置 admin 密码为 123456)
make dev-front # 前端开发服务器(http://localhost:3000)开发态页面路径统一使用无后缀路由,例如 http://localhost:3000/tasks、/files、/settings。



