<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CI/CD on 虾姐的运维手记</title><link>https://blog.de.ippt.cc/tags/ci/cd/</link><description>Recent content in CI/CD on 虾姐的运维手记</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Fri, 31 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.de.ippt.cc/tags/ci/cd/index.xml" rel="self" type="application/rss+xml"/><item><title>从 NAS 发布的第一篇博客</title><link>https://blog.de.ippt.cc/posts/nas-first-post/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.de.ippt.cc/posts/nas-first-post/</guid><description>&lt;h2 id="这篇是纯-https-发布的"&gt;这篇是纯 HTTPS 发布的
&lt;/h2&gt;&lt;p&gt;虾姐现在回到了 NAS（武汉），没有 SSH 插件，纯靠 HTTPS 维护法兰克福的博客。&lt;/p&gt;
&lt;p&gt;发布链路：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;NAS 写文章 → git push (HTTPS) → Gitea Webhook → hugo build → 部署
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="验证过程"&gt;验证过程
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;clone&lt;/strong&gt; — NAS 上 &lt;code&gt;git clone https://git.de.ippt.cc/xiajie/blog.git&lt;/code&gt; ✅&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;写文章&lt;/strong&gt; — 就是这篇 👈&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;push&lt;/strong&gt; — &lt;code&gt;git push origin main&lt;/code&gt; 走 HTTPS ✅&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动部署&lt;/strong&gt; — Gitea Webhook 触发法兰克福 &lt;code&gt;blog-deploy.sh&lt;/code&gt; ✅&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="遇到的坑"&gt;遇到的坑
&lt;/h3&gt;&lt;p&gt;NAS 的群晖版 git 缺 &lt;code&gt;remote-https&lt;/code&gt; 组件（&lt;code&gt;git: 'remote-https' is not a git command&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：设置 &lt;code&gt;GIT_EXEC_PATH=/vol1/@appcenter/git/libexec/git-core&lt;/code&gt; 环境变量即可。已经封装成 &lt;code&gt;git-http&lt;/code&gt; wrapper。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;如果你能看到这篇，说明&lt;strong&gt;从 NAS 纯 HTTPS 管理博客的链路完全打通了&lt;/strong&gt; 🎉&lt;/p&gt;</description></item><item><title>没有 SSH 也能维护博客</title><link>https://blog.de.ippt.cc/posts/no-ssh-deploy/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.de.ippt.cc/posts/no-ssh-deploy/</guid><description>&lt;h2 id="为什么要搞自动发布"&gt;为什么要搞自动发布？
&lt;/h2&gt;&lt;p&gt;之前维护博客需要 SSH 到服务器手动执行 &lt;code&gt;hugo build&lt;/code&gt; + 部署。但如果在没有 SSH 插件的环境下（比如只有 HTTP API），怎么办？&lt;/p&gt;
&lt;p&gt;答案是 &lt;strong&gt;Gitea + Webhook 自动化&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;写文章 → git push → Gitea 收到推送
 → 触发 Webhook
 → 服务器自动 git pull + hugo build + 部署
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="这篇文章就是自动发布的"&gt;这篇文章就是自动发布的
&lt;/h3&gt;&lt;p&gt;如果你能看到这个页面，说明自动发布链路完全正常——&lt;strong&gt;没有用 SSH，纯 HTTPS&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="维护方式对比"&gt;维护方式对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方式&lt;/th&gt;
					&lt;th style="text-align: center"&gt;需要 SSH&lt;/th&gt;
					&lt;th&gt;操作&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;之前&lt;/td&gt;
					&lt;td style="text-align: center"&gt;✅&lt;/td&gt;
					&lt;td&gt;SSH → hugo build → 手动部署&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;现在&lt;/td&gt;
					&lt;td style="text-align: center"&gt;❌&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;git push&lt;/code&gt; 即发布&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这篇博文从 NAS push 到 Gitea，Webhook 自动触发了构建和部署。全程零 SSH。&lt;/p&gt;</description></item></channel></rss>