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博客部署到zz.ac公益主机

把电脑上的hexo博客部署到zz.ac公益主机

早上又仔细看了看涛叔写的ZZ.NIC 公益 Linux 主机空间这篇博文中关于公益主机的基本玩法:

基本玩法
如果你做个网站对外提供 web 内容,就需要自己运行 http 服务。我们以 python3 内置的 http.server 包为例演示用法:

先准备 web 内容:

1
2
mkdir web
echo "Hello, World!" > web/index.html

然后运行 http.server

1
2
cd web
python3 -m http.server -b :: 8080

注意,这里使用-b ::来监听所有 IPv6 地址,包括我们自己的 fe80::2/64。端口只能固定为 8080。

到此,web 服务就准备好了。打开浏览器访问https://lab.example.zz.ac就会看到熟悉的”Hello, World!“。宿主机上的 Caddy 会自动申请 SSL 证书,并将请求转发到对应的用户网络空间。

为了让 web 服务在 ssh 退出后继续运行,你需要使用创建用户态的 systemd 服务。

服务路径为 ~/.config/systemd/user/web.service,内容如下:

1
2
3
4
5
6
7
[Unit]
Description=Web Service
[Service]
WorkingDirectory=%h/www
ExecStart=/usr/bin/python3 -m http.server -b :: 8080
[Install]
WantedBy=default.target

保存之后通过 systemctl 启动服务:

1
systemctl --user enable --now web.service

这样你的服务就能在后台自动运行了。而且宿主机重启之后你的服务也会自动启动。

突然想起来前几天部署hexo博客到ct8服务器的经验:

本地写作,本地编译后通过git方式把静态文件deploy到远程服务器的方式,既然可以运行python3 -m http.server -b :: 8080,然后访问https://lab.example.zz.ac就能访问文件夹中的的静态文件,那我把自己的博客静态文件部署到我申请到的公益主机的blog文件夹中,再启动python网络服务器不就行了吗?说干就干!

部署经过:

第一步:服务器环境准备

  1. 通过ssh 登录公益主机,建立存放静态文件的文件夹:
1
mkdir -p /blog/public_html
  1. 创建裸仓库作为服务器上的中转站:
1
2
3
mkdir -p ~/repos/blog.git
cd ~/repos/blog.git
git init --bare
  1. 强制指定主分支名为main (本地电脑上的分支为main,可以在cmd通过git branch 查看)
1
git symbolic-ref HEAD refs/heads/main
  1. 配置自动同步“钩子”
    这是最容易踩坑的地方,必须处理权限、路径和换行符。
  • 创建文件:
1
vi ~/repos/blog.git/hooks/post-receive
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
#定义路径
TARGET="/home/bosh/blog/public_html"
GIT_DIR="/home/bosh/repos/blog.git"
#1. 核心修复:彻底清除 Git 内部环境变量干扰
#使用 --work-tree 时,如果这些变量存在,Git 会报错
unset GIT_INDEX_FILE
unset GIT_DIR
unset GIT_WORK_TREE
#2. 确保目标目录存在
mkdir -p $TARGET
#3. 强制检出
#尝试检出 main,如果失败则尝试 master
echo "Deploying to $TARGET ..."
git --git-dir=$GIT_DIR --work-tree=$TARGET checkout -f main || git --git-dir=$GIT_DIR --work-tree=$TARGET checkout -f master
#4. 可选:权限修复(确保网页服务器有权读取)
chmod -R 755 $TARGET
echo "Deployment finished."

  • 赋予运行权限
1
chmod +x ~/repos/blog.git/hooks/post-receive

第二步:修改hexo的配置文件_config.yml

deploy 列表加入以下内容:

1
2
3
- type: git
repo: ssh://bosh@lab.bosh.zz.ac/home/bosh/repos/blog.git
branch: main

第三步:在本地项目中文件夹运行cmd

1
hexo clean && hexo d

等等部署完毕,出现以下内容,说明部署成功:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Enumerating objects: 277, done.
Counting objects: 100% (277/277), done.
Delta compression using up to 4 threads
Compressing objects: 100% (88/88), done.
Writing objects: 100% (148/148), 51.47 KiB | 878.00 KiB/s, done.
Total 148 (delta 65), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (65/65), completed with 48 local objects.
remote: Deploying to /home/bosh/blog/public_html ...
remote: Already on 'main'
remote: Deployment finished.
To ssh://lab.bosh.zz.ac/home/bosh/repos/blog.git
e4b0064..9834816 HEAD -> main
branch 'master' set up to track 'ssh://bosh@lab.bosh.zz.ac/home/bosh/repos/blog.git/main'.
INFO Deploy done: git

**第四步:见证成功的时刻:在浏览器打开lab.bosh.zz.ac出现了博客网站,部署成功

第五步:创建用户态的 systemd 服务

让 ,web 服务在 ssh 退出后继续运行,主机重启后也能自动运行

  • 先创建文件夹,直接 vi ~/.config/systemd/user/web.service 保存时会报错:
1
mkdir -p ~/.config/systemd/user/
  • 服务路径为 ~/.config/systemd/user/web.service,内容如下:
1
2
3
4
5
6
7
8
9
[Unit]
Description=Web Service

[Service]
WorkingDirectory=/home/bosh/blog/public_html
ExecStart=/usr/bin/python3 -m http.server -b :: 8080

[Install]
WantedBy=default.target
  • 保存之后通过 systemctl 启动服务:
1
systemctl --user enable --now web.service
  • 通过systemctl --user status web.service,查看服务状态,看到 Active: active (running),说明运行成功。

web.service - Web Service
     Loaded: loaded (/home/bosh/.config/systemd/user/web.service; enabled; preset: enabled)
     Active: active (running) since Wed 2025-12-31 01:27:24 UTC; 3s ago
   Main PID: 3219003 (python3)
      Tasks: 1 (limit: 28699)
     Memory: 9.2M (peak: 9.3M)
        CPU: 50ms
     CGroup: /user.slice/user-1011.slice/user@1011.service/app.slice/web.service
本文作者:BOSh
本文链接:http://bosh.zz.ac/posts/3668408595.html
版权声明:本文由BoSh发布,部分内容来源于网络。