284 lines
6.0 KiB
Markdown
284 lines
6.0 KiB
Markdown
# Cursor自动化服务部署指南
|
||
|
||
本文档详细说明如何在新服务器上从零开始部署Cursor自动化服务,包括环境准备、数据库配置、服务启动等各个步骤。
|
||
|
||
## 系统要求
|
||
|
||
- **操作系统**: Linux (推荐Ubuntu/Debian),也支持Windows和macOS
|
||
- **Python版本**: 3.7+
|
||
- **数据库**: MySQL 5.7+ 或 MariaDB 10+
|
||
- **缓存系统**: Redis 5+ (可选但推荐)
|
||
- **内存**: 至少2GB RAM
|
||
- **存储**: 至少1GB可用空间
|
||
- **网络**: 稳定的互联网连接
|
||
|
||
## 部署流程概述
|
||
|
||
1. 安装必要的系统依赖
|
||
2. 准备Python环境
|
||
3. 下载代码并安装依赖
|
||
4. 配置和初始化数据库
|
||
5. 导入邮箱账号
|
||
6. 启动服务
|
||
7. 设置为系统服务(可选)
|
||
|
||
## 详细部署步骤
|
||
|
||
### 1. 安装必要的系统依赖
|
||
|
||
#### Ubuntu/Debian系统:
|
||
|
||
```bash
|
||
# 更新系统包
|
||
sudo apt update
|
||
|
||
# 安装Python、MySQL和Redis
|
||
sudo apt install -y python3 python3-venv python3-full mysql-server redis-server
|
||
|
||
# 安装pip和开发库
|
||
sudo apt install -y python3-pip python3-dev default-libmysqlclient-dev build-essential
|
||
```
|
||
|
||
#### CentOS/RHEL系统:
|
||
|
||
```bash
|
||
# 安装Python
|
||
sudo yum install -y python3 python3-devel
|
||
|
||
# 安装MySQL
|
||
sudo yum install -y mariadb-server mariadb-devel
|
||
|
||
# 安装Redis
|
||
sudo yum install -y redis
|
||
|
||
# 启动服务
|
||
sudo systemctl start mariadb
|
||
sudo systemctl start redis
|
||
sudo systemctl enable mariadb
|
||
sudo systemctl enable redis
|
||
```
|
||
|
||
### 2. 准备Python环境
|
||
|
||
```bash
|
||
# 创建项目目录
|
||
mkdir -p /opt/cursor-service
|
||
cd /opt/cursor-service
|
||
|
||
sudo apt install python3-venv python3-full
|
||
# 创建并激活虚拟环境
|
||
python3 -m venv venv
|
||
source venv/bin/activate
|
||
```
|
||
|
||
### 3. 下载代码并安装依赖
|
||
|
||
```bash
|
||
# 下载代码(示例使用git,也可以直接上传文件)
|
||
git clone https://your-repo-url.git .
|
||
# 或者直接解压上传的zip文件
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
pip install cryptography # 确保安装cryptography包
|
||
```
|
||
|
||
### 4. 配置和初始化数据库
|
||
|
||
我们提供了两种初始化数据库的方式:
|
||
|
||
#### 方式一:使用交互式设置向导(推荐)
|
||
|
||
```bash
|
||
# 修复可能的MySQL格式化问题
|
||
python fix_setup.py
|
||
|
||
# 运行设置向导
|
||
python setup_environment.py
|
||
```
|
||
|
||
设置向导将引导您完成:
|
||
- 配置服务器标识
|
||
- 设置MySQL数据库连接信息
|
||
- 配置Redis(可选)
|
||
- 创建数据库和表结构
|
||
|
||
#### 方式二:手动执行初始化脚本
|
||
|
||
```bash
|
||
# 直接运行数据库初始化脚本
|
||
python init_database.py
|
||
```
|
||
|
||
脚本会交互式地询问:
|
||
- MySQL root用户名和密码
|
||
- 应用数据库名和用户信息
|
||
- Redis配置(可选)
|
||
|
||
### 5. 导入邮箱账号
|
||
|
||
```bash
|
||
# 准备email.txt文件,格式为:
|
||
# email@example.com----密码----client_id----refresh_token
|
||
|
||
# 运行导入脚本
|
||
python import_emails.py
|
||
```
|
||
|
||
### 6. 启动服务
|
||
|
||
有多种方式可以启动服务:
|
||
|
||
#### 方式一:使用统一管理脚本(推荐)
|
||
|
||
```bash
|
||
# 启用并启动服务
|
||
python start.py --enable
|
||
|
||
# 或者直接启动(会根据数据库中的启用状态决定是否启动服务)
|
||
python start.py
|
||
```
|
||
|
||
#### 方式二:直接启动自动服务
|
||
|
||
```bash
|
||
# 直接启动自动化服务
|
||
python auto_cursor_service.py
|
||
```
|
||
|
||
#### 方式三:仅运行注册进程
|
||
|
||
```bash
|
||
# 仅启动注册进程
|
||
python main.py
|
||
```
|
||
|
||
### 7. 设置为系统服务(可选但推荐)
|
||
|
||
#### 创建系统服务文件:
|
||
|
||
```bash
|
||
sudo nano /etc/systemd/system/cursor-service.service
|
||
```
|
||
|
||
添加以下内容:
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Cursor Auto Registration Service
|
||
After=network.target mysql.service redis.service
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=your_username
|
||
WorkingDirectory=/opt/cursor-service
|
||
ExecStart=/opt/cursor-service/venv/bin/python start.py
|
||
Restart=on-failure
|
||
RestartSec=10
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
#### 启动并设置开机自启:
|
||
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl start cursor-service
|
||
sudo systemctl enable cursor-service
|
||
```
|
||
|
||
## 管理服务
|
||
|
||
### 检查服务状态
|
||
|
||
```bash
|
||
# 查看服务状态
|
||
python start.py --status
|
||
|
||
# 如果设置为系统服务,可以使用
|
||
sudo systemctl status cursor-service
|
||
```
|
||
|
||
### 启用/禁用服务
|
||
|
||
```bash
|
||
# 启用服务
|
||
python start.py --enable
|
||
|
||
# 禁用服务
|
||
python start.py --disable
|
||
```
|
||
|
||
### 手动上传账号
|
||
|
||
```bash
|
||
python start.py --upload
|
||
```
|
||
|
||
## 数据库升级
|
||
|
||
如果您从旧版本升级,需要运行数据库升级脚本:
|
||
|
||
```bash
|
||
python upgrade_database.py
|
||
```
|
||
|
||
这会添加新的`extracted`字段和相关索引,以支持账号上传功能。
|
||
|
||
## 监控与故障排除
|
||
|
||
### 日志文件
|
||
|
||
主要日志文件:
|
||
- `auto_cursor_service.log` - 自动服务日志
|
||
- `upload_accounts.log` - 账号上传日志
|
||
- `register.log` - 注册进程日志
|
||
|
||
### 常见问题解决
|
||
|
||
1. **数据库连接失败**
|
||
- 检查MySQL服务是否运行: `sudo systemctl status mysql`
|
||
- 验证数据库用户名和密码是否正确
|
||
|
||
2. **Redis连接失败**
|
||
- 检查Redis服务是否运行: `sudo systemctl status redis`
|
||
- 如不需要Redis,可在config.yaml中设置`use_redis: false`
|
||
|
||
3. **服务无法启动**
|
||
- 检查日志文件中的具体错误信息
|
||
- 确保所有依赖包都已安装: `pip install -r requirements.txt`
|
||
|
||
4. **账号注册失败率高**
|
||
- 检查网络连接和代理设置
|
||
- 查看注册日志中的具体错误信息
|
||
|
||
5. **邮箱账号不足**
|
||
- 手动导入更多邮箱账号: `python import_emails.py`
|
||
- 检查API获取邮箱是否正常
|
||
|
||
## 备份与维护
|
||
|
||
建议定期备份数据库:
|
||
|
||
```bash
|
||
# MySQL备份
|
||
mysqldump -u [用户名] -p [数据库名] > backup_$(date +%Y%m%d).sql
|
||
```
|
||
|
||
## 安全考虑
|
||
|
||
1. 使用强密码保护数据库
|
||
2. 限制MySQL和Redis只接受本地连接
|
||
3. 保护config.yaml文件,不要泄露API密钥和数据库密码
|
||
4. 定期更新系统和依赖包
|
||
|
||
## 更新服务
|
||
|
||
更新服务代码后,请按以下步骤操作:
|
||
|
||
1. 停止服务: `python start.py --disable` 或 `sudo systemctl stop cursor-service`
|
||
2. 更新代码
|
||
3. 如有新的依赖,安装: `pip install -r requirements.txt`
|
||
4. 如有数据库结构变更,运行升级脚本: `python upgrade_database.py`
|
||
5. 重新启动服务: `python start.py --enable` 或 `sudo systemctl start cursor-service` |