跳到主内容
文档

安装与部署

PicoAide 生产环境安装、目录规划、升级和迁移指南

本指南面向需要规划生产部署的系统管理员。在开始之前,请确保你已经完成了快速入门中的基础安装和初始化。

环境规划

操作系统

PicoAide 服务端目前支持 Linux x86_64 平台。推荐使用以下发行版:

  • Ubuntu 22.04 LTS 或更新版本
  • Debian 12+
  • CentOS Stream 9 / RHEL 9+
  • Rocky Linux 9+

磁盘规划

生产环境建议使用独立的持久化磁盘存储数据:

目录用途建议大小
/data/picoaide/picoaide.dbSQLite 数据库随用户数增长,1GB 足够 1000 用户
/data/picoaide/users/每个用户的工作区平均每用户 50-200MB,按需规划
/data/picoaide/archive/删除用户时的归档users/ 相当
/data/picoaide/skill/已安装的技能按技能数量和大小规划

网络规划

端口用途说明
:80HTTP 服务固定端口,Web 管理 + API
:443HTTPS 服务TLS 启用时自动监听

容器桥接网络 picoaide-br 使用 100.64.0.0/16 地址段。这是 CGNAT 保留地址,通常不会与公司内网冲突。

安装方式详解

从 GitHub Release 安装(推荐)

# 下载最新版本
curl -L -o picoaide \
  https://github.com/picoaide/picoaide/releases/latest/download/picoaide-linux-amd64

# 可选:验证下载完整性
curl -L -o picoaide.sha256 \
  https://github.com/picoaide/picoaide/releases/latest/download/picoaide-linux-amd64.sha256
sha256sum -c picoaide.sha256

# 安装
chmod +x picoaide
sudo mv picoaide /usr/sbin/picoaide

从源码构建

git clone https://github.com/picoaide/picoaide.git
cd picoaide

# 全量编译(picoagent + Alpine rootfs + picoaide)
sudo make build

# 或指定版本的生产构建
GOOS=linux GOARCH=amd64 make build

sudo mv picoaide /usr/sbin/picoaide

初始化最佳实践

数据目录

建议使用独立数据盘,而非系统盘:

# 挂载数据盘到 /data
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /data
echo '/dev/sdb1 /data ext4 defaults 0 0' | sudo tee -a /etc/fstab

# 创建 picoaide 数据目录
sudo mkdir -p /data/picoaide

超管密码

picoaide init 会自动创建超管账户 admin,并生成 16 位随机密码,写入 /data/picoaide/secret(权限 0600)。

建议:

  • 初始化后立即查看密码:cat /data/picoaide/secret
  • 将密码记录到安全密码管理器
  • secret 文件在超管首次登录后台后自动删除
  • 忘记密码后可通过 picoaide reset-password admin 重置

如果网络环境需要代理,请确保代理配置正确。PicoAide 的容器网络使用 picoaide-br 网桥,容器内通过 iptables SNAT 出站。

存储适配器配置

默认配置为当前的 minimal 配置。如果需要远程技能源,可以在管理后台添加 Git 仓库或注册中心源。

服务管理

systemd 服务

初始化时自动生成的 systemd 服务文件:

[Unit]
Description=PicoAide Management API Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/picoaide serve
WorkingDirectory=/data/picoaide
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

常用操作

# 启动
systemctl start picoaide

# 停止
systemctl stop picoaide

# 重启
systemctl restart picoaide

# 查看状态
systemctl status picoaide

# 查看实时日志
journalctl -u picoaide -f

# 设置开机自启(初始化时已自动设置)
systemctl enable picoaide

日志管理

PicoAide 使用结构化 JSON 日志,默认写入 logs/picoaide.log。日志轮转由 lumberjack 管理:

配置项说明默认值
web.log_level日志级别info(可选 debug/info/warn/error)
web.log_retention日志保留周期6m

升级流程

标准升级步骤

# 1. 备份数据库
sudo cp /data/picoaide/picoaide.db /data/picoaide/picoaide.db.bak.$(date +%Y%m%d)

# 2. 下载新版本二进制
curl -L -o picoaide \
  https://github.com/picoaide/picoaide/releases/latest/download/picoaide-linux-amd64
chmod +x picoaide

# 3. 替换旧二进制
sudo mv picoaide /usr/sbin/picoaide

# 4. 重启服务
systemctl restart picoaide

# 5. 验证启动
systemctl status picoaide
journalctl -u picoaide -n 50 --no-pager

数据库迁移

从旧版本升级时,系统会自动执行数据库迁移。迁移系统位于 internal/auth/migrations/,使用基于时间戳的文件注册:

init() {
  Register(Migration{
    Timestamp: "20250601093000",
    Desc:      "添加 xxx 表的新列",
    Up: func(engine *xorm.Engine) error {
      // 幂等迁移逻辑
    },
  })
}

迁移在 syncSchema() 末尾自动执行,迁移文件使用 ColumnExists 检查确保幂等。升级时无需手动操作数据库。

数据迁移

迁移到新服务器

# 1. 旧服务器:停止服务并打包
systemctl stop picoaide
tar czf picoaide-backup.tar.gz \
  -C /data picoaide/picoaide.db \
  -C /data picoaide/users \
  -C /data picoaide/archive

# 2. 传输到新服务器
scp picoaide-backup.tar.gz new-server:/tmp/

# 3. 新服务器:解压恢复
sudo mkdir -p /data/picoaide
sudo tar xzf /tmp/picoaide-backup.tar.gz -C /data

# 4. 安装相同版本 picoaide 二进制并启动
sudo systemctl start picoaide

多实例注意事项

PicoAide 当前设计为单实例部署,不支持水平扩展:

  • 数据库使用本地 SQLite,不支持共享存储
  • 沙箱管理绑定到本机 Linux 内核(bridge + namespace)
  • Bridge 创建要求节点独占 100.64.0.0/16 网段

如果需要故障转移,建议定期备份数据库并在备用服务器上准备相同的二进制版本。