BOSh
文章227
标签320
分类74
315晚会 36氪 80后 ADB AI AI Agent AI 代理 AI 助手 AI 网关 AI 评测 AI助手 AI大模型 AI安全 AI应用 AI智能体 AI网关 API API 集成 Agent AionUi Android Automation C++ CLI CLI Proxy API CLIProxyAPI CRM Chrome 插件 Claude Opus 4.6 ConnectBot Debian DeepSeek DenchClaw DevOps Docker GEO GPL GPS GPU Gemini Gemini 3.1 Pro GitHub Gmail Gog Google AI Pro Google API Google Gemini HKUDS Hermes Hermes Agent Hexo Hugo IPV6 Jetpack Compose Kimi-K2.5 Kotlin LINUX LaTeX Linux Markdow Markdown MemU Bot MiniMax NAT64 NIX NODE NVIDIA Build NanoClaw Netcatty Newsletter Open WebUI OpenAI OpenAI 兼容接口 OpenCLI OpenClaw PDF 编译 PicoClaw Prismer QClaw QQ机器人 RAG Reddit Rust SFTP SSH Skills Subagent SuperCall Telegram Bot WebSSH Windows WorkBuddy X X热榜 YouTube ZeroClaw arXiv arch c++ git hugo iMessage n8n nanobot node js ntfs pacman podman zz.ac 东海 两性关系 个人助理 中东 中东冲突 中东局势 中关村论坛 中南大学 中国 中美 习惯养成 云同步 亚洲 代理 以色列 任务管理 伊朗 伊朗危机 伊朗战争 伦理 体育 保护主义 信息流 信息管理 停火 健康管理 光通信 免费试用 共和党 养老金 内容工厂 内容生产 内容筛选 军事冲突 军事动态 军民融合 农村 分享 创业 办公自动化 加密 加密货币 加沙 北斗 医学生 半导体 华为 博客 博客助手 博客部署成功 卫星 原生 JS 反重力 台海局势 台湾 命令 喷嚏网 国产 国产化 国产替代 国际 国际关系 国际局势 国际新闻 图卦 图说 地缘政治 基础设施 多代理 多模态AI 大学分析 大模型 孙少平 学习 安全 实时监控 家庭助理 家庭服务器 家装设计 工作总结 工作效率 工作流编排 工具链 平凡的世界 平台责任 开发 开发实录 开源 开源项目 张雪峰 微信 心理健康 情感 战争 投资工具 指标看板 提示词工程 播客 收件箱清理 效率 效率工具 教程 教育制度 数据分析 数据投毒 文献管理 新能源汽车 新闻汇总 日历聚合 时事 时事总结 显卡 晨报 智能体 智能体生态 朝鲜 架构 架构实践 核协议 核武器 桌面Cowork 模型接入 每日图说 比亚迪 油价 活动运营 浏览器自动化 消息通道 消费者权益 渔船 游戏开发 湘雅医院 热点新闻 版本更新 特朗普 生态系统 生活 生活自动化 生物识别 用例 甲骨文云 电池技术 症状追踪 皮皮虾 监管 目标管理 知识库 社交媒体 社会保障 社会百态 社会观察 科技 科研助手 笔记 第一财经 算法推荐 纽森 经济 经济观察 经验分享 编程 网关 网络 网络安全 美伊关系 美伊冲突 美国 美国大选 美国政治 能源安全 能源市场 腾讯 腾讯,龙虾,OpenClaw 腾讯云 自动化 自动化创作 自动化协作 自动化提醒 自动化流水线 自动化运维 自律教练 自由软件 行为改变 视频摘要 记录 许可证 论文写作 论文阅读 语义搜索 语音代理 读书 读书笔记 读后感 财报季 路遥 迁移 运维 远程运维 邀请确认 部署指南 量子计算 销售自动化 阅读感悟 随笔 霍尔木兹海峡 项目管理 飞书 高中生活 高考志愿 黎巴嫩 龙虾

一言

文章归档

VPS和VERCEL双端部署成功

VPS和VERCEL双端部署成功

本地写作 vercel 和vps双端同步自动更新

我的目标是,在本地写作博客,gush到github编译 ,编译完成后部署静态文件到vercel 和vps

GitHub Actions 中统一编译,并同时分发静态文件到 Vercel 和 VPS,你需要将 GitHub 变成“构建中心”。在这种配置下,Vercel 将作为生产环境,而 VPS(搭配 Caddy) 作为备用环境或第二镜像。

第一步:VPS 环境准备 (Caddy)

VPS 环境准备 (Caddy)在VPS 上,需要一个目录来接收文件,以及 Caddy 的配置。
创建存放目录:

1
2
3
4

sudo mkdir -p /var/www/bosh_blog
sudo chown -R $USER:$USER /var/www/bosh_blog

配置 Caddyfile: 编辑 /etc/caddy/Caddyfile,指向你的 VPS 专用域名:

1
2
3
4
5
6

bosh.zz.ac {
root * /var/www/bosh_vps
file_server
encode gzip
}

第二步:配置 GitHub Actions 工作流

在本地项目根目录创建 .github/workflows/deploy.yml。这个脚本会完成编译,并分别调用 Vercel 的官方 Action 和 SSH 传输工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name: CI/CD Build and Deploy
on:
push:
branches:
- main

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.153.2'

- name: Build
run: hugo --gc --minify

# ... 之前的 build 步骤 ...

# 部署到 VPS (增加超时重试和端口显式指定)
- name: Deploy to VPS
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.VPS_SSH_KEY }}
REMOTE_HOST: ${{ secrets.VPS_HOST }}
REMOTE_USER: ${{ secrets.VPS_USER }}
REMOTE_PORT: 22 # 如果不是 22 请修改这里
TARGET: /var/www/bosh_blog
SOURCE: public/
ARGS: "-avzr --delete"

# 部署到 Vercel
- name: Deploy to Vercel
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} # 对应你在 Secrets 里的名字
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} # 对应你在 Secrets 里的名字
vercel-args: '--prod'
working-directory: ./public

第三步:设置 GitHub Secrets (关键密钥)

你需要向 GitHub 仓库提交 5 个密钥(Settings > Secrets and variables > Actions):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
VPS 相关:
VPS_HOST: VPS 的 IP 地址。

VPS_USER: SSH 用户名(如 root)。

VPS_SSH_KEY: 你的 SSH 私钥 内容。

Vercel 相关:
VERCEL_TOKEN: 在 Vercel 令牌页面 创建。

VERCEL_ORG_ID 和 VERCEL_PROJECT_ID:

在本地安装 Vercel CLI:npm install -g vercel。

在项目根目录运行 vercel link

完成后,在生成的 .vercel/project.json 文件中可以找到这两个 ID。

第四步:调整 Vercel 项目设置

由于我们已经在 GitHub Actions 里编译好了 public 目录,我们需要告诉 Vercel 不要再编译第二次:

登录 Vercel 控制台,进入项目 Settings > Build & Development Settings。

将 Framework Preset 设置为 Other。

Build Command 开关打开,内容留空。

Output Directory 设置为 .(因为 GitHub Action 已经进入了 public 目录进行推送)。

本文作者:BOSh
本文链接:http://bosh.zz.ac/posts/611216436.html
版权声明:本文由BoSh发布,部分内容来源于网络。