요즘 같은 클라우드 시대에 홈서버를 만드는 인간이 누구냐면 나임.
고등학생 때부터 홈서버하고 라즈베리 파이를 갖고 싶어했고, 결과적으로 얻긴 했는데 4년간 굴려 보니까 도저히 써먹을 정도의 성능이 안 나와서 새로 구축했음.

라즈베리 파이 서버 구축 전에는 자료 관리가 귀찮아서 그냥 장치에 놔두거나 외장 SSD나 USB에 넣어놔서 오류 때문에 장치를 포맷하거나 용량이 꽉 차면 삭제했음. 대부분은 별로 중요하지 않은 거라 그냥 넘어갔는데 중요한 몇몇 자료들이 날아가버린 적이 있었음. 라즈베리 파이를 쓰면서도 관리 문제로 파일이 날라가거나 한 적도 많았고, 이번에는 제대로 구축하고자 함.
라즈베리 파이에 불만족한 이유는 몇 년 전부터 라즈베리 파이로 서버를 돌리고 있었지만, ARM이라 돌아가는 프로그램도 한정적인데 성능도 안좋아서 트랜스코딩이나 각종 ML 코드들을 돌리다가 여름철 35도 찍는 날씨에 몇 번 꺼져버렸고 저장 장치 연결도 부족해서 사용하기 애매해서였고 상대적으로 고성능이고 범용성도 좋은 x86 CPU가 달린 서버를 오래 전부터 사고 싶었음. 랒파 자체가 요즘 가격 인상+기업들에만 물량이 가서 점점 망해가는 플랫폼이기도 하고.
랒파는 이제

https://github.com/cariboulabs/cariboulite
GitHub - cariboulabs/cariboulite: CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR
CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR - cariboulabs/cariboulite
github.com
이녀석을 사서 SDR 머신으로 쓸 생각임. SDR 사고 라디오 신호 분석하고 싶다 생각한 것도 한참 오래전 일인데 시간이 없다보니 잊고 있었음.
그돈이면 클라우드
당연히 클라우드도 써 봤음. 군대있을때 Code-Server로 원격 개발해 봤음. 개고생하면서 AWS, GCP, Azure, Vultr 다 써봤는데 Azure가 가장 좋더라고.
클라우드 써본 입장에서는 CPU, 저장 용량, 램 추가, 대역폭이나 용량 추가할 때마다 비용이 많이 올라가서 상용 서비스를 굴리지 않는 이상 가성비가 안나옴. 해외 VPN용으로는 좋다는 생각은 해 봤음.
구글 드라이브같은 일반 소비자용 클라우드도 있지만, 1년 구독하면 20만원 정도 나오는 데다가 그거 다시 다운받고 업로드하고 하면 인터넷 속도 때문에 한 세월 걸림. 홈서버는 최소 내부망 1Gbps는 보장하고 외장 SSD를 사용하면 10Gbps가 나옴. 별 위험한 자료는 없지만 검열 문제도 있고.

요즘 나오는 N100기반 미니PC는 1TB SSD + 16GB 램 + 4코어가 20만원 안으로 나와서 1년만 사용해도 본전 뽑음. 전기 소모는 6W 정도로 핸드폰 충전 수준이라 크게 걱정 안해도 될 것임.


그래서 Chatreey T9 모델을 일단 사긴 했는데, 돈이 없어서 Crucial P3 Plus가 TLC QLC 섞여서 나오는지 모르고 사버렸음. 리눅스라 낸드 정보가 제대로 나오지는 않지만, 읽기/쓰기 속도로 봐서는 QLC는 아닌듯함.
아무튼 잘 받았고, 여기에 Kubuntu 24.04를 깔아서 쓰고 있음. 문제가 있긴 했는데 영상용으로 4K60출력이 안 되는 것 같았음. Windows에서는 되는 걸로 아는데.
지금도 1.25TB로는 용량이 부족하고 4TB SSD를 추가로 달아줘야 하는 상황인데, 그건 천천히 하기로 했음.
3 2 1 백업 원칙을 지키기 위해서는 더 많은 돈을 써야 하지만, 그럴 여유가 없기 때문에 그냥 고장나면 같이 죽기로 했음.
작동하는 서비스
기본적인 파일/관리 서버(SMB, SFTP, SSH)

잘 쓰고 있다.
SSD는 P3 plus 1TB, MX500 256GB(랒파4에서 쓰던 데이터 드라이브)를 쓰고 있고 저장장치는 지금은 돈이 없으므로 천천히 추가할 예정임.
VPN 서버(Wireguard)
보안을 위해서 SSH, SMB는 내부망에서만 접속이 가능해야 함. 80, 8080, 443과 같은 웹 포트와 몇몇 특수 케이스(비밀 SSH 접속용이나 VPN 접속 포트)를 제외한 모든 인바운드/아웃바운드 접속은 차단되어야 함. 공유기를 잘 활용해서 외부 포트를 최소화하고 내부 서비스들은 UFW로 적절히 풀어주면 됨.
보통 VPN은 나쁜거? 보는 용도나 위키 반달하는 용도로 쓰이는데 그건 해외에 서버가 있어서 가능한 거고 서버를 관리하는 경우, 내부망에 접속하기 위해 사용함.
Wireguard를 쓰는 이유는 가장 빠르고 설정하기 쉬워서임.
Docker, Portainer

