# 配置文件说明

## 配置文件位置

配置文件 `config.json` 位于**脚本所在目录**（安装脚本会自动处理）。

**示例：**
- 如果脚本在 `/opt/xnode/release/`，配置文件在 `/opt/xnode/release/config.json`
- 如果脚本在 `/home/user/xnode/`，配置文件在 `/home/user/xnode/config.json`

## 配置文件结构

### 基本配置

```json
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}
```

### 包含 WHMCS 同步配置

```json
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ],
  "whmcs": {
    "enabled": true,
    "baseURL": "https://your-whmcs-domain.com/modules/addons/xray_admin/api.php",
    "token": "your-api-token",
    "pullInterval": "5m",
    "requestTimeout": "10s",
    "retry": {
      "count": 3,
      "backoff": "5s"
    },
    "nodes": [
      {
        "id": 1,
        "inboundTags": ["default"],
        "cleanup": true
      }
    ],
    "trafficReport": {
      "enabled": true,
      "interval": "10m"
    }
  }
}
```

## 配置说明

### WHMCS 配置字段

- `enabled`: 是否启用 WHMCS 同步（true/false）
- `baseURL`: WHMCS API 地址
  - 格式：`https://your-domain.com/modules/addons/xray_admin/api.php`
- `token`: API Token（在 WHMCS 后台插件设置中配置）
- `pullInterval`: 同步间隔（如 "5m" 表示 5 分钟）
- `requestTimeout`: 请求超时时间（如 "10s"）
- `nodes`: 节点配置数组
  - `id`: 节点 ID（在 WHMCS 后台节点管理中查看）
  - `inboundTags`: Inbound 标签数组（对应 xray 配置中的 inbound tag）
  - `cleanup`: 是否清理不存在的账户（true/false）
- `trafficReport`: 流量上报配置
  - `enabled`: 是否启用流量上报
  - `interval`: 上报间隔（如 "10m"）

## 编辑配置文件

```bash
# 配置文件在脚本所在目录
nano config.json

# 或者使用完整路径
nano /opt/xnode/release/config.json
```

## 配置文件权限

建议设置适当的权限：

```bash
# 设置权限（只有所有者可读写）
chmod 600 config.json

# 如果使用 root 运行服务
sudo chown root:root config.json
sudo chmod 600 config.json
```

## 验证配置

```bash
# 测试配置文件语法
/usr/local/bin/xnode run -config config.json -test

# 或者使用完整路径
/usr/local/bin/xnode run -config /opt/xnode/release/config.json -test
```

## 重新加载配置

修改配置文件后，需要重启服务：

```bash
sudo systemctl restart xnode
```

## 注意事项

1. **配置文件路径**：配置文件必须在脚本所在目录，服务文件中的路径会在安装时自动更新
2. **JSON 格式**：确保 JSON 格式正确，可以使用在线工具验证
3. **备份配置**：修改前建议备份配置文件
4. **权限问题**：确保服务运行用户有权限读取配置文件

## 相关文档

- [主文档](README.md) - 快速开始指南
- [完全自动化安装](README-AUTO.md) - 完全自动化安装指南
- [服务管理文档](README-SERVICE.md) - 服务安装和管理
- [证书管理文档](README-CERT.md) - SSL 证书申请和管理
- [证书自动续期](README-RENEW.md) - SSL 证书自动续期
- [多域名配置](README-MULTI-DOMAIN.md) - 多域名配置指南

