Skip to content

Alibaba ECS Chengdu — 服务器全貌

IP: 39.106.170.204OS: Alibaba Cloud Linux 3 Region: Chengdu, China(GFW 内) SSH: ssh -i ~/.ssh/alibaba-ecs root@39.106.170.204用户主目录: /home/twilight/


运行中的容器(2026-05-15)

Stack 1 — warehouse stack

目录: /home/twilight/twilight/compose: /home/twilight/twilight/source/deploy/compose.ymlenv: /home/twilight/twilight/.env

容器镜像内部端口公开地址功能
twilight-dataghcr.io/lacatfly/twilight-drive:<TWILIGHT_VERSION>127.0.0.1:8081api.fsagent.ccPython FastAPI — DuckDB 数据仓库、bearer auth、warehouse 路由
twilight-mcp-tushareghcr.io/lacatfly/twilight-mcp-tushare:<ver>127.0.0.1:9100mcp.fsagent.ccFastMCP Tushare server — Hermes agent 实时数据源

Stack 2 — app stack(SaaS 用户端)

目录: /home/twilight/twilight-app/compose: /home/twilight/twilight-app/compose.ymlenv: /home/twilight/twilight-app/.env

容器镜像内部端口公开地址功能
twilight-app-backendghcr.io/lacatfly/twilight-drive-backend:<ver>172.19.0.3:4000(内网)无直接公开,frontend 代理NestJS — 用户认证、订单、微信支付、provisioning
twilight-app-frontendghcr.io/lacatfly/twilight-drive-frontend:<ver>127.0.0.1:8082app.fsagent.ccReact + nginx — 用户 SaaS 前端
twilight-postgrespostgres:16-alpine内网 5432用户/订单/subscription 数据

Cloudflare Tunnel

Tunnel UUID: ec125552-c972-435f-a38d-e5ae1aeb983bTunnel 名: twilight-dataConfig: /home/twilight/.cloudflared/twilight-config.ymlCredentials: /home/twilight/.cloudflared/twilight-data-ec125552-*.json

api.fsagent.cc  → http://127.0.0.1:8081   (warehouse FastAPI)
app.fsagent.cc  → http://127.0.0.1:8082   (React SaaS 前端)
mcp.fsagent.cc  → http://127.0.0.1:9100   (MCP Tushare)

cloudflared 以 twilight 用户运行。


MCP Tushare 端点

正确端点:

  • GET /sse — SSE 连接入口(200 OK)
  • POST /messages/?session_id=<id> — 消息传递(202 Accepted)

错误端点(404):

  • /mcp/ — 不存在,不要用

日志确认每 ~3 分钟有 ListToolsRequest,说明至少一个 Hermes agent 在正常调用。


twilight-app-backend 路由表(NestJS)

POST /auth/email/login              # 邮箱 OTP 发送
GET  /auth/email/consume            # OTP 验证/消费
GET  /me/profile                    # 当前用户信息
GET  /plans                         # 套餐目录
POST /orders                        # 创建订单
GET  /orders/:id/status             # 订单状态查询
POST /payments/wechat/qrcode        # 微信支付二维码生成
POST /payments/wechat/webhook       # 微信支付回调(notify URL)
POST /payments/wechat/dev-mock-paid # 开发环境模拟支付成功
GET  /subscriptions/current         # 当前用户订阅状态
GET  /services/status               # Hermes 服务运行状态
POST /provisioning/retry-failed     # 重试失败的 provisioning 任务

微信支付 notify URL: https://app.fsagent.cc/payments/wechat/webhook


目录结构

/home/twilight/
├── .cloudflared/              # cloudflared tunnel 凭证 + config
│   ├── twilight-config.yml
│   └── twilight-data-<uuid>.json
├── .ssh/                      # SSH keys
├── data -> twilight/data      # symlink
├── hermes-profiles/           # Hermes profile 容器数据
├── twilight/                  # warehouse stack
│   ├── .env                   # TWILIGHT_VERSION, NEWAPI_BASE_URL 等
│   ├── data/                  # DuckDB 数据库文件
│   ├── logs/
│   ├── source/                # 代码(git clone)
│   │   └── deploy/compose.yml
│   └── build-v0.4.0-w2/      # 某次构建产物
└── twilight-app/              # app stack
    ├── .env                   # WeChat Pay / SMTP / JWT 等
    ├── compose.yml
    └── pgdata/                # Postgres 数据目录

关键环境变量(warehouse .env,敏感值省略)

bash
TWILIGHT_VERSION=v0.4.0-w2-qa-fix
WAREHOUSE_DB_PATH=/data/warehouse.duckdb
BEARER_DB_PATH=/data/bearers.sqlite
DUCKDB_PATH=/data/cache.duckdb
TWILIGHT_ALLOWED_HOSTS=api.fsagent.cc,localhost,127.0.0.1
LISTEN_HOST=0.0.0.0
LISTEN_PORT=8080
NEWAPI_BASE_URL=https://llm.fsagent.cc/v1
NEWAPI_API_KEY=<keychain: newapi-token-twilight-drive>

关键环境变量(app .env,敏感值省略)

bash
PORT=4000
WECHAT_APP_ID=wx80a5d5278a90e8f8
WECHAT_OAUTH_ENABLED=false
WECHAT_PAY_APPID=wx80a5d5278a90e8f8
WECHAT_PAY_MCHID=1112368105
WECHAT_PAY_ENABLED=true
WECHAT_PAY_NOTIFY_URL=https://app.fsagent.cc/payments/wechat/webhook
EMAIL_DELIVERY_MODE=smtp
SMTP_HOST=smtp.qq.com
SMTP_PORT=465

GFW 约束

服务状态
Tushare (api.tushare.pro)✅ 可直连(国内 API)
Cloudflare tunnel✅ 可用(CF 在国内有边缘节点)
ghcr.io image pull⚠️ 不稳定,需要 proxy 或 docker load
OpenAI / Anthropic❌ blocked — 通过 llm.fsagent.cc(Vultr Japan NewAPI gateway)绕行
GitHub⚠️ 间歇可用

注意事项

  • twilight-app-backend 无 healthcheck,重启后需手动确认 docker logs 是否 Nest application successfully started
  • twilight-app-backend 不暴露端口到宿主机,只在 twilight-app_default docker 网络内(172.19.0.x)。frontend nginx 容器通过 container name 代理请求
  • deploy 用户尚未创建(ECS auto-deploy pipeline 前置条件)
  • cloudflared 无 SSH ingress 配置(ssh-ecs.fsagent.cc 尚未设置)
  • build-v0.4.0-w2/ 是手动构建残留,可以清理

团队内部文档