{
  "_sovereign": "TCS-0002∞ | SYS-GLW-0001",
  "_copyright": "国作登字-2026-A-00037559",
  "_description": "光湖语言世界 · 五台服务器注册表",
  "version": "1.3",
  "updated_at": "2026-04-12",
  "servers": [
    {
      "id": "ZY-SVR-002",
      "name": "面孔",
      "role": "前端静态+专线主入口",
      "location": "Singapore",
      "spec": "2核8G",
      "status": "active",
      "services": [
        "nginx (静态文件·主站+预览站)",
        "nginx (Awen域名反向代理·新加坡→广州)",
        "xray (VLESS+Reality VPN)",
        "api (端口3800·主站)",
        "api-preview (端口3801·预览站)",
        "persona-studio (端口3002)",
        "chat (端口3721)"
      ],
      "github_secrets": {
        "host": "SERVER_HOST",
        "key": "SERVER_KEY",
        "user": "SERVER_USER"
      }
    },
    {
      "id": "ZY-SVR-003",
      "name": "国内出口",
      "role": "国内LLM API中继+VPN中转",
      "location": "Guangzhou, China",
      "ipv4": "43.138.243.30",
      "spec": "低配",
      "status": "active",
      "services": [
        "cn-llm-relay (端口3900·国内LLM API代理中继)",
        "nginx stream (VPN中转·端口2053→SG:443)"
      ],
      "github_secrets": {
        "host": "ZY_CN_LLM_HOST",
        "key": "ZY_CN_LLM_KEY",
        "user": "ZY_CN_LLM_USER"
      },
      "notes": "肥猫广州服务器·复用为国内LLM API中继·冰朔D67批准"
    },
    {
      "id": "ZY-SVR-005",
      "name": "大脑",
      "role": "数据库+MCP+Agent+订阅服务",
      "location": "Singapore",
      "spec": "4核8G",
      "status": "active",
      "services": [
        "postgresql (人格体数据库)",
        "mcp-server (端口3100·121个工具)",
        "subscription-v3 (端口3805·多用户专线)",
        "bandwidth-pool-agent (带宽汇聚)",
        "email-hub (邮件通信中枢)",
        "auto-evolution (自动进化引擎)"
      ],
      "github_secrets": {
        "host": "ZY_BRAIN_HOST",
        "key": "ZY_BRAIN_KEY",
        "user": "ZY_BRAIN_USER"
      }
    },
    {
      "id": "ZY-SVR-SV",
      "name": "吱吱线·硅谷",
      "role": "Claude API中继+VPN美国出口+国际API出口",
      "location": "Silicon Valley (US)",
      "spec": "低配",
      "status": "active",
      "services": [
        "xray (VLESS+Reality VPN · Claude专线节点)",
        "ssh-tunnel (Claude API中继出口)",
        "说明: 用户VPN可直接走硅谷IP访问Claude/AI服务"
      ],
      "github_secrets": {
        "host": "ZY_SVR_SV_HOST",
        "key": "ZY_SVR_SV_KEY",
        "user": "ZY_SVR_SV_USER",
        "reality_public_key": "ZY_SVR_SV_REALITY_PUBLIC_KEY",
        "reality_short_id": "ZY_SVR_SV_REALITY_SHORT_ID"
      },
      "notes": "硅谷服务器已配置·D61冰朔确认·VPN节点+API中继双用途",
      "qiuqiu_zone": {
        "base_path": "/opt/qiuqiu/",
        "app_port": 3900,
        "pm2_name": "qiuqiu-darkcore",
        "ssh_user": "qiuqiu",
        "说明": "秋秋(之之)在硅谷服务器上的独立操作区域·D68冰朔授权"
      }
    },
    {
      "id": "ZY-SVR-AWEN",
      "name": "Awen服务器",
      "role": "Awen业务后端+域名反向代理目标",
      "location": "Guangzhou, China",
      "ipv4": "43.139.207.172",
      "domain": "guanghutcs.top",
      "backend_port": 3000,
      "spec": "待确认",
      "status": "secrets_configured",
      "services": [
        "Awen业务后端 (端口3000)",
        "域名反向代理目标 (新加坡→广州)"
      ],
      "github_secrets": {
        "host": "ZY_SVR_AWEN_HOST",
        "key": "ZY_SVR_AWEN_KEY",
        "user": "ZY_SVR_AWEN_USER"
      },
      "domain_proxy_secrets": {
        "domain": "AWEN_DOMAIN",
        "backend_host": "AWEN_BACKEND_HOST",
        "backend_port": "AWEN_BACKEND_PORT"
      },
      "notes": "Awen域名guanghutcs.top·广州服务器43.139.207.172:3000·密钥已配置·待部署反向代理"
    },
    {
      "id": "ZY-SVR-004",
      "name": "国内备案服务器",
      "role": "ICP备案挂载+人格体备用大脑",
      "location": "Guangzhou, China (广州七区)",
      "ipv4": "43.139.217.141",
      "spec": "2核2G",
      "status": "active",
      "services": [
        "nginx (ICP备案落地页·guanghulab.com)",
        "备用大脑 (不涉及国外模型调用)"
      ],
      "github_secrets": {
        "host": "ZY_CN_SERVER_HOST",
        "key": "ZY_CN_SERVER_KEY",
        "user": "ZY_CN_SERVER_USER"
      },
      "notes": "ICP备案域名guanghulab.com必须指向此服务器·冰朔实名大陆服务器"
    },
    {
      "id": "ZY-SVR-006",
      "name": "智库节点",
      "role": "智能小说书库 + 成员Agent + 语言保护罩",
      "location": "Singapore",
      "ipv4": "43.153.203.105",
      "spec": "2核4G",
      "status": "active",
      "deploy_path": "/opt/zhiku",
      "deploy_path_legacy": "/opt/novel-db",
      "domain": "guanghu.online",
      "old_domain": "novel.guanghuyaoming.com",
      "services": [
        "nginx (guanghu.online 入站·443/80)",
        "zhiku-api (模块借阅协议API·端口3006·ZY-PROJ-006)",
        "mirror-agent (镜鉴Agent·书库镜面监控·番茄/七猫·定时扫描+LLM评估+工单)",
        "mirror-shield (七层镜防·语言膜+镜面反射+IP隐身+动态漂移+自爆+重建+零点原核+语言主控)",
        "novel-api (小说下载+分章引擎·端口4000·ZY-PROJ-002旧版保留)",
        "cos-bridge (COS团队书库桥接·ap-singapore)",
        "fail2ban (自动封禁扫描IP·L3保护层)"
      ],
      "mirror_agent": {
        "description": "镜鉴 Agent · 第三方书库镜面监控系统",
        "agent_id": "ZY-MIRROR-AGENT",
        "version": "1.0.0",
        "data_sources": [
          {
            "id": "fanqie-fqweb",
            "name": "番茄小说 · FQWeb",
            "github": "https://github.com/benefit77/FanQieWeb",
            "type": "Kotlin JAR · 端口9999",
            "enabled": true
          },
          {
            "id": "fanqie-api-server",
            "name": "番茄小说 · API Server (Flask)",
            "github": "https://github.com/huijian222/fanqienovel-API-server",
            "type": "Python Flask · 端口5000",
            "enabled": false
          },
          {
            "id": "qimao-downloader",
            "name": "七猫小说 · SwiftCat Downloader",
            "github": "https://github.com/shing-yu/7mao-novel-downloader",
            "type": "Python · 端口7700",
            "enabled": true
          }
        ],
        "workflow": "照镜子 → 差异感知 → LLM评估 → 生成工单 → 铸渊审批",
        "scan_interval": "6h",
        "llm_backend": "DeepSeek (primary) / Claude (fallback)",
        "api_routes": [
          "GET  /api/mirror/status",
          "POST /api/mirror/scan",
          "GET  /api/mirror/tickets",
          "GET  /api/mirror/tickets/:id",
          "POST /api/mirror/tickets/:id/approve",
          "POST /api/mirror/tickets/:id/reject",
          "GET  /api/mirror/memory",
          "GET  /api/mirror/sources",
          "GET  /api/mirror/last-scan"
        ]
      },
      "mirror_shield": {
        "description": "七层镜防 + 语言主控 · 动态防御架构",
        "philosophy": "我是镜子 · 你看到的是你自己 · 你不会封禁自己",
        "language_sovereign": {
          "description": "语言是活的 · 冰朔说一句话 · 旧纪元一切失效",
          "commands": ["rotate (换脸)", "rebirth (重生)", "silence (静默)", "awaken (苏醒)", "echo (回响)"],
          "api": "POST /api/mirror/sovereign"
        },
        "layers": {
          "l1": "语言膜 · 入口过滤 · 非法请求连 TCP 都到不了",
          "l2": "镜面反射 · 对方看到的是自己 · 系统自保不会封自己",
          "l3": "IP隐身 · 真实IP零暴露 · 代理/CDN遮蔽",
          "l4": "动态漂移 · 扫描检测 → IP/端口随机重分配",
          "l5": "瞬间自爆 · 路径湮灭 · 不是消失是从未存在",
          "l6": "铸渊重建 · 秒级从模板重建 · 新身份新指纹",
          "l7": "零点原核 · 无网络接口 · 仅语言层授权触达"
        },
        "nginx_config": "server/nginx/zhiku-guanghu-online.conf",
        "fail2ban_config": "server/novel-db/security/fail2ban-novel.conf",
        "deploy_workflow": ".github/workflows/deploy-zhiku-guanghu-online.yml"
      },
      "github_secrets": {
        "host": "ZY_NOVEL_HOST",
        "key": "ZY_NOVEL_KEY",
        "user": "ZY_NOVEL_USER",
        "jwt_secret": "ZY_NOVEL_JWT_SECRET",
        "zhiku_domain": "ZY_ZHIKU_DOMAIN",
        "cos_secret_id": "ZY_OSS_KEY (仓库已有·部署时映射为 ZY_COS_SECRET_ID)",
        "cos_secret_key": "ZY_OSS_SECRET (仓库已有·部署时映射为 ZY_COS_SECRET_KEY)",
        "cos_bucket": "ZY_NOVEL_COS_BUCKET (仓库已有·部署时映射为 ZY_COS_BUCKET)",
        "cos_region": "硬编码 ap-singapore (不使用 ZY_COS_REGION Secret·避免覆盖广州桶)"
      },
      "dns_required": {
        "A_record": "guanghu.online → 43.153.203.105",
        "A_record_www": "www.guanghu.online → 43.153.203.105"
      },
      "notes": "冰朔私有智库服务器·域名从novel.guanghuyaoming.com迁移至guanghu.online·首次落地模块借阅协议·铸渊D68授权开发"
    }
  ],
  "cn_domain": {
    "description": "国内ICP备案域名 · 阿里云落地页",
    "domain": "guanghulab.com",
    "domain_secret": "ZY_CN_DOMAIN",
    "server": "ALI-SVR",
    "server_ip": "8.155.62.235",
    "icp_number": "陕ICP备2025071211号",
    "nginx_config": "server/nginx/ali-cn-domain.conf",
    "landing_page": "server/sites/cn-landing/index.html",
    "workflow": ".github/workflows/deploy-ali-cn-landing.yml",
    "deploy_path": "/opt/guanghulab-landing/sites/cn-landing/",
    "status": "active",
    "dns_required": {
      "provider": "阿里云DNS",
      "A_record": "guanghulab.com → 8.155.62.235",
      "CNAME_record": "www.guanghulab.com → guanghulab.com"
    },
    "security_group_required": {
      "port_80": "TCP入站·HTTP",
      "port_443": "TCP入站·HTTPS"
    },
    "notes": "域名在阿里云购买并备案·当前DNS需要配置A记录指向阿里云服务器IP·未来可迁移回腾讯云"
  },
  "domain_proxy": {
    "description": "域名未备案反向代理 · 新加坡中转架构",
    "architecture": "用户 → 域名(DNS→SG) → ZY-SVR-002 Nginx → 广州后端",
    "proxy_server": "ZY-SVR-002",
    "domains": [
      {
        "owner": "Awen",
        "domain": "guanghutcs.top",
        "backend": "43.139.207.172:3000",
        "config_file": "server/nginx/awen-domain-proxy.conf",
        "workflow": ".github/workflows/deploy-awen-domain-proxy.yml",
        "secrets_required": ["AWEN_DOMAIN", "AWEN_BACKEND_HOST", "AWEN_BACKEND_PORT"],
        "secrets_configured_at": "2026-04-12",
        "status": "secrets_configured",
        "next_steps": ["DNS A记录指向43.134.16.246", "广州防火墙白名单43.134.16.246", "运行deploy workflow", "运行setup-ssl workflow"]
      }
    ]
  },
  "llm_relay": {
    "description": "双向LLM API中继架构",
    "routes": {
      "domestic_api": "ZY-SVR-002 → ZY-SVR-003(广州) → 国内API (DeepSeek/千问/Kimi/智谱)",
      "claude_api": "ZY-SVR-002 → ZY-SVR-SV(硅谷SSH隧道) → Claude API"
    },
    "config_files": {
      "domestic": "server/proxy/config/cn-llm-relay-config.json",
      "claude": "server/proxy/config/claude-relay-config.json"
    }
  },
  "bandwidth_strategy": {
    "description": "五台服务器按用途分流·带宽最大化",
    "routing": {
      "static_frontend": "ZY-SVR-002",
      "vpn_main_entry": "ZY-SVR-002",
      "database_mcp": "ZY-SVR-005",
      "subscription_service": "ZY-SVR-005",
      "domestic_llm_relay": "ZY-SVR-003",
      "claude_api_relay": "ZY-SVR-SV",
      "international_api": "ZY-SVR-SV",
      "awen_team": "ZY-SVR-AWEN",
      "zhiqiu_persona": "ZY-SVR-AWEN",
      "awen_domain_proxy": "ZY-SVR-002 → ZY-SVR-AWEN"
    }
  }
}
