<?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>Home Server on Kiglo</title>
    <link>https://page.kiglo.org/categories/home-server/</link>
    <description>Recent content in Home Server on Kiglo</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <lastBuildDate>Sat, 27 Dec 2025 18:04:00 +0900</lastBuildDate>
    <atom:link href="https://page.kiglo.org/categories/home-server/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Home Server (5): Hugo 블로그 구축과 Cloudflare Pages 배포</title>
      <link>https://page.kiglo.org/posts/home-server-5-hugo-blog/</link>
      <pubDate>Sat, 27 Dec 2025 18:04:00 +0900</pubDate>
      <guid>https://page.kiglo.org/posts/home-server-5-hugo-blog/</guid>
      <description>&lt;h2 id=&#34;블로그-플랫폼-선정-어떤-도구를-쓸-것인가&#34;&gt;블로그 플랫폼 선정: 어떤 도구를 쓸 것인가?&lt;/h2&gt;
&lt;p&gt;홈서버 연재를 결심하고 가장 먼저 고민한 것은 &amp;ldquo;어디에 글을 쓸 것인가&amp;quot;였습니다. 제가 고려했던 세 가지 선택지는 다음과 같았습니다.&lt;/p&gt;
&lt;h3 id=&#34;1-velog--medium-external-platform&#34;&gt;1. Velog / Medium (External Platform)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;장점&lt;/strong&gt;: 별도의 서버 세팅이 전혀 필요 없으며, 플랫폼 자체의 유입 덕분에 글을 알리기에 가장 유리합니다. 사실 운영 효율 면에서는 가장 합리적인 선택지입니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;단점&lt;/strong&gt;: 디자인 커스터마이징에 제약이 있고, 무엇보다 이미 구축해둔 &lt;strong&gt;홈서버와 개인 도메인&lt;/strong&gt;을 최대한 활용하고 싶다는 &amp;lsquo;자기만족&amp;rsquo;의 관점에서 제외하게 되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-ghost-self-hosted&#34;&gt;2. Ghost (Self-hosted)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;장점&lt;/strong&gt;: UI가 다채롭고 에디터가 좋습니다. 뉴스레터 기능도 기본 탑재되어 있고 실제 프로덕션에서 Ghost 를 운영하는 기업들이 많습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;단점&lt;/strong&gt;: Node.js와 데이터베이스를 직접 운영해야 합니다. 버전 업데이트나 DB도 같이 관리해야 하며, 미니 PC의 리소스를 상시 점유한다는 점이 간단한 블로그 운영을 원하는 저에게는 부담스러웠습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-hugo-ssg&#34;&gt;3. Hugo (SSG)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;장점&lt;/strong&gt;: 마크다운 기반으로 로컬에서 작성하며, 결과물이 &lt;strong&gt;정적 HTML&lt;/strong&gt;이므로 서버 부하나 보안 위협이 거의 없습니다. 테마를 통한 커스터마이징이 가능하고, Git으로 모든 이력을 관리할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;단점&lt;/strong&gt;: 초기 테마 세팅이나 마크다운 문법에 익숙해지는 과정이 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;최종 선택: Hugo&lt;/strong&gt;&lt;br&gt;
홈서버 운영법을 공유하는 블로그 자체가 홈서버 부하의 원인이 되는 것은 앞뒤가 맞지 않는다고 생각했습니다. &amp;ldquo;최소한의 리소스로 최고의 퍼포먼스를 내자&amp;quot;는 이번 홈서버 구축 철학에 맞춰, 가장 가볍고 개발자 친화적인 &lt;strong&gt;Hugo&lt;/strong&gt;를 최종 선택하게 되었습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Server (4): GitLab CI/CD로 배포 자동화하기</title>
      <link>https://page.kiglo.org/posts/home-server-4-cicd/</link>
      <pubDate>Fri, 19 Dec 2025 18:03:00 +0900</pubDate>
      <guid>https://page.kiglo.org/posts/home-server-4-cicd/</guid>
      <description>&lt;h2 id=&#34;왜-gitlab인가-github-vs-gitlab&#34;&gt;왜 GitLab인가? (GitHub vs GitLab)&lt;/h2&gt;
