如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Webhook Relay Server 是一个独立部署的轻量级 Webhook 转发服务,旨在解决跨网络环境下的 Webhook 通信问题。其核心功能是接收来自源端的 Webhook 请求,经过简单处理(如验证、过滤)后,转发至目标服务端点。
主要用途:
内网服务接收公网 Webhook
多源 Webhook 聚合
Webhook 安全加固
跨网络环境转发
通过 docker run 命令可快速部署单实例服务,示例如下:
bashdocker run -d \ --name webhook-relay \ -p 8080:8080 \ # 映射容器端口到主机 -e LISTEN_PORT=8080 \ # 容器内监听端口 -e TARGET_DEFAULT=https://backend-service:3000/webhook \ # 默认转发目标(必填) -e AUTH_TOKEN=your-relay-token-123 \ # 源端请求验证 Token(可选,建议配置) -e LOG_LEVEL=info \ # 日志级别(debug/info/warn/error,默认 info) webhook-relay-server:latest
对于多实例或需持久化配置的场景,推荐使用 docker-compose.yml 管理:
yamlversion: "3.8" services: webhook-relay: image: webhook-relay-server:latest container_name: webhook-relay restart: always # 异常退出自动重启 ports: - "8080:8080" # HTTP 端口 - "8443:8443" # HTTPS 端口(如需启用) environment: - LISTEN_PORT=8080 - LISTEN_SSL_PORT=8443 # 启用 HTTPS 时需配置 - TARGET_DEFAULT=https://backend.default:3000 # 默认转发目标 - AUTH_TOKEN=your-relay-token-123 # 全局请求验证 Token - IP_WHITELIST=192.168.1.0/24,10.0.0.1 # 允许的请求源 IP 白名单(可选) - SSL_CERT_PATH=/etc/relay/cert.pem # SSL 证书路径(挂载外部证书) - SSL_KEY_PATH=/etc/relay/key.pem # SSL 私钥路径 volumes: - ./relay-config:/etc/relay # 挂载证书或自定义路由配置文件 networks: - backend-network # 接入后端服务所在网络(如需直接通信) networks: backend-network: external: true # 假设后端服务已在该网络中
| 参数名 | 说明 | 默认值 | 是否必填 |
|---|---|---|---|
LISTEN_PORT | 服务监听的 HTTP 端口 | 8080 | 否 |
LISTEN_SSL_PORT | 服务监听的 HTTPS 端口(未配置则不启用 HTTPS) | - | 否 |
TARGET_DEFAULT | 默认转发目标 URL(所有未匹配自定义路由的请求将转发至此) | - | 是 |
AUTH_TOKEN | 全局请求验证 Token(源端需在 Header 中携带 X-Relay-Token: <token>) | - | 否 |
IP_WHITELIST | 请求源 IP 白名单(逗号分隔,支持 CIDR 格式,如 192.168.1.0/24) | 允许所有 IP | 否 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info | 否 |
SSL_CERT_PATH | SSL 证书文件路径(需通过 volume 挂载,与 LISTEN_SSL_PORT 配合使用) | - | 否 |
SSL_KEY_PATH | SSL 私钥文件路径(同上) | - | 否 |
ROUTE_CONFIG_PATH | 自定义路由配置文件路径(JSON/YAML 格式,支持多路径路由) | - | 否 |
如需按请求路径转发至不同目标(如 /github 转发至 GitHub 处理服务,/slack 转发至 Slack 通知服务),可通过配置文件实现。
配置文件格式(YAML 示例,route.yaml):
yamlroutes: - path: "/github" # 请求路径匹配(前缀匹配,如 `/github/webhook` 也会命中) target: "https://github-handler:3000" # 目标服务 URL auth_token: "github-specific-token" # 该路由独立的验证 Token(覆盖全局 AUTH_TOKEN) timeout: 5000 # 转发超时时间(毫秒),默认 3000 - path: "/slack" target: "https://slack-notifier:4000" ip_whitelist: "35.190.247.0/24" # 该路由独立的 IP 白名单(覆盖全局 IP_WHITELIST)
挂载配置文件:
在 docker run 或 docker-compose 中添加挂载:
bash# Docker Run 示例 docker run -d \ -v ./route.yaml:/etc/relay/route.yaml \ # 挂载路由配置文件 -e ROUTE_CONFIG_PATH=/etc/relay/route.yaml \ # 指定配置文件路径 ...(其他参数同上)
1. Token 验证
X-Relay-Token: <token>,服务端验证与配置的 AUTH_TOKEN(或路由独立 auth_token)一致则允许转发。401 Unauthorized。2. IP 白名单验证
IP_WHITELIST(或路由独立 ip_whitelist)中指定的 IP 地址/网段请求,其他来源返回 403 Forbidden。场景:本地 Jenkins 服务(内网 IP:192.168.1.100:8080)需接收 GitHub Webhook。
部署步骤:
bashdocker run -d \ --name github-relay \ -p 80:8080 \ # 公网 80 端口映射到容器 8080 -e TARGET_DEFAULT=http://192.168.1.100:8080/github-webhook/ \ # 转发至内网 Jenkins -e AUTH_TOKEN=github-webhook-secret-xxx \ # 与 GitHub Webhook 配置的 Secret 一致 webhook-relay-server:latest
http://公网服务器IP,Secret 为 github-webhook-secret-xxx。场景:需将 /github 转发至 A 服务,/slack 转发至 B 服务。
配置文件(route.yaml):
yamlroutes: - path: "/github" target: "https://service-a:3000" auth_token: "token-for-a" - path: "/slack" target: "https://service-b:4000" auth_token: "token-for-b"
启动命令:
bashdocker run -d \ -v ./route.yaml:/etc/relay/route.yaml \ -e ROUTE_CONFIG_PATH=/etc/relay/route.yaml \ -e LISTEN_PORT=8080 \ -p 8080:8080 \ webhook-relay-server:latest
600)。docker logs <容器名> 查看实时日志,debug 级别可输出详细请求/响应信息(生产环境建议使用 info)。AUTH_TOKEN 和 IP_WHITELIST,避免服务被***滥用。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务