Docker 一键部署的轻量多语言定时任务管理面板,含自动更新
Go 后端提供调度与 API,Vue3 前端可视化管理,SQLite 免外部数据库,Docker 与 Watchtower 实现一键部署与自动更新
方案简介
呆呆面板 (Daidai Panel) 是一款轻量级定时任务管理平台,采用 Go (Gin) + Vue3 (Element Plus) + SQLite 架构,专注于脚本托管与自动化任务调度。它支持 Python、Node.js(含 .js / .mjs)、Shell、TypeScript、Go 等多语言脚本的定时执行与可视化管理。
这套方案的定位是「轻量、现代的定时任务管理面板,Docker 一键部署,开箱即用」,适合需要托管定时脚本(如签到、爬虫、数据同步等自动化任务)、又不想自己搭建复杂调度系统的个人开发者或小团队。相比需要外部数据库的方案,它使用 SQLite 单文件存储,通过 Docker Compose 两个服务(面板本体 + Watchtower 自动更新)即可完整上线,并内置环境变量管理、依赖管理、订阅管理、Open API、2FA 等面板常用能力。
亮点与能力
- 定时任务 — Cron 表达式调度,支持重试、超时、定时停止、任务依赖、前后置钩子
- 脚本管理 — 在线代码编辑器,支持 Python、Node.js(含
.mjs)、Shell、TypeScript、Go,拖拽移动文件 - 执行日志 — SSE 实时日志流,历史日志查看与自动清理
- 环境变量 — 分组管理、拖拽排序、批量导入导出(兼容青龙格式)
- 订阅管理 — 自动从 Git 仓库拉取脚本,支持定期同步
- 依赖管理 — 可视化安装/卸载 Python (pip)、Node.js (npm) 依赖,以及 Linux 系统包
- 通知推送 — Bark、Telegram、Server酱、企业微信、钉钉、飞书等 22 种渠道
- 开放 API — App Key / App Secret 认证,支持第三方系统对接
- 系统安全 — 双因素认证 (2FA)、IP 白名单、登录日志、多设备会话管理
- 数据备份 — 一键备份与恢复,支持每天/每周/每月定时备份
- 系统监控 — 实时 CPU / 内存 / 磁盘监控,任务执行趋势统计
组成与分工
- Go (Gin):后端框架,提供任务调度、脚本执行、Open API 等服务端能力
- Vue3 (Element Plus):前端框架与组件库,构建可视化管理界面(在线演示即为前端单独打包配浏览器内模拟数据)
- SQLite:嵌入式数据库,存储任务、变量、日志等面板数据,无需外部数据库
- Nginx:容器内监听 5700 端口的 Web 入口(compose 注释「宿主机端口:容器内 Nginx 端口」)
- Docker / Docker Compose:容器化部署方式,实现一键启动与数据目录挂载
- Watchtower (nickfedor/watchtower):通过 Docker Socket 与 HTTP API 自动更新面板镜像,需 v1.20.0+ 才支持面板内「检查系统更新」
- pip / npm / 系统包管理器:依赖管理功能调用的底层工具,自动识别
apk/apt/dnf/yum/microdnf/zypper
前置要求
- 已安装 Docker 与 Docker Compose 的宿主机
- 端口 5700 可用(浏览器访问
http://宿主机IP:5700) - 若需自动更新功能,Watchtower 镜像必须为
nickfedor/watchtower的 v1.20.0 或更新版本
创建目录并准备 docker-compose.yml(内容见实施步骤),然后启动:
bash
docker compose up -d
实施步骤
1. 编写 docker-compose.yml
官方推荐的上线版 compose 包含面板与 Watchtower 两个服务:
yaml
docker-compose.yml
name: daidai-panel
services:
daidai-panel:
image: ${DAIDAI_PANEL_IMAGE:-linzixuanzz/daidai-panel:latest}
container_name: daidai-panel
restart: unless-stopped
ports:
- "5700:5700" # 宿主机端口:容器内 Nginx 端口
volumes:
- ./Dumb-Panel:/app/Dumb-Panel # 面板数据目录,升级保留
environment:
- TZ=Asia/Shanghai
- CONTAINER_NAME=daidai-panel
- IMAGE_NAME=${DAIDAI_PANEL_IMAGE:-linzixuanzz/daidai-panel:latest}
- PANEL_UPDATE_MANAGER=watchtower
- WATCHTOWER_HTTP_API_URL=${WATCHTOWER_HTTP_API_URL:-http://watchtower:8080}
- WATCHTOWER_HTTP_API_TOKEN=${WATCHTOWER_HTTP_API_TOKEN:-daidai-panel-watchtower-token}
- WATCHTOWER_HTTP_API_PERIODIC_POLLS=true
labels:
- com.centurylinklabs.watchtower.enable=true
watchtower:
image: nickfedor/watchtower:latest # 必须是 v1.20.0 或更新的版本,原因见下方提示
container_name: daidai-watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- com.centurylinklabs.watchtower.enable=false
environment:
- WATCHTOWER_HTTP_API_TOKEN=${WATCHTOWER_HTTP_API_TOKEN:-daidai-panel-watchtower-token}
- WATCHTOWER_HTTP_API_PERIODIC_POLLS=true
- WATCHTOWER_HTTP_API_ENDPOINTS=update
command:
- --label-enable
- --cleanup
- --interval
- "3600"
2. 启动服务
bash
docker compose up -d
3. 初始化管理员
首次访问 http://localhost:5700 会进入管理员初始化。
4. (旧版用户)升级 Watchtower
凡是在 v1.20.0 之前就部署过 Watchtower 的用户,升级面板后请先手动拉一次新镜像再重建它:
bash
docker compose pull watchtower
docker compose up -d watchtower
确认版本:Watchtower 启动时会把自己的版本号打进日志
docker logs daidai-watchtower 2>&1 | head -n 5
使用与配置要点
- 通过面板可创建 Cron 定时任务、在线编辑多语言脚本、查看 SSE 实时日志
- 环境变量分组管理、批量导入导出(兼容青龙格式),任务执行时自动注入
- 订阅管理可从 Git 仓库自动拉取脚本,白名单筛选并建成任务,依赖规则拉取辅助库但不建任务
- 不想自动更新时可删除
watchtower服务、labels、PANEL_UPDATE_MANAGER=watchtower和WATCHTOWER_HTTP_API_*,改为宿主机手动执行:
bash
docker compose pull
docker compose up -d
- 想先用后决定装不装,可打开在线演示
https://linzixuanzz.github.io/daidai-panel/,演示站没有后端、数据只存浏览器,刷新即恢复初始状态,切勿填写真实 Cookie、密码或推送密钥
注意事项与常见问题
- Watchtower 版本坑:
WATCHTOWER_HTTP_API_ENDPOINTS=update是v1.20.0才引入的环境变量,更早版本会静默忽略——容器照常启动、日志不报错,但 HTTP API 的 8080 端口没打开,面板检查更新会拿到connection refused - Watchtower 不自我更新:它自己打了
enable=false标签避免管自己,本地镜像会停在最后一次手动 pull 的版本,需定期手动:
bash
docker compose pull watchtower
docker compose up -d watchtower
- 镜像加速站缓存:国内加速站的
latest可能是很旧的缓存,pull 完版本仍偏低时可临时改拉具体版本(例如nickfedor/watchtower:1.21.2),或直连 Docker Hub 拉一次 - 安全设计:
docker.sock只暴露给 Watchtower,不暴露给面板容器;Watchtower 的更新 API 只在 Compose 内部网络使用,未向宿主机开放端口 - 演示站:不是真实运行的面板,没有后端也不会真的执行任何脚本
优缺点
- ✓ Docker 一键部署,开箱即用
- ✓ 内置 22 种消息推送渠道
- ✕ Watchtower 不会自我更新,需手
- ✕ 国内镜像加速站 latest 可能是陈旧
出处
本方案挖掘自开源项目 linzixuanzz/daidai-panel,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。