&lt;p&gt;홈서버의 배포 자동화를 위해 가장 먼저 고민한 것은 &amp;ldquo;어떤 플랫폼을 쓸 것인가?&amp;ldquo;였습니다. 흔히 쓰이는 GitHub Actions 대신 GitLab CI/CD를 선택한 이유는 다음과 같습니다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;비교 항목&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;GitHub (Free)&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;GitLab (Free)&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;비고&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Registry 용량&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;500MB&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;5GB&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;홈서버 이미지 적재 시 유리&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Self-hosted Runner&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;가능&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;매우 간편함&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;GitLab Runner의 아키텍처가 더 직관적&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;CI/CD 기능&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;유연함 (Actions)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;강력한 통합&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;내장된 배포 관리 기능이 풍부함&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;특히 홈서버는 리소스가 한정적이기 때문에, Container Registry 용량이 넉넉하고 Runner 설치 및 관리가 압도적으로 편한 GitLab이 더 매력적인 선택지였습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Server (Extra): Teleport로 안전하게 서버 접속하기</title>
      <link>https://page.kiglo.org/posts/home-server-extra-teleport/</link>
      <pubDate>Tue, 16 Dec 2025 18:10:00 +0900</pubDate>
      <guid>https://page.kiglo.org/posts/home-server-extra-teleport/</guid>
      <description>&lt;h2 id=&#34;why-teleport&#34;&gt;Why Teleport?&lt;/h2&gt;
&lt;p&gt;홈서버를 외부에서 안전하게 접속하기 위해 기존에는 VPN(Tailscale, WireGuard)이나 단순히 SSH 포트를 개방하는 방식을 사용했습니다. 하지만 다음과 같은 이유로 &lt;strong&gt;Teleport&lt;/strong&gt;를 도입하게 되었습니다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Access plane&lt;/strong&gt;: SSH, RDP, Kubernetes, Database, Web App 등 다양한 프로토콜을 단일 Gateway로 통합 관리&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit Log&lt;/strong&gt;: 누가 언제 어디서 서버에 접속해서 어떤 명령어를 입력했는지 녹화 및 기록 (보안 감사)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RBAC&lt;/strong&gt;: 역할 기반 접근 통제&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No VPN&lt;/strong&gt;: 별도의 VPN 클라이언트 없이 웹 브라우저만으로도 터미널 접속 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;더 자세한 정보는 &lt;a href=&#34;https://goteleport.com/&#34;&gt;Teleport 공식 홈페이지&lt;/a&gt;와 &lt;a href=&#34;https://goteleport.com/docs/&#34;&gt;공식 문서(Documentation)&lt;/a&gt;를 참고하세요.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Server (3): Cloudflare Tunnel로 안전하게 외부 접속하기</title>
      <link>https://page.kiglo.org/posts/home-server-3-cloudflare/</link>
      <pubDate>Wed, 10 Dec 2025 18:02:00 +0900</pubDate>
      <guid>https://page.kiglo.org/posts/home-server-3-cloudflare/</guid>
      <description>&lt;h2 id=&#34;도메인-구매&#34;&gt;도메인 구매&lt;/h2&gt;
&lt;p&gt;저는 &lt;strong&gt;Cloudflare Registrar&lt;/strong&gt;를 통해 도메인을 구매했습니다.&lt;/p&gt;
&lt;p&gt;Cloudflare를 선택한 이유는 관리 편의성도 있지만, 도메인 등록 비용에 별도의 수수료를 붙이지 않고 도매가 수준으로 제공하기 때문입니다. 또한, 뒤에 설명할 보안 기능들을 도메인 연동 즉시 무료 플랜에서도 대부분 사용할 수 있다는 점이 큰 장점입니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cloudflare-tunnel-cloudflared-도입&#34;&gt;Cloudflare Tunnel (&lt;code&gt;cloudflared&lt;/code&gt;) 도입&lt;/h2&gt;
&lt;p&gt;기존의 서비스 노출 방식은 공유기에서 &lt;strong&gt;포트 포워딩(Port Forwarding)&lt;/strong&gt; 을 설정하는 것이었습니다. 하지만 이 방식은 몇 가지 고질적인 문제가 있습니다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;보안 취약성&lt;/strong&gt;: 특정 포트가 인터넷에 직접 노출되어 공격자의 타겟이 되기 쉽습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;유동 IP 대응&lt;/strong&gt;: IP가 바뀔 때마다 DDNS 설정을 갱신해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;포트 부족&lt;/strong&gt;: 하나의 공인 IP에서 여러 서비스를 운영하기 번거롭습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;저는 이를 해결하기 위해 &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt;을 사용했습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Server (2): Ubuntu 24.04 설치 및 Docker 구성</title>
      <link>https://page.kiglo.org/posts/home-server-2-os-docker/</link>
      <pubDate>Thu, 04 Dec 2025 18:01:00 +0900</pubDate>
      <guid>https://page.kiglo.org/posts/home-server-2-os-docker/</guid>
      <description>&lt;h2 id=&#34;os-설치&#34;&gt;OS 설치&lt;/h2&gt;
