<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Hugo on Simon의 AI 시대에 살아남는 법</title><link>https://mhub.uk/tags/hugo/</link><description>Recent content in Hugo on Simon의 AI 시대에 살아남는 법</description><generator>Hugo</generator><language>ko-KR</language><copyright>2026 mhub. 이 블로그의 모든 글·그림과 전자책(그림으로 배우는 시리즈)의 저작권은 mhub에 있으며, 저작권자의 허락 없는 무단 복제·배포·전재를 금지합니다. 이용 허락이나 오류 제보는 문의하기로 보내 주세요.</copyright><lastBuildDate>Tue, 03 Nov 2026 00:10:00 +0900</lastBuildDate><atom:link href="https://mhub.uk/tags/hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>Workers Builds로 Hugo 빌드하기 — 버전 고정, 시간대, previews 블록, 그리고 workers.dev가 꺼지는 함정</title><link>https://mhub.uk/posts/cf-02-workers-builds-hugo/</link><pubDate>Tue, 03 Nov 2026 00:10:00 +0900</pubDate><guid>https://mhub.uk/posts/cf-02-workers-builds-hugo/</guid><description>&lt;p&gt;Cloudflare 이전의 첫 단계는 &amp;ldquo;GitHub에 커밋하면 Cloudflare가 알아서 Hugo를 돌려 배포한다&amp;quot;를 만드는 것이었다. Workers Builds는 저장소를 연결하면 빌드 명령과 배포 명령을 실행해 준다. 간단해 보였지만, 폰에서 만들던 결과물과 똑같이 나오게 하려면 네 가지를 못 박아야 했다.&lt;/p&gt;
&lt;h2 id="빌드-명령은-스크립트-하나로"&gt;빌드 명령은 스크립트 하나로&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;wrangler.jsonc&lt;/code&gt;의 &lt;code&gt;build.command&lt;/code&gt;에 &lt;code&gt;bash scripts/cf-build.sh&lt;/code&gt;를 넣었다. Cloudflare 빌드 환경에는 Hugo가 없으므로 스크립트가 직접 내려받는다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;PIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;MHUB_HUGO_VERSION&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.154.5&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL -o hugo.tar.gz &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://github.com/gohugoio/hugo/releases/download/v&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PIN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/hugo_extended_&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PIN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_linux-amd64.tar.gz&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xz -f hugo.tar.gz hugo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TZ&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Asia/Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --minify
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;버전 변수 이름을 &lt;code&gt;HUGO_VERSION&lt;/code&gt;이 아니라 &lt;code&gt;MHUB_HUGO_VERSION&lt;/code&gt;으로 한 데는 이유가 있다. Cloudflare 대시보드의 빌드 변수에 &lt;code&gt;HUGO_VERSION&lt;/code&gt;이 있으면 플랫폼이 그 값을 다른 의미로 읽을 수 있어서, 내 스크립트만 읽는 전용 이름을 쓰는 편이 안전했다.&lt;/p&gt;</description></item><item><title>폰 호스팅을 끝내기로 한 날 — "폰 없이도 블로그 전부"라는 원칙과 4단계 계획</title><link>https://mhub.uk/posts/cf-01-why-leave-the-phone/</link><pubDate>Mon, 02 Nov 2026 20:20:00 +0900</pubDate><guid>https://mhub.uk/posts/cf-01-why-leave-the-phone/</guid><description>&lt;p&gt;이 블로그는 한동안 루팅한 갤럭시 S9 한 대가 전부 떠받치고 있었다. Hugo로 만든 정적 파일을 폰 안의 Caddy가 내보내고, 글쓰기 화면과 조회수·댓글 API는 폰 안의 Node 서버가 처리하고, 바깥과는 Cloudflare Tunnel로 이어져 있었다. 잘 돌았지만 &amp;ldquo;폰이 꺼지면 블로그도 꺼진다&amp;quot;는 사실이 늘 마음에 걸렸다. 2026년 10월 10일, 이 구조를 끝내기로 했다. 이 글은 그 결정의 이유와 계획이고, 이어지는 시리즈는 실제로 옮기면서 겪은 일들이다.&lt;/p&gt;
&lt;h2 id="왜-지금이었나"&gt;왜 지금이었나&lt;/h2&gt;
&lt;p&gt;계기는 두 가지였다. 하나는 폰 쪽 감시 스크립트가 블로그 터널을 닷새 동안 17번이나 재시작한 기록을 본 것이다. 서비스는 대체로 살아 있었지만, 사람이 없을 때 폰 혼자 버티는 구조는 언제든 조용히 멈출 수 있었다. 다른 하나는 내가 AI 코딩 세션을 길게 쓰는 기간이 끝나간다는 점이었다. 그 전에 블로그를 &amp;ldquo;혼자서도 운영할 수 있는 모양&amp;quot;으로 만들어 두고 싶었다. 폰 안의 tmux 세션과 크론과 셸 스크립트를 유지보수하는 것보다, 관리 화면에서 글을 쓰고 GitHub에 저장되고 알아서 배포되는 쪽이 훨씬 단순하다.&lt;/p&gt;</description></item><item><title>Hugo + PaperMod로 블로그 세팅하고 커스텀 홈 레이아웃 얹기</title><link>https://mhub.uk/posts/it-03-hugo-papermod-layout/</link><pubDate>Sun, 20 Sep 2026 17:40:00 +0900</pubDate><guid>https://mhub.uk/posts/it-03-hugo-papermod-layout/</guid><description>&lt;p&gt;지금 보고 계신 이 블로그(blog.mhub.uk) 자체가 이 시리즈의 소재입니다. Hugo 정적 사이트 생성기와 PaperMod 테마로 시작해서, 최근에는 카테고리 사이드바·추천글·전체 글 목록으로 이루어진 3분할 홈 화면으로 직접 레이아웃을 손봤습니다.&lt;/p&gt;
&lt;h2 id="왜-hugo인가"&gt;왜 Hugo인가&lt;/h2&gt;
&lt;p&gt;Hugo는 빌드마다 서버 자원을 거의 쓰지 않는 정적 사이트 생성기입니다. 휴대폰처럼 자원이 넉넉하지 않은 환경에서는 매 요청마다 서버 사이드 렌더링을 하는 방식보다, 미리 HTML을 만들어 두고 Caddy가 그냥 파일을 서빙하는 쪽이 훨씬 가볍습니다. 글을 쓰거나 설정을 바꿀 때만 &lt;code&gt;hugo --minify&lt;/code&gt;로 다시 빌드하면 끝입니다.&lt;/p&gt;</description></item></channel></rss>