2025-12-17 10:40:37 +08:00
|
|
|
|
# 🚀 XingRin - 星环 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
## 系统要求
|
|
|
|
|
|
|
|
|
|
|
|
### 硬件要求
|
|
|
|
|
|
- **CPU**: 2 核心以上
|
|
|
|
|
|
- **内存**: 4GB 以上
|
|
|
|
|
|
- **存储**: 20GB 可用空间
|
|
|
|
|
|
- **网络**: 互联网连接(用于拉取 Docker 镜像)
|
|
|
|
|
|
|
|
|
|
|
|
### 软件要求
|
|
|
|
|
|
- **操作系统**: Ubuntu 18.04+ / Debian 10+
|
|
|
|
|
|
- **权限**: sudo 管理员权限
|
|
|
|
|
|
- **端口要求**: 需要开放以下端口
|
2025-12-25 16:02:55 +08:00
|
|
|
|
- `8083` - HTTPS 访问(主要访问端口)
|
2025-12-31 17:45:25 +08:00
|
|
|
|
- `5432` - PostgreSQL 数据库(如使用本地数据库且有远程 Worker)
|
2025-12-25 16:02:55 +08:00
|
|
|
|
- 后端 API 仅容器内监听 8888,由 nginx 反代到 8083,对公网无需放行 8888
|
2025-12-31 17:45:25 +08:00
|
|
|
|
- Redis 仅在 Docker 内部网络使用,无需对外开放
|
2025-12-17 10:40:37 +08:00
|
|
|
|
|
|
|
|
|
|
## 一键安装
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 下载项目
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone https://github.com/你的用户名/xingrin.git
|
|
|
|
|
|
cd xingrin
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 执行安装
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 生产环境安装
|
|
|
|
|
|
sudo ./install.sh
|
|
|
|
|
|
|
|
|
|
|
|
# 开发环境安装(本地构建镜像)
|
|
|
|
|
|
sudo ./install.sh --dev
|
|
|
|
|
|
|
|
|
|
|
|
# 只安装后端(前端单独部署)
|
|
|
|
|
|
sudo ./install.sh --no-frontend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 访问系统
|
|
|
|
|
|
安装完成后,访问:
|
2025-12-25 16:02:55 +08:00
|
|
|
|
- **Web 界面**: https://你的服务器IP:8083/
|
2025-12-17 10:40:37 +08:00
|
|
|
|
|
|
|
|
|
|
**默认账号**:
|
|
|
|
|
|
- 用户名: `admin`
|
|
|
|
|
|
- 密码: `admin`
|
|
|
|
|
|
|
|
|
|
|
|
⚠️ **首次登录后请立即修改密码!**
|
|
|
|
|
|
|
|
|
|
|
|
## ☁️ 云服务器部署注意事项
|
|
|
|
|
|
|
|
|
|
|
|
### 端口安全组配置
|
|
|
|
|
|
**阿里云/腾讯云/华为云等云服务器默认开启安全策略,需要手动放行端口!**
|
|
|
|
|
|
|
|
|
|
|
|
#### 必须放行的端口
|
|
|
|
|
|
```
|
2025-12-25 16:02:55 +08:00
|
|
|
|
8083 - HTTPS 访问(主要访问端口)
|
2025-12-31 17:45:25 +08:00
|
|
|
|
5432 - PostgreSQL(如使用本地数据库且有远程 Worker)
|
2025-12-17 10:40:37 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 推荐方案
|
|
|
|
|
|
- **国外 VPS**:如 Vultr、DigitalOcean、Linode 等,默认开放所有端口,无需额外配置
|
|
|
|
|
|
- **国内云服务器**:需要在安全组中手动放行端口,否则无法正常访问
|
|
|
|
|
|
|
|
|
|
|
|
⚠️ **重要提醒**:端口未放行会导致:
|
|
|
|
|
|
- 无法访问 Web 界面
|
|
|
|
|
|
- 扫描功能异常
|
|
|
|
|
|
- 远程 Worker 连接失败
|
|
|
|
|
|
|
|
|
|
|
|
## 安装过程说明
|
|
|
|
|
|
|
|
|
|
|
|
### 自动安装内容
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
graph TD
|
|
|
|
|
|
A[执行 install.sh] --> B[检查系统环境]
|
|
|
|
|
|
B --> C[安装 Docker]
|
|
|
|
|
|
C --> D[生成配置文件]
|
|
|
|
|
|
D --> E[拉取 Docker 镜像]
|
|
|
|
|
|
E --> F[启动服务]
|
|
|
|
|
|
F --> G[安装完成]
|
|
|
|
|
|
|
|
|
|
|
|
style A fill:#e1f5fe
|
|
|
|
|
|
style G fill:#e8f5e8
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 安装步骤详解
|
|
|
|
|
|
1. **环境检查**: 检测操作系统、安装缺失的基础命令
|
|
|
|
|
|
2. **Docker 安装**: 自动安装 Docker 和 docker-compose
|
|
|
|
|
|
3. **配置生成**: 创建 `.env` 配置文件,生成随机密钥
|
|
|
|
|
|
4. **数据库配置**: 支持本地 PostgreSQL 或远程数据库
|
|
|
|
|
|
5. **SSL 证书**: 自动生成自签名 HTTPS 证书
|
|
|
|
|
|
6. **服务启动**: 启动所有容器服务
|
|
|
|
|
|
|
|
|
|
|
|
## 服务管理
|
|
|
|
|
|
|
|
|
|
|
|
### 常用命令
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 启动服务
|
|
|
|
|
|
./start.sh
|
|
|
|
|
|
|
|
|
|
|
|
# 停止服务
|
|
|
|
|
|
./stop.sh
|
|
|
|
|
|
|
|
|
|
|
|
# 重启服务
|
|
|
|
|
|
./restart.sh
|
|
|
|
|
|
|
|
|
|
|
|
# 卸载系统
|
|
|
|
|
|
./uninstall.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 服务状态检查
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 查看容器状态
|
|
|
|
|
|
docker ps
|
|
|
|
|
|
|
|
|
|
|
|
# 查看服务日志
|
|
|
|
|
|
docker logs xingrin-server
|
|
|
|
|
|
docker logs xingrin-frontend
|
|
|
|
|
|
docker logs xingrin-nginx
|
|
|
|
|
|
docker logs xingrin-agent
|
|
|
|
|
|
|
|
|
|
|
|
# 查看系统资源
|
|
|
|
|
|
docker stats
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
|
|
### 主要配置文件
|
|
|
|
|
|
```
|
|
|
|
|
|
docker/.env # 主配置文件
|
|
|
|
|
|
docker/nginx/ssl/ # SSL 证书目录
|
|
|
|
|
|
/opt/xingrin/results/ # 扫描结果存储
|
|
|
|
|
|
/opt/xingrin/logs/ # 系统日志存储
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 重要配置项
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 数据库配置
|
|
|
|
|
|
DB_HOST=postgres # 数据库地址
|
|
|
|
|
|
DB_PORT=5432 # 数据库端口
|
|
|
|
|
|
DB_NAME=xingrin # 数据库名称
|
|
|
|
|
|
DB_USER=postgres # 数据库用户
|
|
|
|
|
|
DB_PASSWORD=随机生成 # 数据库密码
|
|
|
|
|
|
|
|
|
|
|
|
# 服务配置
|
2025-12-19 18:37:05 +08:00
|
|
|
|
SERVER_PORT=8888 # 后端容器内部端口(仅 Docker 内网监听)
|
|
|
|
|
|
PUBLIC_HOST=server # 对外访问地址(远程 Worker 用,配置外网 IP 或域名)
|
2025-12-17 10:40:37 +08:00
|
|
|
|
DEBUG=False # 调试模式
|
|
|
|
|
|
|
|
|
|
|
|
# 版本配置
|
|
|
|
|
|
IMAGE_TAG=v1.0.0 # 镜像版本(自动设置)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 远程 Worker 部署
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 主服务器添加节点
|
|
|
|
|
|
1. 登录 Web 界面
|
|
|
|
|
|
2. 进入 **系统管理** → **Worker 节点**
|
|
|
|
|
|
3. 点击 **添加节点**,填写远程服务器信息:
|
|
|
|
|
|
- 节点名称
|
|
|
|
|
|
- IP 地址
|
|
|
|
|
|
- SSH 端口(默认 22)
|
|
|
|
|
|
- SSH 用户名
|
|
|
|
|
|
- SSH 密码
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 一键部署
|
|
|
|
|
|
点击 **部署** 按钮,系统会自动:
|
|
|
|
|
|
1. SSH 连接到远程服务器
|
|
|
|
|
|
2. 安装 Docker 环境
|
|
|
|
|
|
3. 拉取 Worker 镜像
|
|
|
|
|
|
4. 启动 Agent 容器
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 验证部署
|
|
|
|
|
|
- 节点状态显示为 **在线**
|
|
|
|
|
|
- 可以看到节点的 CPU、内存负载
|
|
|
|
|
|
- 任务分发时会自动选择最优节点
|
|
|
|
|
|
|
|
|
|
|
|
## 故障排查
|
|
|
|
|
|
|
|
|
|
|
|
### 常见问题
|
|
|
|
|
|
|
|
|
|
|
|
#### 1. 端口被占用
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 检查端口占用
|
2025-12-25 16:02:55 +08:00
|
|
|
|
sudo netstat -tlnp | grep :8083
|
2025-12-17 10:40:37 +08:00
|
|
|
|
|
|
|
|
|
|
# 停止占用端口的服务
|
|
|
|
|
|
sudo systemctl stop apache2 # 如果是 Apache
|
|
|
|
|
|
sudo systemctl stop nginx # 如果是 Nginx
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 2. Docker 权限问题
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 添加用户到 docker 组
|
|
|
|
|
|
sudo usermod -aG docker $USER
|
|
|
|
|
|
|
|
|
|
|
|
# 重新登录或执行
|
|
|
|
|
|
newgrp docker
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 3. 服务启动失败
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 查看详细错误日志
|
|
|
|
|
|
docker logs xingrin-server --tail 50
|
|
|
|
|
|
|
|
|
|
|
|
# 检查配置文件
|
|
|
|
|
|
cat docker/.env
|
|
|
|
|
|
|
|
|
|
|
|
# 重新生成配置
|
|
|
|
|
|
cp docker/.env.example docker/.env
|
|
|
|
|
|
# 重新配置后启动
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 日志查看
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 实时查看日志
|
|
|
|
|
|
docker logs -f xingrin-server
|
|
|
|
|
|
docker logs -f xingrin-agent
|
|
|
|
|
|
|
|
|
|
|
|
# 查看最近日志
|
|
|
|
|
|
docker logs --tail 100 xingrin-server
|
|
|
|
|
|
docker logs --tail 100 xingrin-agent
|
|
|
|
|
|
|
|
|
|
|
|
# 查看系统日志
|
|
|
|
|
|
tail -f /opt/xingrin/logs/*.log
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 下一步
|
|
|
|
|
|
|
|
|
|
|
|
安装完成后,建议阅读:
|
|
|
|
|
|
- [版本管理文档](./version-management.md) - 了解系统更新机制
|
|
|
|
|
|
- [API 文档](./api.md) - 集成开发接口(🚧 待完善)
|
|
|
|
|
|
- [最佳实践](./best-practices.md) - 使用建议和优化(🚧 待完善)
|
|
|
|
|
|
|
|
|
|
|
|
## 获得帮助
|
|
|
|
|
|
|
|
|
|
|
|
- 📖 [技术文档](./README.md)
|
|
|
|
|
|
- 🐛 [问题反馈](https://github.com/你的用户名/xingrin/issues)
|
|
|
|
|
|
- 💬 [讨论区](https://github.com/你的用户名/xingrin/discussions)
|
|
|
|
|
|
- 📧 联系邮箱: your-email@example.com
|