根据 https://github.com/ruilisi/lingti-bot 构建
version: '3.8'
services:
lingti-bot:
# 使用您推送到 Docker Hub 的镜像
image: orzg/lingti-bot:latest
restart: unless-stopped
volumes:
# 挂载配置文件(只读模式,避免容器内修改)
- ${HOME}/.lingti.yaml:/root/.lingti.yaml:ro
# 持久化数据卷(存放数据库、浏览器配置等)
- lingti-data:/root/.lingti
environment:
# 必须配置的 AI 提供商和 API Key(可在此处覆盖配置文件)
- AI_PROVIDER=${AI_PROVIDER:-claude}
- AI_API_KEY=${AI_API_KEY}
# 可选:自定义 API 基础地址(如使用代理或本地模型)
- AI_BASE_URL=${AI_BASE_URL:-}
# 可选:指定模型名称(覆盖配置文件)
- AI_MODEL=${AI_MODEL:-}
# 以下为各聊天平台的环境变量,按需配置
# Slack (Socket Mode)
- SLACK_BOT_TOKEN=${SLACK_BOT_TOKEN:-}
- SLACK_APP_TOKEN=${SLACK_APP_TOKEN:-}
# Telegram
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
# Discord
- DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN:-}
# 飞书/Lark
- FEISHU_APP_ID=${FEISHU_APP_ID:-}
- FEISHU_APP_SECRET=${FEISHU_APP_SECRET:-}
# 钉钉 (Stream Mode)
- DINGTALK_CLIENT_ID=${DINGTALK_CLIENT_ID:-}
- DINGTALK_CLIENT_SECRET=${DINGTALK_CLIENT_SECRET:-}
# 企业微信 (需配合云中继,或自建回调服务)
# 其他平台可按需添加,详见官方文档
# 可选:启用调试日志
- DEBUG=${DEBUG:-false}
# 默认命令为 router,即启动消息网关模式
command: ["router"]
# 如果需要以 MCP Server 模式运行,请将 command 改为 ["serve"]
# 也可通过 docker-compose run 临时指定
# 可选:Chrome 容器,用于浏览器自动化功能
# 如果不需要浏览器工具,可注释掉此部分
chrome:
image: zenika/alpine-chrome:latest
restart: unless-stopped
command:
- "--no-sandbox"
- "--remote-debugging-address=0.0.0.0"
- "--remote-debugging-port=9222"
ports:
- "9222:9222" # 暴露调试端口,供 lingti-bot 连接
# 如果需要持久化用户数据,可取消下面注释并创建卷
# volumes:
# - chrome-data:/home/chrome
# 定义持久化卷
volumes:
lingti-data:
# chrome-data: # 如果启用 Chrome 持久化,取消注释
.lingti.yaml
# ==================== lingti-bot 配置文件示例 ====================
# 文件位置:~/.lingti.yaml
# -------------------- AI 服务配置 --------------------
ai:
# 默认 AI 提供商,可选值:deepseek, claude, openai, qwen, kimi 等(详见 AI-PROVIDERS.md)
provider: deepseek
# 对应提供商的 API Key(必填)
api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
# 可选:指定模型名称(不填则使用默认模型)
# model: "deepseek-chat"
# 可选:自定义 API 基础地址(用于代理或本地模型)
# base_url: "https://api.deepseek.com/v1"
# 按平台/频道覆盖模型(可选)
overrides:
- platform: telegram
provider: claude
api_key: "sk-ant-xxxxxxxx"
model: "claude-3-5-sonnet-20241022"
- platform: slack
channel_id: "C12345678"
provider: openai
api_key: "sk-xxxxxxxx"
model: "gpt-4o"
# -------------------- 消息平台配置 --------------------
# 以下按需填写对应平台的 Token/ID
# 各平台详细配置请参考 docs/chat-platforms.md
slack:
bot_token: "xoxb-xxxxxxxx" # Slack Bot User OAuth Token
app_token: "xapp-xxxxxxxx" # Slack App-Level Token (Socket Mode)
telegram:
bot_token: "xxxxxxxx:xxxxx" # Telegram Bot Token
discord:
bot_token: "xxxxxxxx" # Discord Bot Token
feishu:
app_id: "cli_xxxxxxxx"
app_secret: "xxxxxxxx"
dingtalk:
client_id: "xxxxxxxx"
client_secret: "xxxxxxxx"
wecom:
corp_id: "xxxx"
agent_id: "1000002"
secret: "xxxx"
token: "xxxx" # 用于回调验证
aes_key: "xxxx" # 用于消息加解密
# -------------------- 浏览器自动化配置 --------------------
browser:
# Chrome DevTools Protocol 地址(可指向本地或容器内的 Chrome)
# 格式: "host:port" 或 "ws://host:port/devtools/browser/<id>"
cdp_url: "127.0.0.1:9222" # 本地 Chrome(需以 --remote-debugging-port=9222 启动)
# 若使用 Docker 中的 chrome 服务,则改为: "chrome:9222"
# 截图默认尺寸(可选,默认 1920x1080)
screen_size: "1920x1080"
# 浏览器用户数据目录(可选,用于保存 Cookie/登录态)
# 在 Docker 中需挂载卷,此处可指定容器内路径
user_data_dir: "/root/.lingti-bot/browser"
# -------------------- 定时任务配置 --------------------
cron:
# 时区(默认 local)
timezone: "Asia/Shanghai"
# 任务列表(可在运行时通过命令动态添加,也可在此预定义)
jobs:
- name: "morning-news"
schedule: "0 9 * * *" # 每天早上9点
type: "prompt" # prompt = AI 智能任务;message = 固定消息
prompt: "搜索今天的 AI 新闻,整理成摘要发给我"
platform: "telegram" # 可选,指定发送到哪个平台
channel_id: "-1001234567890" # 可选,指定频道/群组
- name: "drink-water"
schedule: "*/30 * * * *" # 每30分钟
type: "message"
message: "💧 该喝水了!"
# -------------------- 其他全局设置 --------------------
# 日志级别(silent, info, verbose, very-verbose)
log_level: "info"
# 调试模式(true/false)
debug: false
# 自动批准模式(true/false,慎用!)
auto_approve: false
Content type
Image
Digest
sha256:a611c006b…
Size
15.7 MB
Last updated
7 months ago
docker pull orzg/lingti-bot