开启AI探索-部署MoltBot + DeepSeek
一、系统架构说明
当前架构
Slack
↓
MoltBot (Python + Slack Bolt)
↓
DeepSeek API
(本地 Ollama 已停用,仅保留备用)
Docker 结构
目录结构:
/volume1/docker/moltbot-stack/
│
├── compose/
│ ├── docker-compose.yml
│ └── .env
│
├── data/
│ └── bot.py
│
├── logs/
│
└── models/ (如使用ollama)
二、配置文件说明
1️⃣ docker-compose.yml
核心服务:
services:
moltbot:
build: .
container_name: moltbot
restart: always
env_file:
– .env
说明:
build: . 表示使用 Dockerfile 构建
restart: always 表示 NAS 重启后自动恢复
.env 管理所有敏感变量
2️⃣ .env 文件
当前 DeepSeek 模式配置:
LLM_PROVIDER=deepseek
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_MAX_TOKENS=256
DEEPSEEK_TEMPERATURE=0.2
DEEPSEEK_API_KEY=sk-xxxxx
SLACK_BOT_TOKEN=xoxb-xxxx
SLACK_APP_TOKEN=xapp-xxxx
⚠ 不要提交到 Git
⚠ 不要泄露
3️⃣ bot.py 说明
核心逻辑:
接收 Slack 事件
根据 LLM_PROVIDER 决定调用:
DeepSeek API
Ollama 本地模型
返回消息到 Slack
三、常用运维命令
1️⃣ 启动系统
cd /volume1/docker/moltbot-stack/compose
docker compose up -d –build
2️⃣ 只重启机器人
docker restart moltbot
3️⃣ 停止本地模型(节省CPU)
docker stop ollama
4️⃣ 查看运行状态
docker ps
5️⃣ 查看实时日志
docker logs -f moltbot
6️⃣ 查看最近200行日志
docker logs –tail 200 moltbot
7️⃣ 查看资源占用
docker stats
四、API 切换方法
当前模式:DeepSeek
.env
LLM_PROVIDER=deepseek
重启:
docker restart moltbot
切换为本地 Ollama
修改 .env:
LLM_PROVIDER=ollama
启动本地模型:
docker compose start ollama
docker restart moltbot
再切回 DeepSeek(推荐模式)
docker compose stop ollama
docker restart moltbot
五、日志排查流程
标准排查步骤
第一步:确认容器是否运行
docker ps
第二步:查看日志
docker logs -f moltbot
关注:
[EVENT]
[LLM]
第三步:测试 DeepSeek API 是否正常
curl https://api.deepseek.com/v1/models \
-H “Authorization: Bearer $DEEPSEEK_API_KEY”
第四步:测试 Slack 连接
查看日志是否出现:
Bolt app is running
Starting to receive messages
六、账号与权限管理
1️⃣ Slack 权限模块
记录以下信息:
Slack 权限结构
谁能 @bot → Slack 频道权限
谁能私聊 → App Home 启用
是否能触发 API → bot.py 控制
建议:
可添加白名单:
ALLOWED_USERS = [“Uxxxx”]
2️⃣ 群晖权限
当前运行方式:
SSH root
Docker root
风险:
root 拥有全部权限
可改进:
建立 docker 专用用户
禁止 root SSH 登录
限制文件权限
3️⃣ Docker 权限
容器默认运行:
python:3.11-slim
默认 root 容器用户。
可优化:
Dockerfile 添加:
USER 1000:1000
4️⃣ DeepSeek API 权限
控制方式:
API Key
余额限制
Key 可随时撤销
安全建议:
定期更换 key
不在代码中硬编码
仅保存在 .env
七、定期备份方案
备份内容
必须备份:
/volume1/docker/moltbot-stack/
包括:
compose/
data/
logs/
models/(如有)
手动备份
tar -czvf moltbot-backup-$(date +%F).tar.gz \
/volume1/docker/moltbot-stack
恢复方法
1️⃣ 解压:
tar -xzvf backup.tar.gz -C /
2️⃣ 重建容器:
cd compose
docker compose up -d –build
八、常见问题排查
问题1:Slack 不回复
排查:
docker ps
docker logs -f moltbot
是否出现 [EVENT]
问题2:API 超时
排查:
curl /v1/models
检查 .env 是否正确
检查余额
问题3:容器不断重启
docker logs moltbot
通常是:
缩进错误
环境变量缺失
问题4:费用异常
检查 Slack 是否被多人使用
添加用户白名单
控制 max_tokens
九、功耗优化建议(DS220+)
建议长期模式:
默认 DeepSeek API
停止 Ollama
关闭不必要容器
设置硬盘休眠
十、未来可升级方向
添加使用次数限制
添加频道白名单
添加请求日志统计
添加费用监控
增加 Web 管理页面
增加插件工具系统
当前推荐稳定运行模式
LLM_PROVIDER=deepseek
ollama 停止
仅保留 moltbot
开机自动启动
群晖每天会定时关机,如何设置开机自动启动相关服务,保证机器人可用
五、完整自动恢复链路
早上开机时的顺序:
DSM 启动
Docker 服务启动
restart: always 启动 moltbot
moltbot 启动
Slack SocketMode 自动建立连接
机器人可用
你不需要手动干预。