라즈베리파이부터 맥미니까지, 내 생활의 중심이 된 홈 서버 이야기
단순 파일 백업용 라즈베리파이 NAS에서 시작해, 맥미니 기반 풀스택 홈 서버로 진화한 여정. Ghost 블로그부터 Nextcloud, Jellyfin, Koel 로컬 LLM 서버까지 직접 운영하며 겪은 시행착오와 구축 팁을 공유합니다.

처음 NAS 구축을 시작했을 때는, 단순한 파일 백업 용도로 시작했다. 라즈베리파이 4에 외장하드를 연결하고, OMV(OpenMediaVault)를 올려 간단한 NAS로 활용했다.
하지만 시간이 흐르면서 기능이 하나둘씩 추가되었고, n100 미니PC에 설치했다가, 결국 성능 한계에 부딪혀 맥미니 2018로 업그레이드하게 되었다. 지금은 단순한 저장소가 아니라, 내 일상과 작업의 중심이 되는 ‘서버’가 되어버렸다.
Ghost 블로그, Nextcloud, Jellyfin, VSCode 원격 개발 환경(code-server), 심지어 로컬 LLM 서버까지. 각각의 서비스들을 왜 NAS 위에 얹게 되었는지, 그리고 어떻게 활용하고 있는지 정리해본다.
현재 NAS에서 운영 중인 서비스
OMV의 가장 큰 장점은 Docker Compose 기반 서비스를 쉽게 운영할 수 있다는 점이다. 현재 내가 운영하고 있는 서비스들은 다음과 같다.
Ghost

현재 내가 운영 중인 블로그. Markdown 기반으로 글 쓰기 편하고, 깔끔한 테마도 많다.
아직은 초창기라 아무것도 없지만, 추후 Google Search Console에 인덱싱도 완료해 수익형 블로그로 만들어볼 계획이다. 그 전까지는 시사, 기술, 여행, 에세이 등 다양한 주제를 다룰 것이다.
댓글 서비스

Ghost 블로그에 댓글 기능을 추가하기 위해 도입. Disqus 등 외부 서비스는 무겁고 광고가 많아 자체 호스팅 가능한 Commento(PostgreSQL 기반)를 선택했다.
Nextcloud


자체 클라우드 스토리지. 사진, 문서, 일정, 북마크, 메모까지 모두 여기서 관리. Collabora 연동으로 웹 브라우저에서 문서 편집도 가능하다. Google Drive 대체재로 매우 만족스럽다.
Whiteboard

간단한 실시간 협업용 화이트보드. WebSocket 기반. Nextcloud에서 화이트보드를 사용할 수 있다. 아이디어 정리, 회의 기록 등을 남길 때 유용하다.
Jellyfin

개인 미디어 서버. 대용량 HDD에 저장된 영화와 드라마를 스트리밍으로 감상.
TV, 스마트폰, 태블릿 등 다양한 디바이스에서 접근 가능. 부분 유료 서비스인 Plex 대체용으로 충분하다.
code-server

브라우저 기반 VS Code. 간단한 개발 연습하는데 유용하게 사용하고 있다. 한 가지 아쉬운점은, SSH로 서버에 붙어서 개발하는 기능은 지원하지 않는다는 것이다.
Koel

음악 스트리밍 서버. HDD에 저장된 음원을 모바일에서 스트리밍하여 감상할 수 있다.
Spotify처럼 생겼지만, 온전히 내 음악으로만 구성된 ‘나만의 라이브러리’다. 현재 구축한지 얼마 안되어서, 앨범아트 인덱싱이 안되어있는 상태.
llama.cpp (현재 중지)

로컬 LLM 실험용 컨테이너. 사진은 webui를 실행 시킨 모습인데 주로 code-server와 연동해 API 테스트를 진행했었다. 현재는 아무런 보안설정이 없기에 서비스를 내린 상태인데 추후 보완해서 다시 사용해볼 예정이다.
NPM

Reverse Proxy 구성 용도로 사용하고 있는 프록시 매니저. 쉽게 Let's Encrypt를 통해서 웹 인증서를 발급 받아 https 서비스를 구축할 수 있다. 본 블로그는 물론이고, 개인용으로 사용하고 있는 모든 웹 기반 서비스에 HTTPS를 쉽게 적용이 가능하다.
Transmission-Openvpn
토렌트 클라이언트에 OpenVPN을 연동한 서비스. VPN접속 끊어질 시 킬체인이 작동해 다른 피어에게 직접적인 IP 노출되는 상황을 피할 수도 있다.
하드웨어 업그레이드, 왜 필요했나?

라즈베리파이4는 전력 효율은 좋지만, 여러 컨테이너를 동시에 돌리기엔 역부족이었다. Jellyfin까지는 어떻게 동작 잘 했는데, Nextcloud를동작하려고 하니 시스템이 종종 멈추는것을 확인하였다. (사실 Jellyfin도 라즈베리파이에서는 HW Transcoding이 제대지원되지 않으니 반쪽짜리긴 했다.)
Nextcloud 동작을 위해서 Intel N100 MiniPC를 구매해 다시 구성하였다. 사실 이 당시 jellyfin 이외엔 큰 서비스가 없었기에 마이그레이션이라고 하기도 민망한 수준이었다. 그냥 MiniPC에 OMV를 설치한 뒤 외장하드만 다시 마운트해주는 수준으로 끝났었다.
MiniPC도 Nextcloud까지는 잘 동작했고, Jellyfin의 HW디코딩도 완벽하게 지원했기에 한동안 잘 썼다. 그러다 어쩌다 LLM을 한 번 동작해보고 싶다는 생각이 들어서 서버에 llamap.cpp를 설치한 뒤 3B 모델을 실행시켰는데,,, 확실히 실사용은 불가능할 정도로 느렸다.
결국, N100 보다는 좋으면서 가성비가 있을만한 하드웨어를 찾다가 마침 맥미니 2018 i7 32gb 모델을 저렴하게 판매하는분을 발견해서 구매했다. 이 때는 이미 nextcloud를 포함한 다양한 서비스를 운영중이었기에, 마이그레이션 하는데 애를 좀 먹기는 했으나 다행스럽게도 아무런 데이터 유실 없이 마이그레이션을 잘 진행했다.
지금은 Ghost, Nextcloud, Jellyfin, code-server를 동시에 실행해도 여유가 있다. 가성비 좋은 홈서버로서 충분히 제 역할을 하고 있다.