跳到主要内容

系统组件

仓库​

组件仓库镜像
面板(API + Web 界面)xray-panel/backendghcr.io/xray-panel/backend
节点xray-panel/nodeghcr.io/xray-panel/node
订阅页面xray-panel/subscription-pageghcr.io/xray-panel/subscription-page
部署xray-panel/deploycompose 文件和 nginx 配置

面板前端会打包进后端镜像(容器内的 frontend-dist), 因此不需要为界面单独运行一个容器。

面板​

  • HTTP API 和 Web 界面位于 APP_PORT(默认 3000,仅通过反向代理对外)。
  • PostgreSQL —— 主要存储。容器 xpanel-db。
  • Valkey(兼容 Redis)—— 队列、缓存、pub/sub。容器 xpanel-redis。
  • Prometheus 指标位于 METRICS_PORT(默认 3001),由 METRICS_USER / METRICS_PASS 的 basic auth 保护。

面板是唯一存储个人数据的组件。

节点​

节点没有数据库,不会主动连接面板。面板通过 NODE_PORT(默认 2222) 以 mutual TLS 和 JWT 访问它。由此得到一个重要结论:NODE_PORT 必须 能从面板服务器访问,而不是从管理员的浏览器访问。

节点存储什么、访问什么:

  • 不会把用户数据写入磁盘 —— 只有 Xray 日志写入 /var/log/xray (限制 10 MB,不归档);
  • 内存中保存客户端 UUID 集合,用于检测配置变更;
  • 没有到面板的出站连接 —— 只有入站;
  • 唯一携带用户数据的出站请求是 torrent-blocker webhook, 且仅在插件中启用时才会发出。

订阅页面​

独立容器,通过 API 令牌从面板读取数据,向最终用户展示美化后的连接列表。 运行在 APP_PORT(默认 3010),对外使用带 HTTPS 的独立子域名。

变量名 REMNAWAVE_PANEL_URL 和 REMNAWAVE_API_TOKEN 为兼容性而保留: 这样订阅页面也能与旧版面板配合使用。

端口​

端口组件访问
3000面板仅 127.0.0.1,通过 nginx 对外
3001面板指标仅 127.0.0.1
3010订阅页面仅 127.0.0.1,通过 nginx 对外
2222节点可从面板服务器访问
任意Xray 代理对客户端开放

许可证与署名​

XLADA 以 AGPL-3.0-only 发布,是 Remnawave 的衍生作品。AGPL 第 13 条要求服务用户能够获取源代码:请确保你的用户可以访问 组织仓库的链接。