OS 설치

1. Bootable USB Creation

미니 PC에 설치할 운영체제로는 **Ubuntu Server 24.04 LTS (Noble Numbat)**를 선택했습니다. 맥(macOS) 환경에서 부팅 USB를 만들기 위해 Balena Etcher를 사용했습니다.

Balena Etcher를 실행하고 다운로드 받은 ISO 파일과 USB 드라이브를 선택한 뒤 Flash! 버튼만 누르면 간단하게 설치 USB가 완성됩니다.


Initial Setup Guide

우분투 설치 후, 홈서버 운영에 필요한 필수 패키지들을 설치했습니다.

1. Essential Tools (Git, Docker, PostgreSQL Client)

기본적인 도구들과 데이터베이스 관리를 위한 클라이언트,그리고 컨테이너 런타임을 설치합니다. PostgreSQL Client는 특정 버전(16.x)이 필요하여 별도 리포지토리를 추가했습니다.

# 패키지 업데이트
sudo apt update && sudo apt upgrade -y

# Git 설치
sudo apt install -y git

# Docker & Docker Compose 설치
# (Ubuntu 공식 리포지토리의 docker.io를 사용하거나, Docker 공식 스크립트 사용)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

# PostgreSQL Client 16 설치
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt update
sudo apt install -y postgresql-client-16

2. Remote Access (Tailscale & Teleport)

초기 세팅 단계에서는 편의성을 위해 Tailscale을 사용했습니다. 별도의 포트포워딩 없이 바로 붙을 수 있어 매우 편리합니다.

# Tailscale 설치
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

하지만 현재는 보안과 감사(Audit) 기능을 위해 Teleport를 주력으로 사용하고 있으며, Tailscale은 비활성화해 둔 상태입니다.

👉 Teleport 설치 및 설정은 별도 포스팅을 참고하세요:
Home Server (Extra): Teleport로 안전하게 서버 접속하기


Troubleshooting

⚠️ Time Synchronization Issue (NTP)

서버를 세팅하던 중 시스템 시간이 실제 시간보다 약 1분 정도 느려지는 현상이 있었습니다. 이로 인해 OTP 인증이나 일부 로그의 타임스탬프가 맞지 않는 문제가 발생했습니다. timedatectl로 강제 동기화를 시도하여 해결했습니다.

해결 방법:

# 1. NTP(네트워크 시간 동기화) 잠시 끄기
sudo timedatectl set-ntp false

# 2. 현재 시각 수동 입력 (YYYY-MM-DD HH:MM:SS)
# 스마트폰 시계를 보고 정확한 시간을 입력
sudo timedatectl set-time "2025-12-16 14:07:00"

# 3. 다시 NTP 켜기 및 동기화 재개
sudo timedatectl set-ntp true

이 과정을 거친 후 시간이 정상적으로 동기화되었습니다.