gg部署
免费托管值得免费工具。领域→ GitHub页面在60秒内。
gg部署是我的最新成果:域名部署自动化,在周末构建,开源,永远免费。它不会拯救世界,但可能会为您节省一个小时的DNS配置。
一个命令。单击一下。一个提示。 通过CLI、桌面应用程序、web UI或AI助手(MCP)工作。
快速开始
npx gg-deploy ui
# Opens http://localhost:3847或者通过CLI:
npx gg-deploy plan example.com user/repo # Preview (safe)
npx gg-deploy apply example.com user/repo # Deploy
npx gg-deploy status example.com user/repo # Health check我为什么建造这个
GitHub Pages是免费的。域名注册很便宜。但连接它们?这仍然是15分钟的DNS谷歌搜索、A记录猜测和“我再次破坏了我的电子邮件转发吗?”焦虑。
我希望部署速度与托管免费(用于公共存储库)一样快。所以我在周末建立了gg部署;高级用户的CLI、其他人的web UI、AI代理的MCP和桌面应用程序,因为为什么不呢。
AGPL许可 因为好的工具应该是免费的。
截图
命令行界面
桌面应用程序
Web用户界面
桌面应用程序
下载自 :
- macOS:
.dmg(苹果硅或英特尔) - 视窗:
.msi安装程序 - Linux:
.AppImage或.deb
macOS首次运行
该应用程序未使用Apple证书签名。首次发射时:
选项1:右键单击方法
- 在GG Deploy上单击鼠标右键(或Control+单击)
- 从菜单中单击“打开”
- 在对话框中单击“打开”
选项2:终端(一个命令)
xattr -cr "/Applications/GG Deploy.app"这是一个一次性步骤——之后应用程序会正常运行。
Windows首次运行
点击 更多信息 → 无论如何都要跑 在SmartScreen提示下。
Linux
制作可执行文件并运行:
chmod +x GG.Deploy_*.AppImage
./GG.Deploy_*.AppImage需求
- Node.js 18+ --查看
node --version - DNS提供商帐户 --GoDaddy、Cloudflare或Namecheap
- GitHub账号 使用个人访问令牌
- 领域 由您的DNS提供商管理
- GitHub仓库 与您的网站内容(index.html或构建的网站)
提供商比较
| 提供程序 | 易于安装 | API访问 | 注释 |
|---|---|---|---|
| 云耀 | 简单 | 对所有人免费 | 推荐给新用户 |
| GoDaddy | 中等 | 需要10+个域名 | 需要生产密钥 |
| Namecheap:名便宜 | 中等 | 需要IP白名单 | 必须将您的IP列入白名单 |
设置
凭据保存一次到 ~/.gg-deploy/config.json 并在所有项目中工作。
选项1:Web UI(推荐)
npx gg-deploy ui安装向导将引导您完成以下操作:
- 创建GoDaddy API密钥
- 创建GitHub令牌
- 测试和保存凭据
选项2:手动配置
创建 ~/.gg-deploy/config.json 使用您首选的DNS提供商:
Cloudflare(推荐):
{
"dnsProvider": "cloudflare",
"cloudflare": {
"apiToken": "YOUR_CLOUDFLARE_TOKEN"
},
"github": {
"token": "ghp_YOUR_TOKEN"
}
}爸爸:
{
"dnsProvider": "godaddy",
"godaddy": {
"apiKey": "YOUR_KEY",
"apiSecret": "YOUR_SECRET",
"environment": "production"
},
"github": {
"token": "ghp_YOUR_TOKEN"
}
}Namecheap:
{
"dnsProvider": "namecheap",
"namecheap": {
"apiUser": "YOUR_USERNAME",
"apiKey": "YOUR_API_KEY",
"clientIP": "YOUR_IP_ADDRESS"
},
"github": {
"token": "ghp_YOUR_TOKEN"
}
}获取凭据
Cloudflare API代币(推荐):
- 首选https://dash.cloudflare.com/profile/api-tokens
- 点击“创建令牌”
- 使用“编辑区域DNS”模板
- 选择要管理的区域(域)
- 复制令牌
GoDaddy API密钥:
- 首选https://developer.godaddy.com/keys
- 单击“新建API密钥”
- 选择 生产 (非OTE/测试)
- 立即复制密钥和秘密(秘密只显示一次)
- 注意:需要以下帐户 10+域名
名称便宜的API:
- 首选https://ap.www.namecheap.com/settings/tools/apiaccess/
- 启用API访问
- 将您的IP地址列入白名单 (必填)
- 复制API密钥和用户名
- 获取您当前的IP地址:
curl ifconfig.me
GitHub令牌:
- 首选https://github.com/settings/tokens/new?description=gg-部署范围=仓库
- 点击“生成令牌”
- 复制令牌(以开头
ghp_)
web界面
主屏幕
| 元素 | 描述 |
|---|---|
| 域字段 | 您的GoDaddy域名(例如。, example.com) |
| 存储库字段 | GitHub仓库为 username/repo |
| 部署按钮 | 启动部署过程 |
| 身份徽章 | 显示GoDaddy/GitHub连接状态 |
| 设置档位 | 打开凭据管理 |
状态指示灯
| 颜色 | 含义 |
|---|---|
| 绿色(发光) | 已连接并验证 |
| 黄色(脉冲) | 测试连接。.. |
| 红色 | 错误(悬停查看详细信息) |
| 灰色 | 尚未测试 |
将鼠标悬停在徽章上以查看详细状态。单击刷新按钮重新测试连接。
设置屏幕
- API密钥/机密/令牌字段 --预先填充已保存的值(掩码)
- 眼睛图标 --单击以显示复制值
- 状态指示器 --显示实时验证状态
- 测试按钮 -重新验证API连接
- 更新设置 --保存更改
部署流程
- 输入域名和仓库
- 单击部署
- 查看实时进度:
- 验证域所有权 - 检查存储库访问权限 - 配置DNS记录 - 添加CNAME文件 - 启用GitHub页面 - 提供SSL证书
- 获取您的实时URL
CLI命令
| 命令 | 描述 | 安全 | 需要Git |
|---|---|---|---|
plan | 预览更改 | 是 | 否 |
apply | 执行部署 | 否 | 否 |
status | 检查健康状况 | 是 | 否 |
list | 显示所有跟踪的部署 | 是 | 否 |
push [domain] [message] | 上传本地文件更改 | 否 | 不 |
forget | 从跟踪中删除 | 是 | 否 |
ui | 启动web界面 | 是 | 否 |
mcp-serve | 启动MCP服务器 | 是 | 否 |
update | 检查更新 | 是 | 否 |
describe | 输出AI友好的工具模式 | 是 | 否 |
添加 --output json 用于机器可读输出。
Git免费文件更新
这 push 该命令通过API将您的本地文件直接上传到GitHub-不需要任何git知识:
# From your project directory (auto-detects deployment)
gg-deploy push "Updated homepage"
# Or specify the domain explicitly
gg-deploy push myblog.com "Fixed typo in about page"它是如何工作的:
- 扫描本地目录以查找更改的文件
- 将SHA哈希值与GitHub进行比较
- 仅通过GitHub Contents API上载更改的文件
- 大于1MB的文件使用Git Data API提高可靠性
- 跳过大于100MB的文件(GitHub限制)
尊重 .gitignore 和 .gg-ignore --node_modules、.env和其他模式会被自动排除。
部署跟踪
之后 apply 成功后,gg部署会记住您的部署:
# List all tracked deployments
gg-deploy list
# Output:
# ╭─ Tracked Deployments ─────────────────────────────────────╮
# │ myblog.com → user/blog │
# │ └─ /Users/me/projects/myblog │
# │ Last activity: 2 hours ago │
# ╰───────────────────────────────────────────────────────────╯要停止跟踪(不影响实时网站):
gg-deploy forget myblog.com注: forget 仅删除本地跟踪。您的DNS记录和GitHub页面仍处于活动状态。有关清理说明,请参阅输出。
人工智能代理集成(MCP)
部署包括一个完整的MCP(模型上下文协议)服务器,使AI助手能够直接部署和管理站点。
兼容:
- 克劳德桌面版
- 克劳德代码
- 光标
- 帆板运动
- N8N(工作流自动化)
- 任何兼容MCP的客户端
设置
克劳德桌面/克劳德代码 --添加到配置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gg-deploy": {
"command": "npx",
"args": ["-y", "gg-deploy", "mcp-serve"]
}
}
}光标/风帆 --使用相同的配置添加到MCP设置中。
N8N --使用带有以下命令的MCP节点: npx -y gg-deploy mcp-serve
可用的MCP工具
| 工具 | 描述 | 安全 |
|---|---|---|
deploy_site_plan | 预览部署更改 | 是 |
deploy_site_apply | 执行DNS+GitHub页面部署 | 否 |
deploy_site_status | 检查部署运行状况 | 是 |
list_deployments | 列出所有跟踪的部署 | 是 |
push_changes | 上传本地文件更改 | 否 |
示例提示
- “将myblog.com部署到用户/仓库”
- “检查example.com的状态”
- “我有什么部署?”
- “将我的最新更改推送到博客”
人工智能发现
跑 gg-deploy describe 要获得一个全面的JSON模式,请使用:
- 命令描述和意图
- 输入和输出示例
- 安全指标(安全/需要确认)
- 推荐使用流程
故障排除
Node.js问题
| 问题 | 解决方案 |
|---|---|
node: command not found | 从以下位置安装Node.jshttps://nodejs.org |
unsupported engine | 升级到Node.js 18+ |
EACCES permission denied | 不要使用 sudo.修复npm权限或使用nvm |
GoDaddy API问题
| 问题 | 解决方案 |
|---|---|
401 Unauthorized | API密钥/机密错误。在developer.godady.com上重新生成 |
403 Forbidden | API密钥用于OTE(测试)。创建一个 生产 钥匙 |
404 Not Found | 域名不在您的GoDaddy帐户中 |
422 Invalid | 域已锁定或有待处理的传输 |
403 Access denied | 账户需求 10+域名 API。请改用Cloudflare |
| 红色状态点 | 悬停表示错误。通常是身份验证问题 |
Cloudflare API问题
| 问题 | 解决方案 |
|---|---|
401 Unauthorized | API令牌无效。在dash.cloudflare.com上重新生成 |
403 Forbidden | 令牌没有编辑DNS权限。创建新令牌 |
| 找不到区域 | 域不在您的Cloudflare帐户中或区域错误 |
| 记录不适用 | 确保 proxied: false GitHub页面(自动处理) |
名称便宜API问题
| 问题 | 解决方案 |
|---|---|
1011150 IP not whitelisted | 在ap.www.namecheap.com/settings/tools/apiaccess添加您的IP |
500000 Rate limited | 等几分钟,API有速率限制 |
| 身份验证失败 | 检查apiUser和apiKey是否正确 |
| 找不到域名 | 域名必须在您的Namecheap帐户中处于活动状态 |
| 记录被覆盖 | Namecheap API将替换所有记录。备份是自动创建的 |
GitHub API问题
| 问题 | 解决方案 |
|---|---|
401 Bad credentials | 令牌已过期或无效。生成新的 |
403 Forbidden | 令牌丢失 repo 范围。使用正确的范围重新生成 |
404 Not Found | 回购不存在或令牌无法访问它 |
| 私有仓库失败 | 私有仓库页面需要GitHub Pro |
DNS问题
| 问题 | 解决方案 |
|---|---|
| 站点未加载 | 等待10-60分钟进行DNS传播 |
| 显示错误的IP | 清除DNS缓存: sudo dscacheutil -flushcache (Mac) |
| SSL不起作用 | GitHub需要先解析DNS。检查页面设置 |
配置问题
| 问题 | 解决方案 |
|---|---|
| “未配置” | 检查 ~/.gg-deploy/config.json 存在 |
| 找不到配置 | 它在您的主目录中: ls -la ~/.gg-deploy/ |
| 权限被拒绝 | 运行 chmod 600 ~/.gg-deploy/config.json |
UI问题
| 问题 | 解决方案 |
|---|---|
| 端口3847正在使用 | 清除现有端口: lsof -i :3847 然后 `kill |
| ` | |
| 空白页 | 清除浏览器缓存或尝试隐身 |
| 眼睛图标不起作用 | 如果保存了凭据,单击会显示值 |
常见修复
# Check if config exists
cat ~/.gg-deploy/config.json
# Verify Node version
node --version # Should be 18+
# Test GoDaddy API manually
curl -H "Authorization: sso-key YOUR_KEY:YOUR_SECRET" \
https://api.godaddy.com/v1/domains
# Test GitHub API manually
curl -H "Authorization: Bearer ghp_YOUR_TOKEN" \
https://api.github.com/user运作原理
- 域名系统 --将A记录设置为GitHub IP地址(185.199.108-111.153)+www CNAME
- 别名记录 --使用您的域在仓库中创建CNAME文件
- 页面 --在主分支上启用GitHub Pages
- 安全套接层 --GitHub自动提供Let’s Encrypt证书
总时间:~60秒。DNS传播:10-60分钟。
安全
- 凭据存储在
~/.gg-deploy/config.json(权限600) - 从未承诺使用git
- 眼睛图标仅在本地显示值
- 直接对GoDaddy/GitHub进行的API调用(无代理)
局限性
- 支持GoDaddy、Cloudflare和Namecheap(其他提供商即将推出)
- GoDaddy需要10个以上的域才能访问API
- Namecheap需要IP白名单配置
- 页面需要公共仓库或GitHub Pro
- 仅支持www子域
- 每个部署一个域
许可证
AGPL-3.0——免费使用、修改和分发。Forks必须保持开源。
______________________________________________________________________
关于建设者
你好我是 亚伯·迪亚兹白天,我是亚马逊救灾部的高级经理,领导着一个团队,该团队使用人工智能和物流在全球200多场灾害中交付了2600多万件救灾物资和响应技术。在周末,我构建了这样的手工开发工具:-P
