# XNode Release Package

XNode 是基于 Xray-core 的 WHMCS 集成节点服务，支持自动同步账户和流量上报。

## 📦 文件说明

### 核心文件
- `xnode` - Linux amd64 可执行文件
- `xnode.service` - systemd 服务文件
- `install-service.sh` - 服务安装脚本
- `auto-install.sh` - 完全自动化安装脚本（推荐）

### 证书管理
- `cert-manager.sh` - 证书管理脚本（使用配置文件）
- `cert-renew.sh` - 证书自动续期脚本
- `install-cron.sh` - 自动续期定时任务安装脚本
- `cert-config.json` - 证书配置文件模板
- `env.example` - 环境变量配置文件模板

### 文档
- `README.md` - 主文档（快速开始）
- `README-AUTO.md` - 完全自动化安装指南
- `README-SERVICE.md` - 服务安装和使用详细文档
- `README-CERT.md` - SSL 证书管理完整指南
- `README-RENEW.md` - SSL 证书自动续期指南
- `README-MULTI-DOMAIN.md` - 多域名配置指南
- `README-CONFIG.md` - 配置文件详细说明

## 🚀 快速开始

### 方式一：完全自动化安装（推荐）

**使用配置文件：**

```bash
# 1. 复制环境变量配置文件模板
cp env.example .env

# 2. 编辑配置文件，填写您的配置
nano .env

# 3. 运行自动化安装脚本（自动读取 .env 文件）
chmod +x auto-install.sh
sudo ./auto-install.sh
```

**或使用环境变量：**

```bash
# 1. 设置环境变量
export CERT_EMAIL="admin@example.com"
export CERT_DOMAINS="ssrline.vip:aliyun v2dot.online:cf"
export ALIYUN_KEY="xxx" ALIYUN_SECRET="xxx"
export CF_TOKEN="xxx"

# 2. 运行自动化安装脚本
chmod +x auto-install.sh
sudo ./auto-install.sh
```

### 方式二：分步安装

```bash
# 1. 安装服务（自动创建配置文件）
chmod +x install-service.sh
sudo ./install-service.sh

# 2. 编辑配置文件（脚本所在目录/config.json）
nano config.json

# 3. 启动服务
sudo systemctl start xnode
```

配置示例（包含 WHMCS 同步）：
```json
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ],
  "whmcs": {
    "enabled": true,
    "baseURL": "https://your-domain.com/modules/addons/xray_admin/api.php",
    "token": "your-api-token",
    "pullInterval": "5m",
    "nodes": [
      {
        "id": 1,
        "inboundTags": ["default"],
        "cleanup": true
      }
    ],
    "trafficReport": {
      "enabled": true,
      "interval": "10m"
    }
  }
}
```

### 3. 启动服务

```bash
sudo systemctl start xnode
sudo systemctl status xnode
```

## 🔐 SSL 证书管理

### 快速申请证书

**方式一：完全自动化（推荐）**
```bash
export CERT_EMAIL="admin@example.com"
export CERT_DOMAINS="ssrline.vip:aliyun v2dot.online:cf"
export ALIYUN_KEY="xxx" ALIYUN_SECRET="xxx"
export CF_TOKEN="xxx"
sudo ./auto-install.sh --apply-cert
```

**方式二：使用配置文件**
```bash
# 1. 使用 auto-install.sh 自动生成配置文件
export CERT_EMAIL="admin@example.com"
export CERT_DOMAINS="ssrline.vip:aliyun v2dot.online:cf"
export ALIYUN_KEY="xxx" ALIYUN_SECRET="xxx"
export CF_TOKEN="xxx"
sudo ./auto-install.sh

# 2. 申请证书
./cert-manager.sh
```

证书会按域名分文件夹保存：
```
certs/
├── ssrline.vip/
│   ├── fullchain.pem
│   ├── privkey.pem
│   └── chain.pem
└── v2dot.online/
    ├── fullchain.pem
    ├── privkey.pem
    └── chain.pem
```

详细说明请参考：
- [README-CERT.md](README-CERT.md) - SSL 证书管理完整指南
- [README-RENEW.md](README-RENEW.md) - SSL 证书自动续期指南

## 📚 文档导航

- **[README-AUTO.md](README-AUTO.md)** - 完全自动化安装指南（推荐）
- **[README-SERVICE.md](README-SERVICE.md)** - 服务安装、配置、管理完整指南
- **[README-CERT.md](README-CERT.md)** - SSL 证书申请、配置、使用完整指南
- **[README-RENEW.md](README-RENEW.md)** - SSL 证书自动续期完整指南
- **[README-MULTI-DOMAIN.md](README-MULTI-DOMAIN.md)** - 多域名配置指南
- **[README-CONFIG.md](README-CONFIG.md)** - 配置文件详细说明

## 🔧 服务管理命令

```bash
# 启动/停止/重启
sudo systemctl start xnode
sudo systemctl stop xnode
sudo systemctl restart xnode

# 查看状态
sudo systemctl status xnode

# 查看日志
sudo journalctl -u xnode -f
```

## 📝 主要特性

- ✅ 自动同步 WHMCS 账户
- ✅ 自动上报流量统计
- ✅ 支持多节点部署
- ✅ 流量去重（避免重复统计）
- ✅ SSL 证书自动申请和续期
- ✅ 支持阿里云和 Cloudflare DNS API

## 🆘 获取帮助

- **最佳实践**：查看 [BEST-PRACTICES.md](BEST-PRACTICES.md)（强烈推荐）
- **完全自动化安装**：查看 [README-AUTO.md](README-AUTO.md)
- **多域名配置**：查看 [README-MULTI-DOMAIN.md](README-MULTI-DOMAIN.md)
- **证书自动续期**：查看 [README-RENEW.md](README-RENEW.md)
- 服务相关问题：查看 [README-SERVICE.md](README-SERVICE.md)
- 证书相关问题：查看 [README-CERT.md](README-CERT.md)
- 配置说明：查看 [README-CONFIG.md](README-CONFIG.md)

## 📋 完整文档索引

所有文档列表：
1. [README.md](README.md) - 主文档（快速开始）
2. **[BEST-PRACTICES.md](BEST-PRACTICES.md)** - 最佳实践指南（推荐）
3. [README-AUTO.md](README-AUTO.md) - 完全自动化安装指南
4. [README-SERVICE.md](README-SERVICE.md) - 服务安装和管理
5. [README-CERT.md](README-CERT.md) - SSL 证书管理
6. [README-RENEW.md](README-RENEW.md) - SSL 证书自动续期
7. [README-MULTI-DOMAIN.md](README-MULTI-DOMAIN.md) - 多域名配置
8. [README-CONFIG.md](README-CONFIG.md) - 配置文件说明