당연히 Docker와 Portainer을 사용하였음.
Docker는 서비스들을 컨테이너로 사용할 수 있게 하는 프로그램임.
Docker의 장점은 프로그램을 시스템에 설치했을 때 여러 가지 설정이 꼬이거나 포트가 충돌하거나 어디다 설치했는지 까먹거나 하는 경우가 많은데(예시로 내 노트북에서 맨날 CUDA 설치한 위치를 까먹음), 그럴 필요 없이 컨테이너들을 격리시켜서 돌아갈 수 있게 해 주는 가상화 기술임.
대충 처음 해볼땐 이해가 안됐는데 막상 써보니까 이거 없을땐 어떻게 한거지 소리 나오는 물건 정도라고 생각하면 될듯.
참고: https://khj93.tistory.com/entry/Docker-Docker-%EA%B0%9C%EB%85%90
[Docker] Docker의 개념 및 핵심 설명
Docker란 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다.현재 Docker 0.9버전 부터는 직접 개발한 libcontainer 컨테이너를 사용하고 있다. 가상화를 사용하는 이유는?이제
khj93.tistory.com
쿠버네티스?는 잘 모르겠음. 홈서버 수준에서는 그런거 쓸 일도 없고 그런 건 리눅스 서버 두 대 이상 살 수 있는 부자들이나 쓰는 거 아닌가?
Portainer는 도커 컨테이너들을 관리할 수 있게 해 주는 WebUI라고 보면 편함. 커맨드 라인으로만 작업하기는 어려우니까.
Nginx Proxy Manager (리버스 프록시)

몇 년 전(대략 3~5년)에 랒파로 홈 서버를 구축할 때는 nginx conf를 하나하나 건드려가며 온갖 고생을 했음. 메뉴얼 보면서 하나하나 치고 systemctl restart nginx를 쳐 가며 오류 없는지, SSL은 왜 또 안 되는건지 왜 nginx는 사람을 이렇게 괴롭히는지 이해가 안 갔음.지금 다시 보니 쉬워 보이는 건 함정
nginx proxy manager가 있다는 걸 알게된 후 모든 게 바뀌었음. 딸깍 몇 번이면 자동으로 리버스 프록시 구축이 되는 세상이 왔음.
리버스 프록시에 대해 대충 설명하자면 외부에 있는 클라이언트가 내부의 서버에 접속할 수 있게 해 주는 것임.
홈서버 환경에서는 aa.cat.com, bb.cat.com이란 서브도메인이 있을 때 각각의 주소로 올바르게 접근할 수 있게 해 주고, 따라서 외부에 노출되는 포트를 최소화할 수 있음.
Immich (이미지 서버)

GitHub - immich-app/immich: High performance self-hosted photo and video management solution.
High performance self-hosted photo and video management solution. - immich-app/immich
github.com
이미지 저장, 관리, 검색 서비스. AI기반 검색도 지원하고 사진, 동영상 트랜스코딩도 가능함.
처음에는 OneDrive 결제해서 사용했는데, 용량도 100GB로 제한되어있고 더 올리기에는 비싸서 라즈베리파이에 이걸 설치하는 걸로 시작했음. 그러다 라즈베리파이가 35도 폭염에 IDLE 상태에서 뻗어버렸고, 홈서버를 새로 구축하게 되었음. 사실상 이거 쓰려고 홈서버 구축한 거.
휴대폰 사진 자동 백업도 자연스럽게 잘 지원하고 전체적으로 만족함.
FileBrowser

GitHub - filebrowser/filebrowser: 📂 Web File Browser
📂 Web File Browser. Contribute to filebrowser/filebrowser development by creating an account on GitHub.
github.com
적당히 가볍게 쓸 목적의 클라우드 스토리지 서비스
라즈베리 파이에서도 돌아가는 가벼운 클라우드 스토리지로 넥스트클라우드보다 기능은 적지만 나쁘지 않음. 대부분 SFTP나 SMB로 간단하게 때워서 쓸 일은 많지 않았음.
ArchiveBox

GitHub - ArchiveBox/ArchiveBox: 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard
🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more... - ArchiveBox/ArchiveBox
github.com
웹 페이지를 저장하는 데 사용하는 서비스
주로 재밌는 글을 스크랩하는 용도로 사용하는데 웹 페이지에서 아카이빙 할 부분을 다양하게 지정할 수 있음.
누군가를 고소할 때 쓰기 좋은 프로그램
Kavita

GitHub - Kareadita/Kavita: Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full so
Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with ...
github.com
전자책/만화 뷰어 서비스
합?법적으로 구한 전공책 영문 PDF들이 많아 나름 잘 써먹는 기능 중 하나임. 실물 책을 가지고 있으니 합법 맞는듯 ㅇㅇ.
Adguard

