首页
/ Webhook.site 项目 Docker 部署指南

Webhook.site 项目 Docker 部署指南

2025-07-07 07:38:36作者:余洋婵Anita

Webhook.site 是一个用于测试和调试 Webhook 请求的实用工具,它允许开发者轻松捕获、检查和重放 Webhook 请求。本文将详细介绍如何使用 Docker Compose 部署 Webhook.site 项目。

项目架构概述

Webhook.site 采用典型的 Laravel 应用架构,包含以下核心组件:

  1. 主应用服务:基于 Laravel 框架构建的 Webhook 接收和处理服务
  2. Redis 服务:用于队列处理、缓存和实时通信
  3. Laravel Echo 服务器:处理 WebSocket 实时通信

Docker Compose 配置详解

主应用服务 (webhook)

webhook:
  container_name: "webhook-site"
  image: "webhooksite/webhook.site"
  command: php artisan queue:work --daemon --tries=3 --timeout=10
  ports:
    - "8084:80"
  environment:
    - APP_ENV=dev
    - APP_DEBUG=true
    - APP_URL=http://localhost:8084
    - APP_LOG=errorlog
    - DB_CONNECTION=sqlite
    - REDIS_HOST=redis
    - BROADCAST_DRIVER=redis
    - CACHE_DRIVER=redis
    - QUEUE_DRIVER=redis
    - ECHO_HOST_MODE=path
  depends_on:
    - redis

关键配置说明

  1. 队列工作进程:通过 command 指定了 Laravel 队列工作进程,采用守护进程模式运行,最多重试3次,超时时间为10秒
  2. 端口映射:将容器内的80端口映射到主机的8084端口
  3. 环境变量
    • APP_ENV=dev:设置应用环境为开发模式
    • APP_DEBUG=true:启用调试模式
    • DB_CONNECTION=sqlite:使用 SQLite 作为数据库
    • 各种驱动配置为使用 Redis,包括广播、缓存和队列

Redis 服务

redis:
  container_name: "webhook-redis"
  image: "redis:alpine"

Redis 服务使用轻量级的 Alpine Linux 镜像,作为整个应用的缓存、队列和实时通信的基础服务。

Laravel Echo 服务器

laravel-echo-server:
  container_name: "laravel-echo-server"
  image: "webhooksite/laravel-echo-server"
  command:
    - laravel-echo-server
    - start
    - --force
  environment:
    - LARAVEL_ECHO_SERVER_AUTH_HOST=http://webhook
    - LARAVEL_ECHO_SERVER_HOST=0.0.0.0
    - LARAVEL_ECHO_SERVER_PORT=6001
    - ECHO_REDIS_PORT=6379
    - ECHO_REDIS_HOSTNAME=redis
    - ECHO_PROTOCOL=http
    - ECHO_ALLOW_CORS=true
    - ECHO_ALLOW_ORIGIN=*
    - ECHO_ALLOW_METHODS=*
    - ECHO_ALLOW_HEADERS=*

关键配置说明

  1. 认证主机:指向主应用服务 (http://webhook)
  2. 连接配置:监听所有网络接口 (0.0.0.0) 的6001端口
  3. Redis 连接:连接到 Redis 服务
  4. CORS 配置:宽松的跨域策略,允许所有来源、方法和头信息

部署步骤

  1. 安装 Docker 和 Docker Compose:确保系统已安装最新版本的 Docker 和 Docker Compose

  2. 创建 docker-compose.yml 文件:将上述配置保存为 docker-compose.yml 文件

  3. 启动服务:在包含 docker-compose.yml 的目录中运行以下命令

    docker-compose up -d
    
  4. 访问应用:服务启动后,通过 http://localhost:8084 访问 Webhook.site 应用

生产环境建议

对于生产环境部署,建议进行以下调整:

  1. 修改 APP_ENV=productionAPP_DEBUG=false
  2. 考虑使用 MySQL 或 PostgreSQL 替代 SQLite
  3. 配置适当的 CORS 策略,而不是允许所有来源
  4. 设置 HTTPS 协议
  5. 配置适当的日志记录和监控

常见问题排查

  1. 端口冲突:如果8084端口已被占用,修改 ports 配置中的主机端口
  2. Redis 连接问题:确保 Redis 服务先于应用服务启动
  3. 队列处理失败:检查日志确认队列工作进程是否正常运行

通过以上配置和说明,开发者可以轻松地在本地或服务器上部署 Webhook.site 项目,用于 Webhook 相关的开发和测试工作。