⚠️ 本文档由 AI 生成,尚未完全人工审核校对,内容仅供参考。请结合实际界面操作,如有出入以软件实际功能为准。
Skip to content

生产部署 ​

概述 ​

本页面介绍如何在服务器上正式部署 OpenAkita。适用于需要长期运行、多人访问、高可用的场景。

快速选择

  • 个人本地使用 → 无需看本页,直接桌面应用或 openakita 启动即可
  • 团队局域网共享 → 参考 多端访问 的场景 2
  • 正式生产环境 → 继续阅读本页

Docker Compose 部署 ​

推荐使用 Docker Compose 一键部署所有服务。

docker-compose.yml 示例 ​

yaml
services:
  openakita:
    image: openakita/openakita:latest
    container_name: openakita
    restart: unless-stopped
    ports:
      - "18900:18900"
    volumes:
      - ./data:/app/data
      - ./identity:/app/identity
      - ./skills:/app/skills
    env_file:
      - .env
    environment:
      - API_HOST=0.0.0.0
      - API_PORT=18900
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:18900/health"]
      interval: 30s
      timeout: 10s
      retries: 3

启动 ​

bash
docker compose up -d

查看日志 ​

bash
docker compose logs -f openakita

环境变量清单 ​

在 .env 文件中配置以下变量:

必需 ​

变量说明示例
LLM_API_KEYLLM 供应商的 API Keysk-...
LLM_MODEL默认使用的模型claude-sonnet-4-20250514

网络 ​

变量默认值说明
API_HOST0.0.0.0生产环境应设为 0.0.0.0
API_PORT18900服务端口
TRUST_PROXYtrue反向代理后面必须开启
CORS_ORIGINS—允许的跨域来源
WEB_PASSWORD—Web 访问密码

IM 通道 ​

变量说明
TELEGRAM_BOT_TOKENTelegram Bot Token
FEISHU_APP_ID飞书 App ID
FEISHU_APP_SECRET飞书 App Secret
DINGTALK_CLIENT_ID钉钉 Client ID
DINGTALK_CLIENT_SECRET钉钉 Client Secret

仅填写你需要使用的通道。

数据持久化 ​

以下目录包含重要数据,必须挂载为 Volume:

目录内容丢失后果
data/配置、记忆、会话历史、运行时状态所有数据丢失
identity/SOUL.md、AGENT.md 等身份文件Agent 人格丢失
skills/自定义技能文件自定义技能丢失

备份提醒

定期备份 data/ 目录。推荐使用 cron 定时任务自动备份到外部存储。

监控 ​

Prometheus + Grafana ​

OpenAkita 暴露 /metrics 端点,兼容 Prometheus 格式。

yaml
# prometheus.yml
scrape_configs:
  - job_name: 'openakita'
    static_configs:
      - targets: ['openakita:18900']
    metrics_path: /metrics
    scrape_interval: 30s

可监控的指标:

指标说明
openakita_requests_totalAPI 请求总数
openakita_llm_tokens_totalLLM Token 消耗总量
openakita_llm_latency_secondsLLM 请求延迟
openakita_active_sessions当前活跃会话数
openakita_tool_calls_total工具调用总数

Grafana Dashboard 可通过导入 monitoring/grafana/dashboards.yml 快速配置。

日志 ​

日志级别 ​

通过环境变量或 Agent 配置 设置:

bash
LOG_LEVEL=info  # debug / info / warning / error

日志输出 ​

输出说明
stdout默认输出到标准输出,Docker 自动收集
文件data/logs/ 目录,按日期轮转

生产环境推荐配合日志收集工具(如 Loki、ELK)统一管理。

备份策略 ​

自动备份脚本 ​

bash
#!/bin/bash
BACKUP_DIR="/backups/openakita"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

mkdir -p "$BACKUP_DIR"
tar czf "$BACKUP_DIR/openakita_$TIMESTAMP.tar.gz" \
    data/ identity/ skills/ .env

find "$BACKUP_DIR" -name "*.tar.gz" -mtime +30 -delete

配合 cron 定时执行 ​

bash
# 每天凌晨 3 点自动备份
0 3 * * * /opt/openakita/backup.sh

恢复 ​

bash
tar xzf openakita_20260318_030000.tar.gz -C /opt/openakita/
docker compose restart

安全加固 ​

必做 ​

  • [ ] 设置 Web 访问密码
  • [ ] 启用 HTTPS(通过反向代理)
  • [ ] 配置 CORS_ORIGINS 限制跨域
  • [ ] 设置 TRUST_PROXY=true

推荐 ​

  • [ ] 限制服务器安全组,仅开放 80/443 端口
  • [ ] 使用非 root 用户运行容器
  • [ ] 定期更新镜像 docker compose pull && docker compose up -d
  • [ ] 配置防火墙规则(iptables / ufw)
  • [ ] 启用 fail2ban 防暴力破解

反向代理配置 ​

参考 多端访问指南 中的 Nginx / Caddy 配置示例。

相关页面 ​

基于 AGPL-3.0-only 许可发布