GitHub - AdguardTeam/AdGuardHome: Network-wide ads & trackers blocking DNS server
Network-wide ads & trackers blocking DNS server. Contribute to AdguardTeam/AdGuardHome development by creating an account on GitHub.
github.com
알다시피 광고 차단 서비스이고, 광고 서버 DNS 쿼리를 차단해서 광고를 안 보여주는 방식임.
이걸 쓰는 목적은 광고 차단도 있지만, 홈서버에서 쓰는 도메인이 클라우드플레어 DNS를 거치지 않고 내부에서 해결할 수 있도록 해 주는 게 주 목적임.
클라우드플레어는 본인이 3년째 쓰고있는 네임 서버인데, 1년에 만원 언저리고 프록시로 서버 IP를 숨길 수도 있어서 나름 쓸만함. 원래는 DuckDNS나 구글 DNS를 써왔는데 뭔가 좀 불편하고 기능도 많이 없는지라 클라우드플레어로 바꿨음.
Memos

GitHub - usememos/memos: An open-source, lightweight note-taking solution. The pain-less way to create your meaningful notes. Yo
An open-source, lightweight note-taking solution. The pain-less way to create your meaningful notes. Your Notes, Your Way. - usememos/memos
github.com
메모/1인 SNS 서비스라고 보면 됨
별 기대 없이 좋다길래 설치해 봤는데 생각보다 사용이 편하고 메모 검색 기능이 좋아서 아이디어를 적거나 유용한 웹 페이지를 메모하는 데 사용중임.
Jellyfin

GitHub - jellyfin/jellyfin: The Free Software Media System - Server Backend & API
The Free Software Media System - Server Backend & API - jellyfin/jellyfin
github.com
넷플릭스 같은 영상 재생 서비스라고 보면 됨.영상 파일은 따로 구해야 하는 게 함정
트랜스코딩 설정이 잘 작동을 안해서 PC에서 재생이 어렵고, 가지고 있는 영상 파일도 없어서 일단 구축만 해 놓았음.
Paperless-ngx

문서 관리 서비스임. OCR 기능과 검색 기능 등이 있어서 과제 제출한 거 저장해 놓을 때 사용함.
https://github.com/paperless-ngx/paperless-ngx
GitHub - paperless-ngx/paperless-ngx: A community-supported supercharged version of paperless: scan, index and archive all your
A community-supported supercharged version of paperless: scan, index and archive all your physical documents - paperless-ngx/paperless-ngx
github.com
Hoarder

메모 서비스 2
UI나 사용성이 좀 더 직관적이고 AI 요약, 페이지 아카이브 등의 기능이 좀 더 있음
https://github.com/hoarder-app/hoarder
GitHub - hoarder-app/hoarder: A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging
A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search - hoarder-app/hoarder
github.com
Open-webui, Ollama
미니 PC에 아톰 수준이지만, 어쨌든 AI가 굴러는 감.

DeepSeek 14b를 올려 봤는데 이 정도에 30분 안쪽으로 걸렸음. 성능은 증류 모델이라 별로긴 한데 그래도 초기 GPT-4급은 되는 것 같음.
https://github.com/open-webui/open-webui
GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
User-friendly AI Interface (Supports Ollama, OpenAI API, ...) - open-webui/open-webui
github.com
4개월 후기
사실 9월 27일부터 구축 시작해서 지금 1월 말까지 써봤는데 [x86특) 호환성 좋고 성능 중간은 감] 이 많이 도움되었음. 1월에 감기걸리고 피로 회복이 안 돼서 지금 프로그래밍 프로젝트와 홈서버 프로젝트 모두 중단하고 아주 천천히 하고 있지만, 어떻게든 될 것임.
홈서버에 추가로 vaultwarden같은 비밀번호 관리자 서비스를 돌릴까 생각해 봤지만, 이 쪽은 아무래도 믿을 수 있는 외부 서버에 맡기는 편이 더 낫다고 생각해서 설치하지는 않았음. 개인 사정에 따라 파이썬 크롤러같은 걸 돌릴 수도 있지만, 딱히 돌릴만한 게 없었음.
몇 년 전 홈서버를 운영할 때에는 도커 없이 힘들게 구축했는데 이젠 그냥 도커만 대충 설정해놓고 있으면 되서 관리 시간이 짧아져서 좋은듯.
https://github.com/awesome-selfhosted/awesome-selfhosted
GitHub - awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and web applications which can be hoste
A list of Free Software network services and web applications which can be hosted on your own servers - awesome-selfhosted/awesome-selfhosted
github.com
홈서버용 도커 컨테이너는 대부분 여기 안에서 찾아 필요에 따라 설치할 수 있고.
설치 방법은 블로그 같은 데 적어봤자 개인별 환경에 따라 다르므로 설치 안내 페이지를 보고 직접 하는 것을 추천함.
추가로 본인만의 서비스(Porkchop plot generator)를 하나 만들고 있어서 여기와 github 호스팅에 올릴 예정이기도 해서 이 홈서버는 아무래도 좀 중요할 것 같음. WASM과 간단한 프론트엔드만 있겠지만 나중을 생각하면 서버 하나 있는것도 나쁘진 않을테니까.
댓글