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 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.internal 或 172.17.0.1
。
Q: Kubernetes 中 Pod 频繁重启?
A: 检查资源限制,确保有足够的内存和 CPU。
Q: 如何更新 CoPaw?
A:
# 本地
pip install --upgrade copaw
Docker
docker-compose pull
docker-compose up -d







