Copaw Deployment

CoPaw 部署指南

本文介绍 CoPaw 的各种部署方式,包括本地部署、Docker 部署、云服务部署等。

本地部署

系统要求

  • 操作系统:Linux、macOS、Windows(WSL)
  • Python 版本:3.8 或更高
  • 内存:建议 4GB 以上
  • 磁盘空间:建议 10GB 以上

安装步骤

1. 安装 Python

Linux

sudo apt update

sudo apt install python3 python3-pip

macOS

brew install python3

Windows

python.org

下载并安装 Python 3.8+。

2. 安装 CoPaw

pip install copaw

3. 初始化

copaw init

4. 配置

# 配置模型

copaw config set agent.model_provider dashscope

copaw config set agent.model_name qwen3.5-plus

配置 API 密钥

copaw env set DASHSCOPE_API_KEY your-api-key

5. 启动

copaw app start

Docker 部署

Dockerfile

FROM python:3.11-slim

WORKDIR /app

安装 CoPaw

RUN pip install copaw

复制配置

COPY .env /app/.env

COPY config.json /app/.copaw/config.json

暴露端口

EXPOSE 8088

设置工作目录

ENV COPAW_WORK_DIR=/app/.copaw

启动 CoPaw

CMD ["copaw", "app"]

docker-compose.yml

version: '3.8'

services:

copaw:

build: .

container_name: copaw

ports:

  • "8088:8088"

environment:

  • DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY}
  • LOG_LEVEL=info

volumes:

  • copaw_data:/root/.copaw
  • copaw_logs:/var/log/copaw

restart: unless-stopped

healthcheck:

test: ["CMD", "curl", "-f", "http://localhost:8088/health"]

interval: 30s

timeout: 10s

retries: 3

volumes:

copaw_data:

copaw_logs:

部署步骤

1. 创建 .env 文件

DASHSCOPE_API_KEY=your-api-key

LOG_LEVEL=info

2. 创建 config.json

cat > config.json << EOF

{

"version": "1.0.0",

"server": {

"host": "0.0.0.0",

"port": 8088

},

"agent": {

"model_provider": "dashscope",

"model_name": "qwen3.5-plus"

}

}

EOF

3. 构建和启动

# 构建镜像

docker-compose build

启动服务

docker-compose up -d

查看日志

docker-compose logs -f

停止服务

docker-compose down

Kubernetes 部署

Deployment

apiVersion: apps/v1

kind: Deployment

metadata:

name: copaw

spec:

replicas: 2

selector:

matchLabels:

app: copaw

template:

metadata:

labels:

app: copaw

spec:

containers:

  • name: copaw

image: copaw:latest

ports:

  • containerPort: 8088

env:

  • name: DASHSCOPE_API_KEY

valueFrom:

secretKeyRef:

name: copaw-secrets

key: dashscope-api-key

volumeMounts:

  • name: copaw-data

mountPath: /root/.copaw

resources:

requests:

memory: "512Mi"

cpu: "500m"

limits:

memory: "2Gi"

cpu: "2000m"

livenessProbe:

httpGet:

path: /health

port: 8088

initialDelaySeconds: 30

periodSeconds: 10

readinessProbe:

httpGet:

path: /health

port: 8088

initialDelaySeconds: 5

periodSeconds: 5

volumes:

  • name: copaw-data

persistentVolumeClaim:

claimName: copaw-pvc


apiVersion: v1

kind: Service

metadata:

name: copaw

spec:

selector:

app: copaw

ports:

  • protocol: TCP

port: 80

targetPort: 8088

type: LoadBalancer


apiVersion: v1

kind: Secret

metadata:

name: copaw-secrets

type: Opaque

data:

dashscope-api-key: <base64-encoded-key>


apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name: copaw-pvc

spec:

accessModes:

  • ReadWriteOnce

resources:

requests:

storage: 10Gi

部署步骤

# 应用配置

kubectl apply -f copaw.yaml

查看状态

kubectl get pods

kubectl get services

查看日志

kubectl logs -f deployment/copaw

云服务部署

AWS EC2

1. 启动 EC2 实例

  • 选择 Amazon Linux 2 或 Ubuntu
  • 实例类型:t3.medium 或更高
  • 安全组:开放 8088 端口

