13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] 홈서버 구축

  • [HomeLabs] 미니PC 홈서버 구축: 저전력 서버 완벽 가이드

    월 전기요금 보고 깜짝 놀란 그날부터 시작됐습니다

    홈서버 구축을 처음 시작했을 때 저는 ATX 풀타워 케이스에 데스크톱 CPU를 꽂아서 24시간 돌렸습니다. 결과는… 다음 달 전기요금 고지서가 저를 가르쳐줬죠. “이건 아니다” 싶었어요. 그때부터 저전력 서버, 특히 미니PC를 진지하게 알아보기 시작했습니다.

    13년 동안 인프라 엔지니어로 일하면서 홈랩(Home Lab)을 꾸준히 운영해왔는데요, 솔직히 말하면 홈랩 환경에서 가장 중요한 건 성능이 아니라 지속 가능성이더라고요. 아무리 좋은 장비도 전기세 때문에 꺼놓으면 의미가 없잖아요.

    이 글에서는 홈서버 구축을 처음 고민하시는 분들, 혹은 기존 홈서버의 전력 소비가 너무 많아서 고민이신 분들을 위해 저전력 미니PC를 활용한 홈서버 구축 가이드를 공유해드리려고 합니다. 실제로 제가 삽질했던 경험들도 솔직하게 담았으니 끝까지 읽어보세요.

    ▲ 미니PC 기반 홈서버의 일반적인 네트워크 구성도 — 인터넷 공유기부터 NAS, 모니터링까지 한눈에 볼 수 있습니다.

    왜 미니PC인가? 저전력 서버의 장단점

    “미니PC가 서버로 쓸 만해요?” 이 질문 정말 많이 받습니다. 결론부터 말씀드리면, 홈서버 용도로는 충분히 쓸 만합니다. 다만 어떤 용도로 쓸지에 따라 달라지긴 해요.

    미니PC 홈서버의 장점

    • 전력 소비가 낮습니다 — 일반 데스크톱 대비 훨씬 적은 전력으로 동작합니다. 24시간 365일 켜두는 홈서버 특성상 이 차이가 연간 전기요금에서 크게 체감됩니다.
    • 소음이 적습니다 — 거실이나 서재에 놔도 크게 신경 쓰이지 않는 수준이에요.
    • 공간을 차지하지 않습니다 — 책상 한 구석, 공유기 옆에 얌전히 자리 잡습니다.
    • 발열이 낮습니다 — 여름에 서버실처럼 방이 더워지는 걱정을 덜 수 있어요.
    • 구입 비용이 상대적으로 낮습니다 — 동급 성능의 일반 데스크톱 대비 저렴한 경우가 많습니다.

    미니PC 홈서버의 단점

    • 확장성이 제한됩니다 — PCIe 슬롯이 없거나 제한적이라 GPU 추가, HBA 카드 장착 등이 어렵습니다.
    • 스토리지 베이가 적습니다 — 내장 드라이브 슬롯이 2개 이하인 경우가 많아 대용량 NAS 구성이 어렵습니다.
    • ECC 메모리 지원이 없는 경우가 많습니다 — 중요한 데이터를 다루는 서버라면 이 부분이 아쉬울 수 있어요.

    홈서버 구축 전 — 용도부터 정하세요

    여기서 중요한 포인트! 미니PC 홈서버를 시작하기 전에 “이걸로 뭘 할 건지”를 먼저 정해야 합니다. 저도 처음엔 그냥 “뭔가 돌려봐야지” 하다가 나중에 용도가 바뀌면서 장비를 두 번 교체한 적이 있거든요.

    용도 필요 사양 추천 구성
    파일 서버 / NAS 낮은 CPU, 충분한 RAM, 스토리지 베이 저전력 CPU + 외장 USB 스토리지 또는 NAS 연동
    미디어 서버 (Plex, Jellyfin 등) 트랜스코딩 지원 CPU 또는 iGPU Intel Quick Sync 지원 CPU 탑재 미니PC
    홈 자동화 (Home Assistant 등) 낮은 사양으로도 충분 저전력 x86 미니PC 또는 ARM 보드
    컨테이너/가상화 서버 멀티코어 CPU, 16GB+ RAM Intel N100 이상 CPU, 16~32GB RAM 구성
    VPN 서버 / 라우터 낮은 CPU, 다중 NIC(네트워크 카드) 2.5GbE 듀얼 포트 지원 미니PC

    미니PC 선택 기준 — 이 5가지는 꼭 확인하세요

    시장에 미니PC 제품이 워낙 많아서 처음 보시면 뭘 골라야 할지 막막하실 거예요. 저도 처음엔 그랬거든요. 제가 홈서버용 미니PC를 고를 때 기준으로 삼는 항목들을 공유해드릴게요.

    1. TDP(열설계전력) 확인

    TDP(Thermal Design Power, 열설계전력)는 CPU가 최대 부하 시 발생하는 열량의 기준값으로, 실제 전력 소비와 비례합니다. 홈서버용으로는 TDP 15W 이하 제품을 권장합니다. Intel N-시리즈(구 Celeron/Pentium 계열)나 AMD Ryzen Embedded 계열이 이 범주에 들어옵니다.

    2. RAM 확장 가능 여부

    미니PC 중에는 RAM이 메인보드에 납땜(온보드)되어 있어서 교체가 불가능한 제품도 있습니다. 홈서버 용도라면 반드시 SO-DIMM 슬롯이 있어 메모리 업그레이드가 가능한 제품을 고르세요. 처음엔 8GB면 충분해 보여도 Docker 컨테이너 몇 개 올리다 보면 금방 부족해집니다.

    3. 스토리지 인터페이스

    M.2 NVMe 슬롯이 있는지, SATA 2.5인치 베이가 있는지 확인하세요. 가능하면 M.2 슬롯 2개 이상이거나 M.2 + 2.5인치 조합을 지원하는 제품이 활용도가 높습니다.

    4. 네트워크 포트

    기가비트 이더넷(1GbE)은 기본이고, 요즘은 2.5GbE를 지원하는 미니PC도 많아졌습니다. 홈서버에서 대용량 파일 전송이나 미디어 스트리밍을 많이 한다면 2.5GbE 이상을 추천합니다.

    5. 베어본 vs 완제품

    베어본(Barebone)은 RAM과 스토리지 없이 본체만 파는 형태이고, 완제품은 RAM과 SSD가 포함된 형태입니다. 직접 조립하는 걸 즐기신다면 베어본이 비용 효율적이고, 번거로움 없이 바로 시작하고 싶다면 완제품이 낫습니다.

    ▲ 일반적인 홈서버용 미니PC 내부 구조 — M.2 슬롯, SO-DIMM 메모리, 2.5인치 SATA 베이 위치를 확인할 수 있습니다.

    OS 선택 — 뭘 깔아야 할까요?

    하드웨어를 골랐다면 이제 OS 선택입니다. 홈서버 구축 목적에 따라 OS 선택이 달라지는데요, 제가 주로 쓰는 조합을 소개해드릴게요.

    Ubuntu Server (우분투 서버)

    범용성이 가장 높습니다. Docker, Kubernetes, 각종 서비스 설치 관련 자료가 가장 많아서 처음 홈서버를 구축하시는 분들께 추천합니다. LTS(Long Term Support, 장기 지원) 버전을 사용하면 안정성도 좋아요.

    Proxmox VE (프록스목스 VE)

    가상화(Virtualization)에 특화된 오픈소스 플랫폼입니다. KVM 기반 가상머신과 LXC 컨테이너를 웹 UI로 편하게 관리할 수 있어서 홈랩 환경에서 정말 많이 써요. 저도 현재 홈랩 메인 서버에 Proxmox를 쓰고 있거든요. 무료로 쓸 수 있고 UI가 직관적이라 강력 추천합니다.

    TrueNAS SCALE (트루나스 스케일)

    NAS(Network Attached Storage, 네트워크 결합 스토리지) 전용 OS입니다. ZFS 파일시스템을 기반으로 데이터 무결성이 뛰어나고, 웹 UI에서 대부분의 설정을 처리할 수 있어요. 파일 서버 용도가 메인이라면 이걸 추천합니다.

    Debian (데비안)

    우분투의 베이스가 되는 OS입니다. 우분투보다 더 가볍고 안정적인 편이라 서버 용도에 적합해요. 다만 자료가 우분투보다 약간 적은 편이긴 합니다.

    실전 구현 — Ubuntu Server + Docker로 홈서버 세팅하기

    이제 진짜 실전입니다. 제가 가장 많이 추천하는 조합인 Ubuntu Server + Docker 기반 홈서버 구축 과정을 단계별로 알려드릴게요.

    1단계: Ubuntu Server 설치 후 기본 설정

    Ubuntu Server를 설치하고 나면 가장 먼저 시스템을 최신 상태로 업데이트합니다.

    # 패키지 목록 업데이트 및 업그레이드
    sudo apt update && sudo apt upgrade -y
    
    # 자주 쓰는 유틸리티 설치
    sudo apt install -y curl wget git htop net-tools unzip

    2단계: 정적 IP 설정

    홈서버는 IP가 바뀌면 곤란하거든요. Netplan(넷플랜)을 사용해서 정적 IP를 설정합니다. 아래는 예시 설정이니 본인 환경에 맞게 IP 주소와 게이트웨이를 수정하세요.

    # /etc/netplan/00-installer-config.yaml
    network:
      version: 2
      ethernets:
        eth0:  # 본인의 네트워크 인터페이스 이름 확인 필요 (ip link 명령어로 확인)
          dhcp4: false
          addresses:
            - 192.168.1.100/24  # 원하는 정적 IP
          routes:
            - to: default
              via: 192.168.1.1  # 게이트웨이 IP
          nameservers:
            addresses:
              - 8.8.8.8
              - 1.1.1.1
    # 설정 적용
    sudo netplan apply

    3단계: Docker 설치

    Docker(도커)는 컨테이너 기반 가상화 도구입니다. 쉽게 말해 각각의 서비스를 독립된 환경에서 실행할 수 있게 해주는 도구예요. 공식 스크립트로 설치하는 게 가장 간편합니다.

    # Docker 공식 설치 스크립트 실행
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    
    # 현재 사용자를 docker 그룹에 추가 (sudo 없이 docker 명령어 사용 가능)
    sudo usermod -aG docker $USER
    
    # 변경사항 적용을 위해 재로그인 또는 아래 명령어 실행
    newgrp docker
    
    # 설치 확인
    docker --version
    docker run hello-world

    4단계: Docker Compose로 서비스 올리기

    Docker Compose(도커 컴포즈)는 여러 컨테이너를 YAML 파일 하나로 정의하고 관리할 수 있게 해주는 도구입니다. 홈서버에서 자주 쓰이는 서비스들을 예시로 보여드릴게요.

    # docker-compose.yml 예시
    version: '3.8'
    
    services:
      # Portainer — 도커 컨테이너 웹 UI 관리 도구
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        ports:
          - "9000:9000"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
    
      # Nginx Proxy Manager — 리버스 프록시 및 SSL 관리
      nginx-proxy-manager:
        image: jc21/nginx-proxy-manager:latest
        container_name: nginx-proxy-manager
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "81:81"  # 관리자 UI
        volumes:
          - npm_data:/data
          - npm_letsencrypt:/etc/letsencrypt
    
      # Uptime Kuma — 서비스 가동 상태 모니터링
      uptime-kuma:
        image: louislam/uptime-kuma:latest
        container_name: uptime-kuma
        restart: unless-stopped
        ports:
          - "3001:3001"
        volumes:
          - uptime_kuma_data:/app/data
    
    volumes:
      portainer_data:
      npm_data:
      npm_letsencrypt:
      uptime_kuma_data:
    # 서비스 시작
    docker compose up -d
    
    # 실행 중인 컨테이너 확인
    docker ps
    
    # 로그 확인
    docker compose logs -f

    5단계: 자동 업데이트 설정 (Watchtower)

    Watchtower(워치타워)는 실행 중인 Docker 컨테이너의 이미지를 자동으로 업데이트해주는 도구입니다. 홈서버는 관리에 많은 시간을 쏟기 어렵기 때문에 이런 자동화 도구를 활용하면 편해요.

    # Watchtower 실행 — 매일 새벽 4시에 업데이트 확인
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower \
      --schedule "0 0 4 * * *" \
      --cleanup

    ⚠️ 삽질 경험 공유 — 이건 꼭 미리 알아두세요

    이 섹션은 제가 직접 겪었던 문제들입니다. 미리 알아두시면 같은 실수를 반복하지 않을 수 있어요.

    문제 1: 정전 후 서버가 자동으로 안 켜지는 문제

    홈서버는 24시간 운영이 목표인데 정전 후 자동으로 켜지지 않으면 원격에서 손쓸 방법이 없습니다. BIOS/UEFI 설정에서 “AC Power Recovery” 또는 “Restore on AC Power Loss” 옵션을 찾아서 “Power On”으로 설정하세요. 이 설정을 빠뜨리는 분들이 생각보다 많아요.

    문제 2: SSH 접속이 갑자기 끊기는 문제

    장시간 SSH 세션을 유지할 때 자동으로 끊기는 경우가 있습니다. 서버 측과 클라이언트 측 모두 설정이 필요합니다.

    # 서버 측 SSH 설정 수정
    sudo nano /etc/ssh/sshd_config
    
    # 아래 줄 추가 또는 수정
    # ClientAliveInterval 60
    # ClientAliveCountMax 3
    
    # SSH 서비스 재시작
    sudo systemctl restart sshd

    문제 3: 디스크 공간 부족 경고

    Docker를 쓰다 보면 사용하지 않는 이미지, 컨테이너, 볼륨이 쌓여서 디스크를 잡아먹습니다. 주기적으로 정리해주세요.

    # 사용하지 않는 Docker 리소스 정리
    docker system prune -a --volumes
    
    # 디스크 사용량 확인
    df -h
    docker system df

    문제 4: 외부 접속 시 보안 설정 미흡

    홈서버를 외부에서 접근 가능하게 열어두면 보안이 중요해집니다. 최소한 아래 사항은 꼭 챙기세요.

    • SSH 포트 변경 — 기본 22번 포트는 자동화된 공격 대상이 됩니다
    • SSH 키 인증 사용 — 비밀번호 인증 대신 공개키 인증을 사용하세요
    • 방화벽 설정 — UFW(Uncomplicated Firewall)로 필요한 포트만 열어두세요
    • Fail2ban 설치 — 반복적인 로그인 시도를 자동으로 차단해줍니다
    # UFW 방화벽 설정
    sudo apt install -y ufw
    
    # 기본 정책 설정
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
    # SSH 허용 (포트를 변경했다면 해당 포트 번호 입력)
    sudo ufw allow 22/tcp
    
    # 웹 서비스 포트 허용
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    
    # 방화벽 활성화
    sudo ufw enable
    sudo ufw status

    ▲ Uptime Kuma와 Portainer를 활용한 홈서버 모니터링 대시보드 예시 — 서비스 가동 상태와 컨테이너 현황을 한눈에 확인할 수 있습니다.

    ✅ 검증 — 제대로 돌아가고 있는지 확인하기

    설정을 다 마쳤다면 제대로 동작하는지 확인해봐야죠. 드디어 됐다! 싶은 순간이 여기서 옵니다 🎉

    서비스 상태 확인

    # 실행 중인 컨테이너 전체 목록
    docker ps
    
    # 시스템 리소스 사용량 모니터링
    htop
    
    # 네트워크 포트 열림 확인
    ss -tlnp
    
    # 서비스 자동 시작 확인
    sudo systemctl is-enabled docker

    웹 UI 접속 확인

    • Portainer: http://서버IP:9000 접속 후 초기 관리자 계정 설정
    • Nginx Proxy Manager: http://서버IP:81 접속 (초기 계정: [email protected] / changeme)
    • Uptime Kuma: http://서버IP:3001 접속 후 모니터링할 서비스 추가

    💡 팁: 원격 접속 환경 구성

    외부에서 홈서버에 안전하게 접근하고 싶다면 VPN을 구성하는 게 좋습니다. WireGuard(와이어가드)나 Tailscale(테일스케일)을 추천합니다. Tailscale은 특히 설정이 정말 간단해서 처음 시작하시는 분들께 좋아요. 이 부분은 별도 글에서 자세히 다룰 예정이니 참고하세요.

    홈서버 구축 요약 — 이것만 기억하세요

    ▲ 미니PC 홈서버 구축 단계별 요약 — 하드웨어 선택부터 서비스 운영까지의 전체 흐름을 한눈에 정리했습니다.

    자주 묻는 질문 (FAQ)

    Q. 미니PC 홈서버, 얼마나 안정적인가요?

    저는 미니PC 기반 홈서버를 수년째 운영 중인데, 하드웨어 고장보다 설정 실수로 인한 다운이 훨씬 많았습니다. 안정적인 리눅스 배포판과 UPS(무정전전원장치)를 함께 쓰면 충분히 안정적으로 운영할 수 있어요.

    Q. RAM은 얼마나 있어야 하나요?

    파일 서버나 홈 자동화만 할 거라면 8GB로도 충분합니다. Docker로 여러 서비스를 돌린다면 16GB를 권장하고, 가상머신까지 올린다면 32GB 이상이 편해요.

    Q. SSD와 HDD 중 뭘 써야 하나요?

    OS와 Docker 데이터는 반드시 SSD(NVMe 권장)에 설치하고, 대용량 파일 저장은 외장 HDD나 NAS를 별도로 연결하는 구성을 추천합니다. SSD에 모든 걸 저장하면 비용이 많이 들고, HDD에 OS를 설치하면 속도가 너무 느려요.

    Q. 처음 홈서버를 시작한다면 어떤 서비스부터 올리면 좋을까요?

    Portainer로 Docker 관리 UI를 먼저 구성하고, Uptime Kuma로 모니터링을 설정한 다음, 본인이 가장 필요한 서비스(파일 서버라면 Nextcloud, 미디어 서버라면 Jellyfin 등)를 추가하는 순서를 권장합니다.

    마무리 — 홈서버는 꾸준히 배우는 과정입니다

    홈서버 구축, 처음엔 막막해 보이지만 막상 시작하면 생각보다 빠르게 동작하는 걸 볼 수 있어요. 저도 처음 홈서버를 구성할 때 며칠 밤을 새웠던 기억이 나는데, 지금은 새로운 서비스를 올리는 게 취미 수준이 됐거든요.

    미니PC 기반 저전력 홈서버는 홈서버를 처음 시작하거나, 전기요금 걱정 없이 24시간 운영하고 싶은 분들에게 정말 좋은 선택입니다. 완벽한 장비가 없어도 괜찮아요. 지금 있는 장비로 시작하고, 부족한 부분은 운영하면서 채워나가면 됩니다.

    다음 글에서는 Proxmox VE를 활용한 홈랩 가상화 환경 구성을 다룰 예정입니다. 미니PC 한 대로 여러 개의 가상머신을 돌리는 방법, 궁금하시죠? 이전 글에서 네트워크 기초 설정을 다뤘으니 함께 보시면 더 도움이 될 거예요.

    혹시 홈서버 구축하면서 막히는 부분이 있으시면 댓글로 남겨주세요. 제가 아는 범위 내에서 최대한 도움을 드리겠습니다. 🎉

  • [HomeLabs] 씬클라이언트 홈서버 구축: 저전력 미니PC 활용 완벽 가이드

    전기세 걱정 없이 24시간 서버 돌리고 싶다면?

    홈서버를 처음 구축할 때 저도 제일 먼저 든 걱정이 “이거 전기세 얼마나 나오지?”였거든요. 그때 마침 회사 IT 창고에 쌓여 있던 씬클라이언트(Thin Client) 장비들을 보면서 “이걸 집에 가져다 쓰면 어떨까?” 싶었습니다. 결론부터 말씀드리면, 씬클라이언트 홈서버 구축은 저전력 + 저비용 + 충분한 성능이라는 세 마리 토끼를 꽤 잘 잡는 선택이에요.

    요즘 미니PC 홈서버에 관심 갖는 분들이 늘어나고 있는데, 막상 어떤 장비를 고르고 어떻게 세팅해야 할지 막막하신 분들을 위해 13년간 서버실에서 일해온 경험을 정리해봤습니다.

    씬클라이언트 기반 홈랩의 전형적인 네트워크 구성도 — 공유기, 씬클라이언트 서버, NAS, 그리고 외부 접근 경로를 한눈에 볼 수 있습니다.

    씬클라이언트(Thin Client)가 뭔가요? 쉽게 풀어보면

    씬클라이언트는 원래 기업 환경에서 VDI(Virtual Desktop Infrastructure, 가상 데스크탑 인프라)나 원격 서버에 접속하기 위한 단말기로 쓰이던 장비예요. 쉽게 말해서, 자체적으로 무거운 연산은 안 하고 서버에서 처리한 결과만 화면에 뿌려주는 “얇은(Thin)” 클라이언트죠.

    이게 홈서버 용도로 매력적인 이유가 있어요.

    • 기업에서 대량으로 쓰다 교체한 중고 물량이 시장에 꽤 많이 풀림
    • 원래 설계 자체가 저전력, 저소음, 소형 폼팩터(Form Factor)
    • x86 아키텍처 기반이라 일반 리눅스 서버 OS 설치 가능
    • eMMC나 SSD가 내장된 모델이 많아 별도 저장장치 없이도 부팅 가능

    저도 처음엔 “이게 진짜 서버 역할을 할 수 있어?” 반신반의했는데, 지금은 홈랩의 핵심 노드로 잘 쓰고 있습니다 ㅎㅎ.

    씬클라이언트 vs 일반 미니PC — 뭐가 다를까?

    구분 씬클라이언트 일반 미니PC NUC 계열
    주 용도 기업 단말기 (중고 활용) 개인 사용 범용 소형 데스크탑/서버
    가격대 (중고) 매우 저렴 중간 비교적 고가
    소비 전력 매우 낮음 낮음~중간 낮음~중간
    확장성 제한적 중간 높음
    소음 매우 조용 (무팬 모델 있음) 조용한 편 모델마다 다름
    신뢰성 기업용 내구성 소비자용 높음

    💡 팁: 씬클라이언트는 원래 하루 종일 켜놓는 기업 환경에서 쓰이던 장비라 24시간 연속 운영에 강한 내구성을 가진 경우가 많습니다.

    어떤 씬클라이언트를 골라야 할까? — 선택 기준 정리

    여기서 솔직히 말씀드리면, 특정 모델을 무조건 추천하기보다는 어떤 기준으로 고를지를 아는 게 더 중요해요. 중고 시장 물량은 지역마다, 시기마다 달라지거든요.

    체크해야 할 핵심 스펙

    1. CPU 아키텍처 확인: x86_64(AMD64) 아키텍처인지 반드시 확인하세요. ARM 기반 씬클라이언트는 지원되는 소프트웨어가 제한됩니다.
    2. RAM 용량 및 확장 가능 여부: 최소 4GB, 가능하면 8GB 이상. 솔더드(Soldered, 납땜 고정) RAM인지 교체 가능한 SO-DIMM 슬롯인지 꼭 확인하세요.
    3. 저장장치 인터페이스: M.2 NVMe, M.2 SATA, 2.5인치 SATA 슬롯 여부. eMMC만 있는 모델은 확장이 어렵습니다.
    4. 네트워크 포트: 기가비트(1GbE) 이더넷 포트가 있는지 확인. 일부 구형 모델은 100Mbps에 그치기도 해요.
    5. USB 포트 수량 및 규격: USB 3.0 이상 포트가 몇 개인지 — 외장 저장장치 연결에 중요합니다.
    6. BIOS/UEFI 접근 가능 여부: 부팅 순서 변경, PXE 부팅 설정 등을 위해 BIOS에 접근할 수 있어야 합니다.
    7. 소비 전력 TDP: CPU의 TDP(Thermal Design Power, 열 설계 전력)가 낮을수록 전기세 절약.

    ⚠️ 주의: 일부 기업용 씬클라이언트는 BIOS가 잠겨 있거나, 특정 OS만 부팅되도록 제한이 걸려 있는 경우가 있어요. 중고 구입 전에 판매자에게 BIOS 접근 가능 여부를 꼭 확인하세요. 저도 한번 이걸 놓쳐서 삽질했습니다 😅.

    OS 설치 — Ubuntu Server로 시작하기

    씬클라이언트 홈서버 구축에서 OS는 Ubuntu Server LTS(Long Term Support, 장기 지원 버전)를 강력 추천합니다. 커뮤니티가 크고, 레퍼런스가 많아서 문제가 생겼을 때 해결책 찾기가 훨씬 수월하거든요.

    부팅 USB 만들기

    # balenaEtcher나 dd 명령어로 USB 부팅 디스크 생성
    # Linux/macOS에서 dd 사용 시 (주의: of= 경로 틀리면 데이터 날아갑니다!)
    sudo dd if=ubuntu-server-*.iso of=/dev/sdX bs=4M status=progress
    sync

    ⚠️ 중요: of=/dev/sdX에서 X는 여러분의 USB 드라이브 경로입니다. lsblk 명령어로 먼저 확인하고 진행하세요. 잘못된 경로 입력 시 데이터 복구 불가!

    설치 후 기본 세팅

    # 시스템 업데이트
    sudo apt update && sudo apt upgrade -y
    
    # 필수 패키지 설치
    sudo apt install -y \
      curl \
      wget \
      git \
      htop \
      net-tools \
      openssh-server \
      ufw
    
    # SSH 서비스 활성화 및 시작
    sudo systemctl enable ssh
    sudo systemctl start ssh
    
    # UFW(Uncomplicated Firewall) 기본 설정
    sudo ufw allow ssh
    sudo ufw enable
    sudo ufw status

    고정 IP 설정 — Netplan으로

    홈서버는 IP가 바뀌면 난감하니까 고정 IP(Static IP)를 잡아줘야 해요. Ubuntu 18.04 이후부터는 Netplan(네트플랜)을 씁니다.

    # /etc/netplan/00-installer-config.yaml
    network:
      version: 2
      ethernets:
        eth0:  # 실제 인터페이스명으로 변경 (ip a 명령어로 확인)
          dhcp4: no
          addresses:
            - 192.168.1.100/24  # 원하는 고정 IP
          gateway4: 192.168.1.1  # 공유기 IP
          nameservers:
            addresses:
              - 1.1.1.1
              - 8.8.8.8
    # 설정 적용
    sudo netplan apply
    
    # 적용 확인
    ip a

    Ubuntu Server 설치 완료 후 SSH로 접속한 터미널 화면 — 이 화면이 뜨면 절반은 성공입니다.

    Docker로 서비스 올리기 — 홈서버의 꽃

    저전력 서버 구축에서 Docker(도커)는 거의 필수예요. 자원을 효율적으로 쓰면서 여러 서비스를 격리해서 운영할 수 있거든요. VM(Virtual Machine, 가상 머신)보다 오버헤드가 훨씬 적어서 저전력 환경에 딱 맞습니다.

    Docker 설치

    # Docker 공식 설치 스크립트 사용
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    
    # 현재 사용자를 docker 그룹에 추가 (sudo 없이 docker 명령 사용)
    sudo usermod -aG docker $USER
    
    # 변경 사항 적용을 위해 재로그인 후 확인
    newgrp docker
    docker --version

    Docker Compose로 서비스 스택 구성

    여기서 제가 실제로 씬클라이언트 홈서버에서 돌리고 있는 기본 스택을 공유할게요. Portainer(포테이너)는 Docker 컨테이너를 웹 UI로 관리할 수 있게 해주는 도구인데, 초보자한테 정말 유용합니다.

    # docker-compose.yml
    version: '3.8'
    
    services:
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        ports:
          - "9000:9000"
          - "9443:9443"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
    
      nginx-proxy-manager:
        image: jc21/nginx-proxy-manager:latest
        container_name: nginx-proxy-manager
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "81:81"  # 관리자 UI
        volumes:
          - npm_data:/data
          - npm_letsencrypt:/etc/letsencrypt
    
    volumes:
      portainer_data:
      npm_data:
      npm_letsencrypt:
    # 스택 시작
    docker compose up -d
    
    # 실행 중인 컨테이너 확인
    docker compose ps
    
    # 로그 확인
    docker compose logs -f

    홈서버에서 유용한 서비스 목록

    씬클라이언트 홈서버에서 실제로 잘 돌아가는 서비스들을 정리해봤어요.

    • Portainer: Docker 관리 웹 UI
    • Nginx Proxy Manager: 리버스 프록시(Reverse Proxy) + SSL 인증서 자동 관리
    • Pi-hole: DNS 기반 광고 차단 서버
    • Uptime Kuma: 서비스 모니터링 대시보드
    • Vaultwarden: Bitwarden 호환 셀프호스팅 패스워드 매니저
    • Nextcloud: 셀프호스팅 클라우드 스토리지 (RAM이 충분할 때)
    • Home Assistant: 스마트홈 허브

    💡 팁: RAM이 4GB인 모델이라면 한 번에 너무 많은 서비스를 올리지 마세요. free -h 명령어로 메모리 사용량을 주기적으로 확인하면서 서비스를 하나씩 추가하는 게 안전합니다.

    ⚠️ 삽질 모음 — 제가 겪은 트러블슈팅

    13년 동안 서버 만지면서 느낀 건데, 홈랩은 항상 예상치 못한 곳에서 막힙니다. 제가 씬클라이언트 홈서버 구축하면서 겪은 주요 문제들을 공유할게요.

    문제 1: 부팅 후 USB 인식 안 됨

    씬클라이언트 일부 모델은 기본 BIOS 설정에서 USB 부팅이 비활성화되어 있어요. BIOS 진입 키(보통 F2, F10, Del 중 하나)를 눌러서 Boot Order(부팅 순서)에서 USB를 최우선으로 변경해야 합니다. Secure Boot(보안 부팅)도 비활성화해야 Ubuntu 설치가 잘 되더라고요.

    문제 2: 네트워크 인터페이스 이름이 이상함

    Ubuntu에서 네트워크 인터페이스 이름이 eth0이 아니라 enp2s0이나 eno1처럼 나오는 경우가 많아요. Netplan 설정할 때 실제 이름을 먼저 확인해야 합니다.

    # 실제 네트워크 인터페이스 이름 확인
    ip link show
    # 또는
    ip a

    문제 3: 전원 차단 후 자동 부팅이 안 됨

    정전이나 실수로 전원이 끊겼을 때 자동으로 다시 켜지게 하려면 BIOS에서 “Power On After Power Failure” 또는 “AC Power Recovery” 옵션을 “On” 또는 “Last State”로 설정해야 해요. 이걸 안 하면 정전 후에 서버가 죽어 있는 상황이 생깁니다.

    문제 4: Docker 컨테이너가 재시작 후 안 올라옴

    Docker 서비스가 시스템 시작 시 자동 실행되도록 설정이 필요합니다.

    # Docker 서비스 자동 시작 등록
    sudo systemctl enable docker
    sudo systemctl enable containerd
    
    # 확인
    sudo systemctl is-enabled docker

    문제 5: eMMC 저장장치 용량 부족

    내장 eMMC가 32GB 이하인 모델은 OS + Docker 이미지로 금방 꽉 차요. 외장 USB SSD나 M.2 슬롯 추가 SSD로 용량을 늘리고, Docker의 데이터 디렉터리를 변경해주는 게 좋습니다.

    # Docker 데이터 디렉터리 변경
    # /etc/docker/daemon.json 파일 생성 또는 수정
    sudo nano /etc/docker/daemon.json
    {
      "data-root": "/mnt/external-ssd/docker"
    }
    # Docker 재시작
    sudo systemctl restart docker
    
    # 확인
    docker info | grep "Docker Root Dir"

    모니터링 설정 — 서버 상태 한눈에 보기

    저전력 서버 구축을 하고 나서 “잘 돌아가고 있나?” 확인하고 싶은 게 당연하죠. Uptime Kuma(업타임 쿠마)와 Glances(글랜시스)를 같이 쓰면 꽤 만족스러운 모니터링 환경이 됩니다.

    # monitoring-stack.yml
    version: '3.8'
    
    services:
      uptime-kuma:
        image: louislam/uptime-kuma:latest
        container_name: uptime-kuma
        restart: unless-stopped
        ports:
          - "3001:3001"
        volumes:
          - uptime_kuma_data:/app/data
    
      glances:
        image: nicolargo/glances:latest
        container_name: glances
        restart: unless-stopped
        pid: host
        ports:
          - "61208:61208"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - GLANCES_OPT=-w  # 웹 서버 모드로 실행
    
    volumes:
      uptime_kuma_data:

    Uptime Kuma와 Glances로 구성한 홈서버 모니터링 화면 — 각 서비스 응답 시간과 CPU/메모리 사용률을 실시간으로 확인할 수 있습니다.

    전력 최적화 — 진짜 저전력으로 만들기

    씬클라이언트 홈서버의 장점을 최대한 살리려면 OS 레벨에서도 전력 최적화를 해주면 좋아요.

    불필요한 서비스 비활성화

    # 서버에서 불필요한 GUI 관련 서비스 비활성화
    sudo systemctl disable bluetooth
    sudo systemctl disable cups  # 프린터 서비스
    sudo systemctl disable avahi-daemon  # mDNS (필요 없다면)
    
    # 현재 실행 중인 서비스 목록 확인
    sudo systemctl list-units --type=service --state=running

    CPU 주파수 조절 (powersave 모드)

    # cpufrequtils 설치
    sudo apt install -y cpufrequtils
    
    # 현재 CPU 거버너(Governor) 확인
    cpufreq-info | grep "current policy"
    
    # powersave 모드로 변경 (저전력 우선)
    sudo cpufreq-set -g powersave
    
    # 부팅 시 자동 적용 설정
    echo 'GOVERNOR="powersave"' | sudo tee /etc/default/cpufrequtils

    홈랩 구축 결과 정리 — 이 정도면 충분합니다

    씬클라이언트 홈서버 구축을 완료하고 나면 어떤 게 가능해지는지 정리해볼게요.

    항목 씬클라이언트 홈서버 일반 데스크탑 서버
    24시간 운영 전기세 부담 매우 낮음 높음
    소음 거의 없음 (무팬 모델) 팬 소음 있음
    초기 비용 중고 시 매우 저렴 상대적으로 높음
    Docker 서비스 운영 5~10개 경량 서비스 가능 제한 없음
    확장성 제한적 높음
    공간 차지 매우 작음 큼

    🎉 드디어 됐다! 씬클라이언트 홈서버가 완성되면, Pi-hole로 집 전체 광고를 차단하고, Vaultwarden으로 패스워드를 직접 관리하고, Uptime Kuma로 모든 서비스 상태를 모니터링하는 나만의 홈랩이 완성됩니다.

    씬클라이언트 홈서버 구축 전체 과정 요약 — 장비 선택부터 OS 설치, Docker 세팅, 모니터링까지 한눈에 보는 로드맵.

    자주 묻는 질문 (FAQ)

    Q. 씬클라이언트로 NAS도 만들 수 있나요?

    가능합니다! USB 3.0 포트에 외장 HDD나 SSD를 연결하고, Samba(삼바) 또는 NFS(Network File System)를 설정하면 기본적인 NAS 기능을 구현할 수 있어요. 다만 USB 인터페이스의 속도 한계가 있으니 고성능 NAS를 원하신다면 전용 NAS 장비를 고려하시는 게 좋습니다.

    Q. RAM이 4GB인 모델에서 돌릴 수 있는 서비스 수는?

    경량 서비스 기준으로 5~8개 정도는 무리 없이 돌아가더라고요. Pi-hole, Portainer, Vaultwarden, Uptime Kuma, Nginx Proxy Manager 조합은 4GB에서도 안정적입니다.

    Q. 외부에서 접근하려면 어떻게 해야 하나요?

    Cloudflare Tunnel(클라우드플레어 터널)을 활용하면 공인 IP 없이도 안전하게 외부 접근이 가능합니다. 이 부분은 내용이 많아서 다음 글에서 자세히 다룰 예정이에요.

    Q. 씬클라이언트는 어디서 구매하나요?

    중고나라, 당근마켓, eBay 등에서 기업 방출 중고 물량을 찾을 수 있어요. 검색할 때 “씬클라이언트”, “thin client”, “기업 방출 미니PC” 키워드로 찾아보세요.

    마무리 — 작게 시작해서 크게 배우는 홈랩

    씬클라이언트 홈서버 구축, 처음엔 뭔가 복잡해 보이지만 막상 해보면 생각보다 훨씬 재미있습니다. 저도 첫 홈서버가 씬클라이언트였는데, 그게 지금 이 블로그의 시작점이 됐거든요.

    중요한 건 완벽한 장비를 기다리는 것보다 지금 있는 장비로 일단 시작하는 것입니다. 저전력 서버 구축을 통해 리눅스 명령어도 익히고, 네트워크도 배우고, Docker도 배우다 보면 어느 순간 홈랩이 내 가장 좋은 실습 환경이 되어 있을 거예요.

    • ✅ 씬클라이언트 선택 기준 이해
    • ✅ Ubuntu Server 설치 및 기본 설정
    • ✅ Docker + Compose로 서비스 운영
    • ✅ 전력 최적화로 진짜 저전력 서버 완성
    • ✅ 모니터링으로 안정적인 운영 환경 구축

    다음 글에서는 Cloudflare Tunnel을 이용한 외부 접근 설정을 다룰 예정입니다. 공인 IP 없이도 집 서버에 안전하게 접근하는 방법인데, 씬클라이언트 홈랩 구축의 완성판이라고 할 수 있어요. 기대해주세요! 😊

    혹시 구축하다가 막히는 부분 있으시면 댓글로 남겨주세요. 경험자로서 최대한 도움 드리겠습니다!

  • [HomeLabs] 저전력 미니 서버 구축: N100/N305 미니PC 홈서버 완벽 가이드

    [HomeLabs] 저전력 미니 서버 구축: N100/N305 미니PC 홈서버 완벽 가이드

    전기세 걱정 없는 홈서버, N100/N305 미니PC로 시작하기

    홈서버 구축을 처음 고민할 때 가장 많이 받는 질문이 있어요. “전기세 얼마나 나와요?” 저도 처음에 타워형 서버로 홈랩을 시작했다가 한 달 전기세 고지서 보고 잠깐 멘붕이 왔었거든요. 그때부터 저전력 미니 서버 쪽으로 눈을 돌리기 시작했습니다.

    요즘 홈랩 커뮤니티에서 가장 핫한 조합이 바로 인텔 N100, N305 칩셋을 탑재한 미니PC예요. 가격도 합리적이고, 전력 소비는 놀라울 정도로 낮고, 성능은 웬만한 홈랩 워크로드를 충분히 소화해내거든요. 오늘은 제가 직접 구축하고 운영해온 경험을 바탕으로 N100/N305 미니PC 홈서버 구축 완벽 가이드를 정리해봤습니다.

    N100 N305 미니PC 홈서버 전체 구성도 및 홈랩 아키텍처 다이어그램

    ▲ N100/N305 기반 저전력 홈랩의 전체 구성도 — 미니PC 본체부터 네트워크 스위치, NAS 연결까지 한눈에 볼 수 있는 레이아웃입니다.


    N100과 N305, 뭐가 다른가요?

    처음 보시는 분들은 “N100이랑 N305가 뭔데요?” 하실 수 있어요. 쉽게 말해서, 인텔이 저전력 소형 기기용으로 내놓은 Alder Lake-N 시리즈 프로세서입니다. 기존 Celeron/Pentium 라인을 대체하는 포지션이라고 보시면 돼요.

    N100 vs N305 핵심 차이점

    항목 Intel N100 Intel N305
    코어 구성 4코어 (E-core) 8코어 (E-core)
    TDP (열설계전력) 6W 15W
    최대 부스트 클럭 3.4GHz 3.8GHz
    ECC 메모리 지원 미지원 지원 (일부 보드)
    적합한 용도 단독 서비스, 가벼운 컨테이너 다수 VM, 복잡한 워크로드
    대략적 가격대 상대적으로 저렴 N100 대비 높음

    제 경험상 처음 홈서버를 시작하는 분이라면 N100으로도 충분합니다. Docker 컨테이너 10~20개 정도는 거뜬히 돌아가요. 반면에 Proxmox VE(프록스목스, 오픈소스 가상화 플랫폼)로 여러 개의 VM을 동시에 굴리거나, 미디어 트랜스코딩(실시간 영상 변환)을 함께 할 계획이라면 N305 쪽이 더 여유롭습니다.

    💡 팁: N100/N305 모두 Intel Quick Sync(퀵 싱크, 하드웨어 가속 영상 처리) 기능을 지원합니다. Plex나 Jellyfin(젤리핀, 미디어 서버) 트랜스코딩에 이걸 활용하면 CPU 부하가 확 줄어들어요.


    하드웨어 선택 가이드 — 뭘 사야 하나요?

    미니PC 시장에는 정말 다양한 제품이 있는데, 처음엔 어떤 걸 골라야 할지 막막하더라고요. 제가 실제로 고려했던 체크리스트를 공유할게요.

    미니PC 선택 시 핵심 체크리스트

    • LAN 포트 개수: 홈서버용이라면 2.5GbE(2.5기가비트 이더넷) 포트가 2개 이상인 게 좋아요. 하나는 업스트림, 하나는 관리용이나 추가 네트워크 분리에 씁니다.
    • RAM 확장성: 최소 16GB는 되어야 해요. 처음엔 8GB로 버티다가 결국 업그레이드했는데, 처음부터 넉넉하게 가는 게 낫더라고요.
    • 스토리지 슬롯: M.2 NVMe 슬롯이 2개 이상이면 OS용 + 데이터용으로 분리 운영이 가능해서 편합니다.
    • USB 포트: USB 3.0 이상 포트가 넉넉한지 확인. 외장 스토리지 연결할 때 필요해요.
    • 팬리스 vs 쿨링팬 여부: 24시간 돌아가는 서버라면 팬 소음이 생각보다 거슬릴 수 있어요.
    • Wake-on-LAN (WoL) 지원: 원격으로 전원을 켤 수 있는 기능. 홈서버에선 거의 필수입니다.

    시중에 N100 탑재 미니PC는 여러 브랜드에서 다양한 모델로 출시되어 있어요. 구매 전에 커뮤니티 리뷰와 실제 사용자 후기를 꼭 확인하시는 걸 추천드려요. 특히 바이오스(BIOS) 업데이트 지원이 잘 되는지, 리눅스 드라이버 호환성은 어떤지가 중요하거든요.


    OS 설치 — Proxmox VE로 홈랩 기반 다지기

    저는 홈서버 OS로 Proxmox VE(프록스목스 버추얼 인바이런먼트)를 강력 추천합니다. 오픈소스 하이퍼바이저(가상화 플랫폼)인데, 웹 UI로 VM과 LXC 컨테이너를 쉽게 관리할 수 있어서 홈랩에 딱이거든요.

    Proxmox VE 설치 순서

    1. Proxmox 공식 사이트에서 ISO 이미지 다운로드
    2. Rufus 또는 Balena Etcher로 USB 부팅 디스크 생성
    3. 미니PC에 USB 꽂고 부팅, BIOS에서 USB 부팅 우선순위 설정
    4. 설치 마법사 진행 — IP 주소, 게이트웨이, DNS 설정
    5. 설치 완료 후 웹 브라우저에서 https://[IP주소]:8006 접속

    설치 자체는 어렵지 않아요. 근데 여기서 한 가지 꼭 챙겨야 할 게 있습니다.

    ⚠️ 주의: Proxmox 기본 설치 후 엔터프라이즈 저장소(Enterprise Repository)가 활성화되어 있어서, 라이선스 없이 apt update를 하면 오류가 납니다. 아래 설정으로 무료 커뮤니티 저장소로 바꿔주세요.

    # Proxmox 엔터프라이즈 저장소 비활성화
    echo "# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list
    
    # 무료 커뮤니티 저장소 추가
    echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
    
    # 패키지 업데이트
    apt update && apt upgrade -y

    저도 처음에 이거 모르고 한참 헤맸습니다 ㅎㅎ. 설치 직후에 꼭 해주세요.

    N100/N305에서 Intel GPU 패스스루 설정

    미디어 서버를 돌릴 계획이라면 내장 GPU를 LXC 컨테이너나 VM에 넘겨주는 GPU 패스스루(Pass-through) 설정이 중요합니다.

    # LXC 컨테이너 설정 파일 예시 (/etc/pve/lxc/[CTID].conf)
    # i915 드라이버를 통한 Intel Quick Sync 공유 방식 설정
    
    lxc.cgroup2.devices.allow: c 226:0 rwm
    lxc.cgroup2.devices.allow: c 226:128 rwm
    lxc.cgroup2.devices.allow: c 29:0 rwm
    lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
    lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
    lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

    이렇게 하면 Jellyfin 같은 미디어 서버 컨테이너에서 Intel Quick Sync 하드웨어 가속을 바로 쓸 수 있어요. 체감 차이가 꽤 큽니다.

    Proxmox VE 웹 대시보드에서 N100 미니PC 홈서버 노드와 컨테이너 관리 화면

    ▲ Proxmox VE 웹 대시보드 — CPU 사용률, 메모리, 스토리지 현황을 한눈에 파악할 수 있어요. N100 기반임에도 여러 컨테이너가 여유롭게 돌아가고 있습니다.


    Docker로 핵심 서비스 올리기

    Proxmox 위에 Debian LXC 컨테이너를 만들고, 그 안에 Docker를 설치하는 방식을 저는 선호합니다. VM보다 오버헤드가 적고, 그렇다고 호스트를 직접 건드리지 않아도 되거든요.

    Docker + Docker Compose 설치

    # 기존 구버전 Docker 제거
    apt remove docker docker-engine docker.io containerd runc
    
    # 필수 패키지 설치
    apt update
    apt install -y ca-certificates curl gnupg lsb-release
    
    # Docker 공식 GPG 키 추가
    mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
    # Docker 저장소 추가
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
      $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # Docker 엔진 설치
    apt update
    apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

    홈랩 필수 서비스 Docker Compose 예시

    제가 실제로 돌리고 있는 스택의 일부를 공유할게요. Traefik(트래픽, 리버스 프록시)을 앞단에 두고, 각 서비스를 뒤에 배치하는 구조입니다.

    version: '3.8'
    
    services:
      traefik:
        image: traefik:v2.10
        container_name: traefik
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "8080:8080"  # Traefik 대시보드
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - ./traefik/traefik.yml:/traefik.yml:ro
          - ./traefik/acme.json:/acme.json  # Let's Encrypt 인증서
        networks:
          - proxy
    
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.portainer.rule=Host(`portainer.homelab.local`)"
        networks:
          - proxy
    
      jellyfin:
        image: jellyfin/jellyfin:latest
        container_name: jellyfin
        restart: unless-stopped
        devices:
          - /dev/dri:/dev/dri  # Intel Quick Sync GPU 패스스루
        volumes:
          - ./jellyfin/config:/config
          - /mnt/media:/media:ro
        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.jellyfin.rule=Host(`jellyfin.homelab.local`)"
        networks:
          - proxy
    
    volumes:
      portainer_data:
    
    networks:
      proxy:
        external: true

    Traefik을 쓰면 각 서비스마다 포트 번호를 외울 필요 없이 도메인 이름으로 접근할 수 있어서 진짜 편해요. 처음엔 설정이 좀 복잡해 보이는데, 한 번 익히면 계속 쓰게 됩니다.

    홈랩에서 자주 쓰는 서비스 목록

    • Portainer(포테이너): Docker 컨테이너 웹 UI 관리
    • Jellyfin(젤리핀): 오픈소스 미디어 서버
    • Home Assistant(홈 어시스턴트): 스마트홈 허브
    • Pi-hole(파이홀): 네트워크 광고 차단 DNS
    • Uptime Kuma(업타임 쿠마): 서비스 모니터링
    • Vaultwarden(볼트워든): 셀프호스팅 비밀번호 관리자 (Bitwarden 호환)
    • Nextcloud(넥스트클라우드): 셀프호스팅 클라우드 스토리지

    ⚠️ 삽질 포인트 — 이것만 주의하면 됩니다

    13년 경력이라고 해도 새로운 환경에서는 삽질을 합니다 ㅎㅎ. 제가 N100 미니PC 홈서버 세팅하면서 걸렸던 포인트들을 정리해봤어요.

    문제 1: 절전 모드로 인한 서버 다운

    처음에 며칠 잘 돌다가 갑자기 서버가 응답을 안 하는 거예요. 가서 보면 켜져 있는데 핑이 안 되더라고요. 알고 보니 BIOS의 절전 설정이 문제였습니다.

    # Linux에서 절전 모드 비활성화
    # /etc/systemd/sleep.conf 수정
    
    [Sleep]
    AllowSuspend=no
    AllowHibernation=no
    AllowSuspendThenHibernate=no
    AllowHybridSleep=no

    BIOS에서도 S3 Sleep State를 비활성화하거나, AC 전원 연결 시 자동 부팅 옵션을 켜두세요. 정전 후 자동 복구에도 필요합니다.

    문제 2: NTP 시간 동기화 오류로 인한 인증서 오류

    LXC 컨테이너에서 HTTPS 인증서 관련 오류가 간헐적으로 났었는데, 원인이 시간 동기화 문제였어요. 컨테이너 내부 시간이 호스트와 달라지는 경우가 있거든요.

    # 호스트 시간대 설정
    timedatectl set-timezone Asia/Seoul
    
    # systemd-timesyncd 활성화
    systemctl enable systemd-timesyncd
    systemctl start systemd-timesyncd
    
    # 동기화 상태 확인
    timedatectl status

    문제 3: 저장 공간 부족 — /var/lib/docker 폭탄

    Docker를 쓰다 보면 사용하지 않는 이미지, 볼륨, 네트워크가 쌓여서 디스크를 잡아먹습니다. 주기적으로 정리해줘야 해요.

    # 사용하지 않는 Docker 리소스 전체 정리
    docker system prune -a --volumes
    
    # 또는 개별 정리
    docker image prune -a    # 미사용 이미지 삭제
    docker volume prune      # 미사용 볼륨 삭제
    docker network prune     # 미사용 네트워크 삭제
    
    # 현재 디스크 사용량 확인
    docker system df

    저는 이걸 cron(크론, 리눅스 작업 스케줄러)으로 매주 한 번씩 자동 실행되도록 해뒀습니다.


    전력 소비 모니터링 — 진짜 얼마나 아낄 수 있나요?

    홈서버 구축할 때 가장 궁금한 게 “전기세 얼마나 나오냐”잖아요. N100 미니PC는 아이들(idle, 대기 상태) 시 소비 전력이 매우 낮습니다. 물론 실제 수치는 구체적인 모델과 구성에 따라 다르지만, 일반적으로 구형 타워 서버나 데스크탑 대비 전력 소비가 크게 낮은 편이에요.

    Proxmox에서 전력 관련 상태를 간단히 확인하는 방법이에요.

    # CPU 현재 주파수 및 거버너 확인
    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
    # powertop 설치 및 실행 (전력 소비 분석 툴)
    apt install powertop -y
    powertop
    
    # CPU 절전 모드 활성화 (powertop 자동 튜닝)
    powertop --auto-tune

    💡 팁: powertop --auto-tune을 /etc/rc.local에 추가해두면 부팅 시 자동으로 전력 최적화가 적용됩니다. 체감상 아이들 소비 전력이 더 낮아지더라고요.

    홈서버 Grafana 모니터링 대시보드에서 저전력 미니PC 전력 소비 및 컨테이너 현황 확인

    ▲ Grafana(그라파나) + Prometheus(프로메테우스)로 구성한 홈서버 모니터링 대시보드 — CPU, 메모리, 네트워크, 전력 소비까지 실시간으로 확인할 수 있어요.


    자주 묻는 질문 (FAQ)

    Q. N100 미니PC로 NAS(나스, 네트워크 연결 스토리지)도 되나요?

    됩니다! USB 3.0으로 외장 HDD를 연결하거나, M.2 슬롯에 NVMe를 꽂아서 TrueNAS Scale이나 OpenMediaVault를 올릴 수 있어요. 다만 대용량 HDD를 여러 개 연결하고 싶다면 SATA 포트가 없는 모델이 많아서, 이 경우엔 USB 3.0 허브나 별도 NAS를 따로 두는 걸 추천합니다.

    Q. N100으로 쿠버네티스(Kubernetes) 운영 가능한가요?

    가능하긴 한데, 단일 노드라면 K3s(케이쓰리에스, 경량 쿠버네티스)를 추천합니다. 풀 쿠버네티스보다 리소스를 훨씬 적게 먹거든요. 저도 다음 글에서 K3s 홈랩 구축 과정을 다룰 예정이에요.

    Q. 외부에서 접속하려면 어떻게 해야 하나요?

    가장 안전한 방법은 Tailscale(테일스케일, 메시 VPN 서비스) 또는 WireGuard(와이어가드, 오픈소스 VPN)를 사용하는 거예요. 포트 포워딩으로 직접 노출하는 건 보안상 권장하지 않습니다.

    Q. 처음 시작할 때 예산은 얼마나 잡아야 하나요?

    N100 미니PC 본체, RAM, NVMe SSD를 합쳐서 구성할 수 있어요. 중고 시장도 잘 활용하면 더 절약할 수 있고요. 정확한 가격은 시기와 판매처에 따라 다르니 구매 시점에 직접 비교해보시는 게 좋습니다.


    마무리 — 저전력 홈서버, 이제 시작해보세요

    N100 N305 미니PC 홈서버 구축 단계별 로드맵 요약 인포그래픽

    ▲ N100/N305 미니PC 홈서버 구축 로드맵 요약 — OS 설치부터 서비스 배포까지의 단계를 한눈에 정리한 인포그래픽입니다.

    저전력 미니 서버는 홈랩 입문자에게도, 기존 서버 전기세에 지친 분들에게도 정말 매력적인 선택지입니다. N100/N305 기반 미니PC는 낮은 전력 소비, 조용한 운영, 합리적인 가격이라는 세 가지 장점을 동시에 갖추고 있거든요.

    오늘 다룬 내용을 정리하면:

    • ✅ N100(4코어, 6W)은 입문용, N305(8코어, 15W)는 더 무거운 워크로드에 적합
    • ✅ Proxmox VE로 가상화 기반을 구축하면 확장성이 뛰어남
    • ✅ Docker + Traefik 조합으로 다양한 셀프호스팅 서비스를 깔끔하게 관리
    • ✅ 절전 모드, 시간 동기화, 디스크 정리는 초기에 꼭 챙겨야 할 포인트
    • ✅ Intel Quick Sync 활용으로 미디어 트랜스코딩 효율 극대화 가능

    다음 글에서는 이 환경 위에 K3s 경량 쿠버네티스 클러스터를 구축하는 방법을 다룰 예정입니다. 미니PC 여러 대를 묶어서 클러스터를 만드는 건데, 생각보다 훨씬 재미있는 경험이거든요. 기대해주세요!

    궁금한 점이나 다른 삽질 경험이 있으시면 댓글로 남겨주세요. 같이 해결해봐요 🎉