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 腾讯云 自动化 自动化创作 自动化协作 自动化提醒 自动化流水线 自动化运维 自律教练 自由软件 行为改变 视频摘要 记录 许可证 论文写作 论文阅读 语义搜索 语音代理 读书 读书笔记 读后感 财报季 路遥 迁移 运维 远程运维 邀请确认 部署指南 量子计算 销售自动化 阅读感悟 随笔 霍尔木兹海峡 项目管理 飞书 高中生活 高考志愿 黎巴嫩 龙虾

一言

文章归档

Hexo 部署到 CT8 避坑终极指南

Hexo 部署到 CT8 避坑终极指南

总结今天在 CT8(及其同类 Serv00 架构)上部署 Hexo 的过程,最核心的教训是:不要尝试把代码直接推送到网页目录,必须通过“中转裸仓库 + 钩子”的方式实现。

第一步:服务器环境准备(仅一次)

  1. 确定路径:登录 CT8 终端,输入 pwd 确认你的家目录。

    • 通常是 /usr/home/你的用户名
  2. 创建中转站(裸仓库)

    Bash

    1
    2
    3
    4
    5
    mkdir -p ~/repos/blog.git
    cd ~/repos/blog.git
    git init --bare
    # 强制指定主分支名为 main (关键:防止分支名冲突)
    git symbolic-ref HEAD refs/heads/main

第二步:配置自动同步“钩子”(核心步骤)

这是最容易踩坑的地方,必须处理权限路径换行符

  1. 创建文件vi ~/repos/blog.git/hooks/post-receive

  2. 粘贴内容(直接用绝对路径,排除变量失效)

    Bash

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
    # 显式清除干扰
    unset $(git rev-parse --local-env-vars)

    # 路径根据你的实际域名目录修改
    TARGET="/usr/home/你的用户名/domains/你的域名/public_html"
    GIT_DIR="/usr/home/你的用户名/repos/blog.git"

    # 强制检出到网页目录
    git --git-dir=$GIT_DIR --work-tree=$TARGET checkout -f main || git --git-dir=$GIT_DIR --work-tree=$TARGET checkout -f master
  3. 赋予权限(必做)

    Bash

    1
    chmod +x ~/repos/blog.git/hooks/post-receive

第三步:配置 SSH 免密登录(提速关键)

避免每次发布都要手动输入 CT8 的密码。

  1. 在本地电脑cmd运行 type %USERPROFILE%\.ssh\id_rsa.pub(或 ed25519)获取公钥。

    或者在文件管理器 以下路径查找

    1
    C:\Users\Administrator\.ssh
  2. 在 CT8 上执行:

    Bash

    1
    2
    3
    4
    5
    6
    mkdir -p ~/.ssh
    echo "你的公钥内容" >> ~/.ssh/authorized_keys #将公钥写入VPS配置文件
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    # 修正家目录权限(CT8 安全策略要求)
    chmod 755 /usr/home/你的用户名

第四步:本地 Hexo 配置

修改 _config.yml,将 CT8 地址添加到 deploy 列表:

YAML

1
2
3
4
5
deploy:
- type: git
# 注意:连接的是 .git 结尾的仓库,就是在post-receive 中配置的GIT_DIR="/usr/home/用户名/repos/blog.git"。不是 public_html 文件夹
repo: 用户名@服务器地址:/usr/home/用户名/repos/blog.git
branch: main

💡 避坑锦囊(黄金法则)

  • 法则一:路径必须完整。 永远使用从 /usr/home/... 开始的绝对路径,不要使用相对路径。
  • 法则二:不要在 Windows 下编辑 Hook 文件。 如果要修改 post-receive,直接在 CT8 终端里用 vi 编辑,或者在 Windows 下编辑后另存为 LF (Unix) 换行符。如果是 CRLF 换行符,脚本会报错 Empty string is not a valid path
  • 法则三:清理缓存。 如果发现网页没更新,先运行 hexo cleanhexo d
  • 法则四:分支对齐。 确保本地推送到 main,服务器接收的也是 main。如果服务器 Git 版本老,手动用 symbolic-ref 指向 main

总结

我的hexo博客现在的架构是:本地源码 -> GitHub (备份) & GitHub Pages (主站) & CT8 (镜像)。这套方案即便其中一个服务宕机,你的博客依然可以从另一个地址访问,且源码永远不会丢失(除非电脑坏了,github账号同时没了)。

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