&lt;h3 id=&#34;1-bootable-usb-creation&#34;&gt;1. Bootable USB Creation&lt;/h3&gt;
&lt;p&gt;미니 PC에 설치할 운영체제로는 **Ubuntu Server 24.04 LTS (Noble Numbat)**를 선택했습니다. 맥(macOS) 환경에서 부팅 USB를 만들기 위해 &lt;strong&gt;Balena Etcher&lt;/strong&gt;를 사용했습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ubuntu Server 다운로드&lt;/strong&gt;: &lt;a href=&#34;https://ubuntu.com/download/server&#34;&gt;Get Ubuntu Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Balena Etcher 다운로드&lt;/strong&gt;: &lt;a href=&#34;https://etcher.balena.io/&#34;&gt;Download Balena Etcher&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Balena Etcher를 실행하고 다운로드 받은 ISO 파일과 USB 드라이브를 선택한 뒤 &lt;code&gt;Flash!&lt;/code&gt; 버튼만 누르면 간단하게 설치 USB가 완성됩니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;initial-setup-guide&#34;&gt;Initial Setup Guide&lt;/h2&gt;
&lt;p&gt;우분투 설치 후, 홈서버 운영에 필요한 필수 패키지들을 설치했습니다.&lt;/p&gt;
&lt;h3 id=&#34;1-essential-tools-git-docker-postgresql-client&#34;&gt;1. Essential Tools (Git, Docker, PostgreSQL Client)&lt;/h3&gt;
&lt;p&gt;기본적인 도구들과 데이터베이스 관리를 위한 클라이언트,그리고 컨테이너 런타임을 설치합니다. PostgreSQL Client는 특정 버전(16.x)이 필요하여 별도 리포지토리를 추가했습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Server (1): 네트워크 구성과 하드웨어 아키텍처</title>
      <link>https://page.kiglo.org/posts/home-server-1-network/</link>
      <pubDate>Tue, 02 Dec 2025 18:00:00 +0900</pubDate>
      <guid>https://page.kiglo.org/posts/home-server-1-network/</guid>
      <description>&lt;h2 id=&#34;hardware-specification&#34;&gt;Hardware Specification&lt;/h2&gt;
&lt;p&gt;홈서버로 사용 중인 장비는 알리익스프레스 등에서 가성비로 유명한 &lt;strong&gt;Intel N100&lt;/strong&gt; 기반의 미니 PC, &lt;strong&gt;T8 Plus&lt;/strong&gt; 모델입니다.&lt;/p&gt;
&lt;h3 id=&#34;system-info-lshw&#34;&gt;System Info (&lt;code&gt;lshw&lt;/code&gt;)&lt;/h3&gt;
&lt;p&gt;주요 하드웨어 스펙은 다음과 같습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Model&lt;/strong&gt;: T8_Plus (T8P-F)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPU&lt;/strong&gt;: Intel(R) N100 (4 Cores, 4 Threads)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM&lt;/strong&gt;: 16GB LPDDR5 4800MHz (On-board)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;: 512GB SSD (N900-512)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network Interface&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;2x Gigabit Ethernet (Realtek RTL8111/8168/8411)&lt;/li&gt;
&lt;li&gt;1x Wireless AC (Realtek RTL8821CE)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;저전력 프로세서인 N100을 탑재하여 24시간 켜두는 홈서버 용도로 전기요금 부담이 적으며, Docker 컨테이너 수십 개를 돌리기에 충분한 퍼포먼스를 보여줍니다.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