2. 安装依赖

sudo yum update -y

sudo yum install -y python3 python3-pip git

3. 安装 CoPaw

pip3 install copaw

4. 配置和启动

# 配置

copaw config set server.host 0.0.0.0

copaw config set server.port 8088

启动

copaw app start

5. 使用 Systemd 管理服务

[Unit]

Description=CoPaw AI Assistant

After=network.target

[Service]

Type=simple

User=ec2-user

WorkingDirectory=/home/ec2-user

Environment="PYTHONUNBUFFERED=1"

ExecStart=/usr/local/bin/copaw app start

Restart=always

RestartSec=10

[Install]

WantedBy=multi-user.target

# 安装服务

sudo cp copaw.service /etc/systemd/system/

sudo systemctl daemon-reload

sudo systemctl enable copaw

sudo systemctl start copaw

阿里云 ECS

1. 启动 ECS 实例

  • 选择 CentOS 7 或 Ubuntu 20.04
  • 实例规格:2核4G 或更高
  • 安全组:开放 8088 端口

2. 安装依赖

sudo yum update -y

sudo yum install -y python3 python3-pip

3. 安装 CoPaw

pip3 install copaw

4. 配置和启动

同 AWS EC2 步骤。

腾讯云 CVM

步骤与阿里云 ECS 类似。

反向代理配置

Nginx

server {

listen 80;

server_name copaw.example.com;

location / {

proxy_pass http://127.0.0.1:8088;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

location /ws/ {

proxy_pass http://127.0.0.1:8088/ws/;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

}

Apache

<VirtualHost *:80>

ServerName copaw.example.com

ProxyPreserveHost On

ProxyRequests Off

ProxyPass / http://127.0.0.1:8088/

ProxyPassReverse / http://127.0.0.1:8088/

</VirtualHost>

SSL 配置

Let's Encrypt

# 安装 Certbot

sudo apt install certbot python3-certbot-nginx

获取证书

sudo certbot --nginx -d copaw.example.com

自动续期

sudo certbot renew --dry-run

自签名证书

# 生成证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 \

-keyout /etc/ssl/private/copaw.key \

-out /etc/ssl/certs/copaw.crt

配置 Nginx

server {

listen 443 ssl;

server_name copaw.example.com;

ssl_certificate /etc/ssl/certs/copaw.crt;

ssl_certificate_key /etc/ssl/private/copaw.key;

location / {

proxy_pass http://127.0.0.1:8088;

}

}

监控和日志

监控

# 启用监控

export COPAW_ENABLE_MONITORING=true

export COPAW_MONITORING_PORT=9090

访问监控

http://your-server:9090/metrics

日志

# 日志配置

export LOG_FILE=/var/log/copaw.log

export LOG_LEVEL=info

查看日志

tail -f /var/log/copaw.log

Prometheus 集成

scrape_configs:

  • job_name: 'copaw'

static_configs:

  • targets: ['localhost:9090']

备份和恢复

备份

#!/bin/bash

BACKUP_DIR="/backup/copaw/$(date +%Y%m%d_%H%M%S)"

mkdir -p $BACKUP_DIR

备份配置

cp ~/.copaw/config.json $BACKUP_DIR/

备份数据

cp -r ~/.copaw/memory $BACKUP_DIR/

导出数据

copaw export all > $BACKUP_DIR/copaw_backup.json

压缩

tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIR

echo "备份完成:$BACKUP_DIR.tar.gz"

恢复

#!/bin/bash

解压备份

tar -xzf copaw_backup_YYYYMMDD.tar.gz

恢复配置

cp config.json ~/.copaw/

恢复数据

cp -r memory ~/.copaw/

重启服务

copaw app restart

常见问题

Q: Docker 容器无法访问宿主机服务?

A: 使用 host.docker.internal172.17.0.1

Q: Kubernetes 中 Pod 频繁重启?

A: 检查资源限制,确保有足够的内存和 CPU。

Q: 如何更新 CoPaw?

A:

# 本地

pip install --upgrade copaw

Docker

docker-compose pull

docker-compose up -d

相关资源

发表回复

后才能评论