Self-hosting
Self-hosting is the use of a computer program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger systems. Other programs that are typically self-hosting include kernels, assemblers, command-line interpreters and revision control software.
Music streaming
Multimedia
Online radio streaming
CCTV
캘린더 & 연락처
민감한 데이터이므로 자체 CalDAV/CardDAV 서버 호스팅
- Radicale: Python 기반, 기본 웹 UI, 단일 사용자만 지원, Apple 기기와 호환 안 됨
- Baïkal: PHP 기반, 활발한 개발, 고급 웹 UI, 다중 사용자 지원
- DAViCal: PHP 기반, 시도하지 않음
- Xandikos: Python 기반, 내장 인증 없음, 웹 UI 없음
- Nextcloud: PHP 기반, 이미 사용 중이라면 괜찮지만 너무 무거움
인프라 관리
- XPipe - 로컬 머신에서 전체 서버 인프라 접근하는 도구
2025년 스타일 셀프 호스팅 가이드
데이터 수집 중심의 중앙화된 서비스에 대한 대안으로 셀프 호스팅이 최근 인기를 얻고 있음. 다양한 도구와 앱을 실험후 1년 이상 안정적으로 운영 중인 경험을 바탕으로 유용했던 도구들을 소개. 컨테이너 런타임, 웹 기반 관리도구, 리버스 프록시와 VPN, 그외 셀프호스팅 도구들 추천글 모음.
컨테이너 런타임
요즘은 컨테이너가 호스팅의 기본이 되었고, 전통적인 방식은 점점 보기 어려워짐. 이는 홈서버 사용자(homelabber) 에게는 매우 긍정적인 흐름이며, 컨테이너는 소프트웨어 배포를 간편하게 만들고 가상머신보다 효율적인 성능을 제공함. 대부분은 Docker를 사용하지만, 이 글에서는 홈 환경에서 사용할 수 있는 다양한 대안 런타임을 소개함.
- Docker
- 가장 널리 사용되는 원조 컨테이너 런타임
- 풍부한 문서와 커뮤니티 덕분에 IT에 익숙하지 않아도 GitHub에서 docker-compose.yml을 복사해 실행해볼 수 있음
- 단, 보안 관련 설정은 별도로 고려할 필요 있음
- 루트리스(rootless) 구조와 Docker CLI 호환성 덕분에 주목받고 있는 차세대 컨테이너 런타임
- 데몬 없이 작동하기 때문에 보안을 중시하거나, 관련 기술을 학습하려는 사람에게 적합
- 대부분의 Docker 명령어를 그대로 사용할 수 있고, docker 명령어와 호환되는 alias 제공으로 전환이 쉬움
- 초기에는 진입 장벽이 있지만, 문서와 커뮤니티가 발전하면서 점점 접근성이 향상됨
- 추가로, Podman Quadlets를 통해 docker compose 대신 systemd 기반 선언적 컨테이너 관리도 가능함
- 호기심 많고 실험적인 홈서버 사용자에게는 도전 욕구를 자극하는 고급 툴
- 수많은 인스턴스를 우아하게 관리할 수 있는 오케스트레이션 툴로서, 엔터프라이즈 수준의 관리 경험 제공
- 단, 기능이 매우 많고 복잡하기 때문에 대부분 사용자에겐 과함
- 홈 환경에서는 학습 자체가 주된 목적이며, 실제 활용보다는 기술 이해에 초점이 맞춰짐
웹 기반 컨테이너 관리 도구
어떤 사용자들은 로컬 디스크에 compose 파일들을 모아두고 관리하길 선호하지만, 매번 SSH로 서버에 접속해 로그를 확인해야 하는 번거로움이 있음. 이를 대신해 웹 기반 컨테이너 관리 도구를 사용하면 훨씬 더 편리하게 작업 가능함.
- Portainer
- Docker, Kubernetes, Podman과 모두 호환되는 가장 안정적인 웹 UI 관리 도구
- 홈서버부터 기업 환경까지 널리 쓰이며, 실전 활용을 통한 학습에도 매우 유익함
- 오픈소스 커뮤니티 버전과 추가 기능이 포함된 엔터프라이즈 버전 존재 (3개 라이선스는 무료 제공)
- 직관적인 인터페이스와 다양한 기능 덕분에 컨테이너 관리에 매우 유리함
- Uptime Kuma 개발자가 만든 신생 웹 기반 Docker Compose 관리 도구
- 아직 Portainer만큼 성숙하지는 않았지만, 매우 간단하고 직관적인 UI가 강점
- 개발자가 GitHub 이슈에 신속하게 대응하고, 정기적인 업데이트가 이뤄짐
- 가볍고 미니멀한 도구를 선호하는 사용자에게 적합
리버스 프록시와 VPN
외부에서도 셀프 호스팅한 애플리케이션에 접근하려면 두 가지 주요 방법이 있음:
- 서비스를 인터넷에 직접 노출
- VPN을 통해 내부 네트워크에 접근
VPN은 보안상 더 안전하지만, 인터넷 노출 방식도 설정만 잘 하면 충분히 유용함
- Pangolin
- VPN과 리버스 프록시를 하나로 결합한 혁신적인 솔루션
- 마치 셀프 호스팅용 Cloudflare 같은 역할
- VPS 등에 인그레스 서버만 설치하면, 다양한 환경에서 VPN 클라이언트로 간편하게 연결 가능
- CrowdSec 연동, 기본적인 SSO 기능까지 탑재됨
- 작성자가 이 글을 쓰게 된 계기일 정도로 인상 깊은 툴이며, 시간이 지나면 기존 솔루션의 표준 대안이 될 가능성 있음
- TCP/UDP/HTTP(S) 프록시를 웹 UI로 쉽게 설정할 수 있는 Nginx 프론트엔드
- 많은 사용자들이 활용 중이지만, 작성자는 일부 기능(예: 비밀번호 보호)이 불안정하다고 평가
- 처음 접했던 툴로써 좋은 인상은 아니었지만, 작동 시에는 제 역할을 충실히 수행함
- 단순한 설정 파일(Caddyfile) 로 프록시 설정부터 HTTPS 인증서 발급까지 자동 처리
- 웹 UI가 없기 때문에 초보자에게는 추천하지 않지만, UNIX 철학을 좋아하는 사용자에겐 최고의 선택
- Let’s Encrypt를 기본 지원하며, 복잡한 구성이 필요 없는 것이 장점
- Tailscale에 익숙하다면 바로 적응할 수 있는 VPN 솔루션
- WireGuard 기반 네트워크를 자동으로 구성하며, 복잡한 설정을 줄여줌
- 클라우드 무료 티어 또는 자가 호스팅 모두 가능하여 유연성 있음
상태 모니터링 및 알림 도구
- Uptime Kuma
- Zabbix나 Grafana 같은 무거운 스택 없이도 간편하게 서비스 상태 모니터링 가능
- 단 한 번의 배포로 다양한 채널을 통한 알림 설정 가능
- 셀프 호스팅 시스템의 가용성 체크에 탁월함
- 간단한 HTTP 요청으로 푸시 알림 전송이 가능한 알림 서버
- 모바일 앱 설치 후 알림 수신 가능하며, Uptime Kuma 등과의 통합도 가능
- 다양한 셀프 호스팅 툴과 함께 사용할 수 있어 실용적임
셀프 호스팅 앱 검색을 위한 추가 자료
다양한 셀프 호스팅 애플리케이션을 찾을 수 있는 유용한 자료 모음임:
- Awesome-Selfhosted
- GitHub에서 제공하는 방대한 소프트웨어 리스트
- 다소 정리되지 않았고, 개발이 중단된 프로젝트도 일부 포함되어 있음
- 작성자가 가장 좋아하는 자료 출처임
- 틈새 애플리케이션 추천 뉴스레터와, 정렬 기능이 있는 대형 애플리케이션 디렉토리를 제공함
- 매우 유용한 사이트임
- 즉시 실행 가능한 Docker Compose 파일 모음
- 일부 애플리케이션은 업데이트로 인한 호환성 문제를 가질 수 있으나, 전반적으로 좋은 참고 자료임
궁극의 셀프호스팅 환경 구축기
- 궁극의 셀프호스팅 환경 구축기 | GeekNews
- My Ultimate Self-hosting Setup
- Github - mirdaki/computer-config
- My Self-Hosting Setup | Hacker News
수년간 다양한 셀프 호스팅 접근법을 시도한 끝에, 커스텀 환경을 성공적으로 구축한 경험 공유
- 주요 목표는 개인 데이터 통제와 신뢰할 수 있는 인프라 유지였으며, 이를 위해 NixOS, ZFS, Tailscale, Authelia 등 여러 핵심 기술을 조합했음
- 가족 및 지인 사용성까지 고려해 SSO, 별도 시작 페이지 도입 등 접근성도 강화함
- 실제 운영 중 마주친 이슈들과 구체적 해결법(예: 사설 서비스 공개 프록시, 혼합 VPN 환경, 인증 연동)을 상세히 정리
- 향후에는 백업 인프라 및 보안 강화 등 추가 개선을 계획하고 있으며, 노하우와 참고 자료도 남김
요구사항
- 필수 요건
- 최대한 서비스의 공개 인터넷 노출을 제한해, 보안사고 위험 감소
- 실수로 인한 핵심 인프라 다운타임 최소화 (순환 의존성 회피 및 설정 롤백 용이성 확보)
- 인증·네트워크·도메인 등 핵심 구성요소 직접 소유 및 오픈소스 우선 적용
- 가족·지인 관점의 사용성 배려 (일관된 SSO 로그인, 최소 유지보수 필요)
- 설정 파일의 선언형 구성 적극 도입(버전관리 및 백업·복구 용이성, 타인 설정 참고 및 활용성 확보)
- 업데이트가 쉽고 안전해서, 주기적으로 관리 가능해야 함
- 극도의 모듈화/깔끔함 불필요(실용성 우선)
- 모두가 오픈소스일 필요는 없으나, 가능하면 활용
- 고가용성(HA) 미추구, 다운타임 감수하는 대신, 단순 구조 채택
기술 선택
- NixOS
- 모든 OS 설정을 Nix 언어와 패키지 관리자로 선언식 관리하는 리눅스 배포판
- 구성이 코드화되어, 버전관리와 체계적 롤백이 가능
- 다양한 패키지와 Docker/PODMAN 등 연동도 지원
- 다른 개발자의 Nix 설정을 참고해 노하우를 축적
- 고성능 파일시스템으로 스냅샷, 롤백 등 데이터 보호 기능이 우수함
- 4개의 10TB HDD를 RAIDZ2로 구성(2개 디스크 동시 장애 허용), 256GB SDD로 캐싱 적용
- 파일·미디어 데이터셋 분리, 용도별 NFS 마운트로 관리
- 단순하고 신뢰도 높은 메인 스토리지 아키텍처 구성
- Tailscale: 접근성 좋은 Mesh VPN, 클라이언트 설치만으로 공개 인터넷 노출없이 내부 네트워크 접근 가능
- Headscale: 자체 호스팅 가능한 오픈소스 Tailscale 백엔드(회사 정책 변화 리스크 제거)
- 네트워크 안전성 강화 효과, 다만 사용자 디바이스에 클라이언트 설치 필요
- Usability 관점에선 기기별 클라이언트 설치 필요성이 다소 진입장벽
- Authelia: OpenID Connect 기반 SSO·인증·인가 솔루션, nginx 프록시와 연동 가능
- LLDAP: Lightweight LDAP, Authelia의 사용자·그룹 관리 및 백업 인증용으로 활용
- 최소한의 리소스로 잘 동작하지만, 구성 난이도가 높고 어떤 서비스와 어떻게 연동할지 학습 커브 존재
ETC
- Startpack - 셀프호스트 스타터 팩
- Software as a Service - SaaS 서비스 목록 있음.
- Open Source - 오픈소스 소프트웨어 목록 있음.
- Self-hosting - 셀프 호스팅 가능한 소프트웨어 목록 있음.
- XPipe - 로컬 머신에서 전체 서버 인프라 접근하는 도구
Favorite site
- Wikipedia (en) Self-hosting
- [추천] selfh.st - Self-hosted content and software - 셀프 호스팅 가능한 애플리케이션을 찾을 수 있는 훌륭한 리소스
- Awesome Self Hosted
- [추천] Github - Kickball/awesome-selfhosted 1
- [추천] Github - awesome-selfhosted/awesome-selfhosted
- Github - awesome-foss/awesome-sysadmin
- 왜 셀프 호스팅을 해야 하는가? | GeekNews
References
-
Kickball_awesome-selfhosted_README_d8f9ba5.md.zip ↩