왜 홈서버를 만들게 됐나

개인 블로그를 운영하면서 OCI(Oracle Cloud) 무료 인스턴스 하나를 쭉 써왔다. 1 vCPU, 1GB RAM짜리라 Hugo 정적 블로그 서빙에는 충분했는데, 문제는 점점 하고 싶은 게 늘어난다는 것이다.

  • 사진 파일이 쌓이면서 개인 NAS가 필요해졌다
  • 사이드 프로젝트 돌릴 서버가 필요했다
  • 비밀번호 관리도 외부 서비스 말고 직접 하고 싶었다

클라우드로 커버하면 되지 않냐 싶지만, 스토리지가 좀 붙으면 요금이 눈에 띄게 올라간다. 마침 집에 안 쓰는 노트북이 하나 있었고, 거기서부터 홈서버 구축기가 시작됐다.


하드웨어 선택: 데스크탑 대신 노트북

처음엔 집에 있는 데스크탑을 홈서버로 쓸까 생각했다. 그런데 데스크탑을 24시간 켜두면 전기세가 만만치 않다.

마침 Ryzen 5 5600U, RAM 16GB짜리 ThinkPad E15 Gen3가 있었다. 노트북이라 전력 소비가 훨씬 낮고, 배터리가 있어서 정전 시 UPS 역할도 된다. 성능도 홈서버 용도로는 충분하다.

항목 사양
CPU Ryzen 5 5600U
RAM 16GB
저장장치 256GB SSD (OS/Docker) + 1TB SSD (/mnt/data)
OS Ubuntu Server 24.04 LTS

유선 랜 포트를 따로 뚫기가 애매해서 일단 와이파이로 연결해서 운영 중이다.


전체 아키텍처

핵심은 세 가지다.

Tailscale VPN — 홈서버는 공인 IP가 없어서 외부에서 직접 접근이 안 된다. Tailscale로 홈서버와 OCI 인스턴스를 같은 사설 네트워크로 묶었다. 이렇게 하면 어디서든 VPN으로 홈서버에 접근할 수 있다.

OCI Nginx 리버스 프록시 — 기존에 Hugo 블로그를 서빙하던 OCI 인스턴스의 Nginx를 리버스 프록시로 활용한다. 외부에서 photo.yourdomain.com으로 접근하면 Nginx가 Tailscale VPN을 통해 홈서버의 Immich로 연결해주는 구조다.

Cloudflare DNS — 도메인 관리는 Cloudflare에서 한다. 서브도메인 추가할 때마다 Cloudflare에서 레코드 하나 추가하고 Nginx 설정 추가하면 끝이다.

전체 아키텍처 구성도


운영 중인 서비스

현재 홈서버에서 돌아가는 서비스 목록이다.

포트 서비스 접근 방식
2283 Immich (사진 관리) 도메인 (OCI 프록시)
9090 Filebrowser (파일 관리) 도메인 (OCI 프록시)
11000 Vaultwarden (비밀번호) 도메인 (OCI 프록시)
13000 Grafana (모니터링) Tailscale VPN
19000 Portainer (Docker GUI) Tailscale VPN
19090 Prometheus Tailscale VPN
19100 Node Exporter 내부 수집용
23000 컨테이너 대시보드 (React) Tailscale VPN
28080 컨테이너 대시보드 (Spring) Tailscale VPN

Grafana, Portainer처럼 민감한 도구는 VPN 안에서만 접근하고 외부에는 열지 않았다. Docker 소켓에 직접 접근하는 툴을 외부에 노출하면 보안상 위험하기 때문이다.


시리즈 구성

이 구축기는 총 12편으로 구성된다.

  1. 왜 홈서버인가? + 전체 아키텍처 ← 지금 여기
  2. Ubuntu Server 설치 + Tailscale VPN
  3. 외장 SSD 마운트 + Filebrowser 원격 파일 관리
  4. Immich로 구글 포토 대체하기
  5. Vaultwarden으로 비밀번호 자체 호스팅
  6. Portainer CE로 Docker GUI 관리
  7. Grafana + Prometheus로 홈서버 모니터링
  8. Fail2ban으로 SSH 브루트포스 차단
  9. certbot –expand로 SSL 서브도메인 추가
  10. PostgreSQL 자동 백업 (pg_dump + cron)
  11. TLP + thinkfan + Swap 튜닝으로 운영 최적화
  12. 직접 만든 컨테이너 대시보드 (Spring Boot + React + SSE)

다음 편에서는 Ubuntu Server 설치부터 Tailscale VPN 연결까지 다룬다.