
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个简单的Web应用,可注册为GitHub Webhook,响应事件并触发shell命令。主要用于通过Travis-CI作业安全触发自有服务器上的网站刷新,无需暴露服务器凭据或SSH密钥。服务器进程资源占用低,在64位Ubuntu机器上内存使用不超过20MB,适合低配置服务器。
git pull等更新操作适用于需要通过GitHub事件(如代码推送、合并请求等)自动触发服务器操作的场景,例如:
特别适合个人服务器、低配置服务器或需要安全部署流程的环境。
镜像已发布到Docker Hub,可通过以下命令快速运行:
shdocker run \ -p 8080:8080 \ -ti alexelcu/github-webhook-listener
上述命令仅启动服务器,需通过配置文件定义具体行为。创建./config.yaml配置文件:
yamlhttp: path: "/" port: 8080 runtime: workers: 2 output: stdout projects: myproject: # 项目名称,可自定义 ref: "refs/heads/gh-pages" # 仅响应推送到gh-pages分支的事件 directory: "/var/www/myproject" # 命令执行目录 command: "git pull" # 要执行的命令(镜像已内置git) secret: "xxxxxxxxxxxxxxxxxxxxxxxxxx" # Webhook密钥(与GitHub配置一致)
配置说明
projects下的项目名称(如myproject)可自定义,用于标识不同项目ref:指定触发事件的分支,如refs/heads/main表示main分支directory:命令执行的工作目录command:触发时执行的shell命令,常用git pull更新代码secret:可选,用于验证GitHub Webhook请求的密钥,需与GitHub配置一致权限配置
为确保命令以指定用户执行,建议在主机创建专用用户:
shsudo adduser synchronize # 创建用户 sudo adduser synchronize www-data # 添加到www-data组(根据需求调整) sudo chown -R synchronize:www-data /var/www/myproject # 设置目录权限
使用指定用户运行容器:
shdocker run \ -p 8080:8080 \ -v "$(pwd)/config.yaml:/opt/app/config/config.yaml" \ # 挂载配置文件 -u "$(id -u synchronize):$(id -g synchronize)" \ # 指定用户ID和组ID -ti alexelcu/github-webhook-listener
推荐使用docker-compose管理服务,示例配置:
yamlversion: '3.3' services: github-webhook-listener: container_name: github-webhook-listener image: 'alexelcu/github-webhook-listener:latest' restart: unless-stopped # 自动重启 ports: - "8080:8080" # 端口映射 tty: true networks: - main # 使用外部网络(需提前创建) volumes: - /var/www:/var/www # 挂载网站目录 - /etc/github-webhook-listener/config.yaml:/opt/app/config/config.yaml # 挂载配置文件 user: "${SYNC_UID}:${SYNC_GID}" # 通过环境变量指定用户ID和组ID networks: main: external: name: main # 外部网络名称
若需通过域名访问,可配置Nginx反向代理:
conflocation / { proxy_pass http://127.0.0.1:8080; # 代理到容器端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_connect_timeout 300; # 连接超时时间 }
https://github.com/<用户>/<项目>/settings/hooks)https://your-domain.com,路径需与配置文件http.path一致)application/jsonsecret字段的值(若配置了secret)详见https://github.com/alexandru/github-webhook-listener/wiki/Setup
Copyright © 2018-2020 Alexandru Nedelcu,保留部分权利。
基于3-Clause BSD许可证。详见https://github.com/alexandru/github-webhook-listener/blob/master/LICENSE%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





来自真实用户的反馈,见证轩辕镜像的优质服务