# web-git-sync **Repository Path**: jdragonhu/web-git-sync ## Basic Information - **Project Name**: web-git-sync - **Description**: 从gitlab/github同步内容到本地,进行自定义的处理逻辑,同时以web服务的方式公开仓库内容。适合前端项目公开发布的场景。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-18 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Web-Git-Sync 容器 自动同步Git仓库的Docker容器,支持GitLab Webhook触发更新。 ## 特性 - 自动初始化Git仓库 - Webhook触发增量更新 - 分离Git数据和工作目录 - Nginx静态文件服务 - GitLab Webhook签名验证 ## 快速开始 ### 构建镜像 ```bash docker build -t web-git-sync:1.0 . ``` ### 运行容器 ```bash docker run -d \ -p 8080:80 \ -e GIT_REPO="https://github.com/your/repo.git" \ -e GIT_BRANCH="main" \ -e WEBHOOK_SECRET="your-secret" \ web-git-sync:1.0 ``` ### 配置GitLab Webhook 1. 进入仓库设置 → Webhooks 2. 添加URL: `http://your-server:8080/cd` 3. 设置Secret Token 4. 选择"Push events" ### 环境变量 | 变量名 | 默认值 | 描述 | |--------|--------|------| | `GIT_REPO` | - | Git仓库URL (必填),支持Gitlab和Github | | `GIT_BRANCH` | `master` | 目标分支 | | `GIT_DATA_DIR` | `/data/git` | Git元数据目录 | | `WORK_DIR` | `/data/www` | 工作目录 | | `WEBHOOK_SECRET` | - | Webhook验证密钥 | ## 工作流程 1. 容器启动时运行`git-init.sh`初始化仓库 2. Nginx提供静态文件服务(80端口) 3. Node.js监听Webhook请求(8080端口) 4. 收到Push事件后执行`git-refresh.sh` 5. 更新内容实时通过Nginx提供访问