AstrBot搭建教程

通过 Docker Compose 部署(推荐)

1. 仅部署 AstrBot(通用方式)

这是最基础的部署方式,适合大多数用户。

第一步:克隆仓库

git clone https://github.com/AstrBotDevs/AstrBot
cd AstrBot

第二步:运行 Compose

sudo docker compose up -d

中国大陆用户注意:如果拉取失败,请修改 compose.yml 文件,将 image: soulter/astrbot:latest 替换为 image: m.daocloud.io/docker.io/soulter/astrbot:latest


2. 带 Agent 沙盒环境的部署

如果您需要支持原生的 Python 代码执行、Shell 代码执行等功能,可以使用带沙盒环境的部署方式

git clone https://github.com/AstrBotDevs/AstrBot
cd AstrBot
# 修改 compose-with-shipyard.yml 文件中的环境变量配置(如 Shipyard 的 access token 等)
docker compose -f compose-with-shipyard.yml up -d
docker pull soulter/shipyard-ship:latest

配置和使用详见 Agent 沙盒环境文档


3. 和 NapCat 一起部署

如果您想对接 NapCat,可以使用这种方式同时部署 AstrBot 和 NapCat

mkdir astrbot
cd astrbot
wget https://raw.githubusercontent.com/NapNeko/NapCat-Docker/main/compose/astrbot.yml
sudo docker compose -f astrbot.yml up -d


方式二:通过 Docker 命令直接部署

如果不想使用 Docker Compose,也可以直接用 docker run 命令部署。

Linux / Mac 系统

mkdir astrbot
cd astrbot
sudo docker run -itd -p 6185:6185 -p 6199:6199 \
  -v $PWD/data:/AstrBot/data \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  --name astrbot soulter/astrbot:latest

中国大陆用户:请将镜像替换为:

sudo docker run -itd -p 6185:6185 -p 6199:6199 \
  -v $PWD/data:/AstrBot/data \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  --name astrbot m.daocloud.io/docker.io/soulter/astrbot:latest

Windows 用户注意:Windows 下不需要加 sudo[reference:13]

Windows WSL2 用户同步 Host Time

-v \\wsl.localhost\(your-wsl-os)\etc\timezone:/etc/timezone:ro \
-v \\wsl.localhost\(your-wsl-os)\etc\localtime:/etc/localtime:ro


方式三:通过 Windows Docker Desktop 部署

使用 CMD

docker run -itd -p 6185:6185 -p 6199:6199 \
  -e TZ=Asia/Shanghai \
  -v "%cd%\data:/AstrBot/data" \
  --name astrbot soulter/astrbot:latest

中国大陆用户:请将镜像替换为:

docker run -itd -p 6185:6185 -p 6199:6199 \
  -e TZ=Asia/Shanghai \
  -v "%cd%\data:/AstrBot/data" \
  --name astrbot m.daocloud.io/docker.io/soulter/astrbot:latest

TZ 的值请设置为 IANA 时区标准格式(地区/城市),例如中国为 Asia/Shanghai

使用 PowerShell

docker run -itd -p 6185:6185 -p 6199:6199 \
  -e TZ=Asia/Shanghai \
  -v "${PWD}\data:/AstrBot/data" \
  --name astrbot soulter/astrbot:latest

中国大陆用户:请将镜像替换为:

docker run -itd -p 6185:6185 -p 6199:6199 \
  -e TZ=Asia/Shanghai \
  -v "${PWD}\data:/AstrBot/data" \
  --name astrbot m.daocloud.io/docker.io/soulter/astrbot:latest


验证部署与后续步骤

查看日志

通过以下命令查看 AstrBot 的运行日志:

sudo docker logs -f astrbot

访问管理面板

如果一切顺利,您会看到 AstrBot 打印出的日志。如果没有报错,您会看到一条日志显示类似 “管理面板已启动” 并附带了几条链接。打开其中一个链接即可访问 AstrBot 管理面板

重要提示

  • 由于 Docker 隔离了网络环境,不能使用 localhost 访问管理面板
  • 首次登录请使用启动日志中打印的随机初始密码(用户名通常为 astrbot)。登录后请立即修改密码
  • 如果部署在云服务器上,需要在相应厂商控制台里放行对应端口(6185 和 6199)
THE END
喜欢就支持一下吧
点赞13 分享