Split View: 2026년의 셀프호스팅 르네상스 — Tailscale·Coolify·Dokku와 홈랩으로 다시 만든 개인 인프라
2026년의 셀프호스팅 르네상스 — Tailscale·Coolify·Dokku와 홈랩으로 다시 만든 개인 인프라
프롤로그 — 왜 다시 직접 돌리는가
2018년의 친구는 "그거 왜 자기가 돌려? AWS 띄워" 라고 했다. 2026년의 같은 친구는 N100 미니PC에 Coolify 깔고, Tailscale 들어가서 자기 Immich로 사진을 본다.
이 변화는 갑자기 일어난 게 아니다. 몇 개의 점이 동시에 찍혔다.
- 클라우드가 비싸졌다. 환율, AWS egress, S3 요청 단가, 그리고 무엇보다 "잘 모르고 켜놨다가 1만 달러 청구서"의 공포. 작은 사이드 프로젝트 한 두 개를 굴리는 데 매달 100달러 넘게 새던 사람들이 N100 미니PC 한 대 200달러에 평생 호스팅으로 갈아탔다.
- 메시 VPN이 일상이 되었다. Tailscale이 WireGuard를 사람 쓸 수 있게 포장해 무료로 풀어준 뒤로, "포트 포워딩, 동적 DNS, 인증서, NAT 뚫기" 라는 4대 지옥이 한꺼번에 사라졌다. Headscale로 Tailscale 서버까지 셀프호스팅하는 사람도 늘었다.
- 컨테이너가 어른이 되었다. Docker Compose 한 파일로 Immich·Nextcloud·Vaultwarden·Forgejo·Plausible·Pi-hole이 5분 만에 뜬다. 5년 전 Ansible 플레이북 짜던 시절은 어디 갔는지 모를 정도다.
- PaaS가 오픈소스로 풀렸다. Coolify·Dokku·CapRover가 "git push, 알아서 빌드/배포" 경험을 자기 서버에 그대로 얹어준다. Heroku에 100달러 내던 게 0달러가 되는 마법.
- 사진·문서·비밀번호·가족 채팅의 데이터 주권 이 다시 의제가 됐다. Google Photos는 무한이 아니고, Bitwarden은 유료가 되고, 무엇이 학습 데이터가 되는지 누구도 보장하지 않는다. "내 데이터는 내 디스크에"가 다시 매력적이다.
- 사이드 프로젝트 미학 이 돌아왔다. selfh.st 뉴스레터, r/selfhosted, awesome-selfhosted, Homelab Show — 자기 작은 서버를 자랑하는 문화. 90년대 PC 동호회가 21세기 버전으로 부활한 느낌.
이 글은 그 셀프호스팅 르네상스의 2026년 시점 지도다. 무엇을 어떤 도구로 셀프호스팅하고, 무엇은 절대 셀프호스팅하지 말아야 하는가 까지.
1장 · 토대 — 메시 VPN이 모든 것을 바꿨다
지금의 홈랩 붐을 한 줄로 요약하면 이거다.
Tailscale이 나오기 전과 후로 셀프호스팅이 나뉜다.
Tailscale이 무엇을 없앴는가
옛날의 홈서버 가이드는 항상 같은 챕터로 시작했다.
- 공유기 들어가서 포트포워딩 80·443·22 열기
- 동적 DNS(DDNS) 설정해서 가정용 IP를 도메인에 연결
- Let's Encrypt 인증서 받고 nginx 리버스 프록시
- 침입 탐지·fail2ban·SSH 키 인증
- 그리고 토요일 새벽에 누가 SSH 공격을 하고 있다는 알람으로 잠을 깬다
Tailscale은 이 사슬을 한 줄로 끊었다. 포트를 하나도 안 열어도 된다. 모든 기기에 클라이언트를 깔고, 동일 계정으로 로그인하면, WireGuard 기반 P2P 메시가 자동으로 깔린다. 100.x.y.z 대역의 사적 IP가 모든 기기에 붙고, 그 안에서만 통신한다.
2026년 시점의 Tailscale은 다음을 제공한다.
- WireGuard 기반의 메시 VPN — 허브 앤 스포크가 아니라 P2P. 두 노드가 직접 연결되면 트래픽이 컨트롤플레인을 거치지 않는다.
- NAT 뚫기(STUN·UDP hole punching) 자동. 안 뚫리면 DERP 릴레이로 폴백.
- MagicDNS —
100.64.x.x대신my-nas.tailnet-name.ts.net같은 이름. - Tailscale SSH — SSH 키 관리를 ACL로 위임. 베스천이 사라진다.
- Subnet router / Exit node — 게이트웨이 한 대로 가정 LAN 전체를 노출하거나, 모든 트래픽을 집을 통해 보내거나.
- Funnel — 특정 서비스만 공개 인터넷에 살짝 노출(완전한 포트 개방 없이).
- ACL(JSON) — 누가 누구한테 무슨 포트로 갈 수 있는지를 코드로.
- 무료 플랜: 100대 기기, 3 사용자(2024년 4월 확장 이후 2026년에도 유지).
Headscale — Tailscale 컨트롤플레인을 셀프호스팅
Tailscale의 컨트롤플레인(좌표·인증·ACL)은 회사가 운영한다. "그것도 못 믿는다"는 사람들을 위해 Headscale(MIT 라이선스)이 호환 컨트롤플레인을 제공한다. 데이터플레인은 그대로 WireGuard라서 성능 차이 없음.
2026년 시점 Headscale은 v0.26 대를 안정으로 본다. OIDC SSO, 정책 v2, prefixed API 키, embedded DERP까지. "회사 OAuth 붙은 우리만의 Tailscale"이 가능해졌다.
작은 ACL 한 조각
{
"acls": [
{ "action": "accept", "src": ["group:admin"], "dst": ["*:*"] },
{ "action": "accept", "src": ["group:family"], "dst": ["tag:media:80,443"] },
{ "action": "accept", "src": ["tag:ci"], "dst": ["tag:registry:443"] }
],
"groups": {
"group:admin": ["alice@example.com"],
"group:family": ["bob@example.com", "carol@example.com"]
},
"tagOwners": {
"tag:media": ["group:admin"],
"tag:registry": ["group:admin"],
"tag:ci": ["group:admin"]
}
}
이 한 파일로 "관리자는 다, 가족은 미디어만, CI는 레지스트리만" 가 끝난다. 방화벽 규칙을 IP가 아닌 신원으로 쓴다는 발상의 전환.
Tailscale Funnel — 포트 안 열고 공개 노출
Funnel은 Tailnet 내부 서비스를 공식 도메인 xxx.ts.net 으로 공개한다. TLS는 Tailscale이 발급/갱신하고, 트래픽은 일단 Tailscale을 통과한 뒤 내부 노드로 들어온다. 공유기 포트 0개 열고도 공개 블로그 운영 가능.
대안 한 줄 정리
| 도구 | 특징 | 한 줄 |
|---|---|---|
| Tailscale | 관리형 SaaS + 무료 100대 | 가장 쉽다. 90%의 사람은 여기서 끝 |
| Headscale | Tailscale 호환 컨트롤플레인 셀프호스팅 | 회사용·완전 자주적 |
| Netbird | OSS 메시, ZTNA·정책 풍부 | Tailscale 대안 1순위 |
| ZeroTier | 가상 L2 네트워크, 오래된 강자 | LAN 게임·임베디드에 강함 |
| Nebula | Slack이 만든 메시, 가볍고 빠름 | 운영 부담 큼 |
| WireGuard 생짜 | 가장 빠르지만 모든 걸 직접 | 메시는 직접 그려야 함 |
이 장의 결론은 단순하다 — 무엇을 셀프호스팅하든, Tailscale을 먼저 깔고 시작한다. 공개 노출이 필요한 단 한 가지(블로그 같은)만 Funnel이나 Cloudflare Tunnel을 따로 쓴다.
2장 · PaaS의 셀프호스팅 — Coolify·Dokku·CapRover
홈서버는 결국 "Heroku 같이 git push 한 번에 배포" 를 자기 손에 쥐고 싶다는 욕망에서 출발한다. 2026년에는 이 영역에 세 명의 주요 선수가 있다.
2.1 Coolify — 2025-2026의 스타
Coolify는 헝가리 개발자 Andras Bacsai가 만들고, 지금은 정식 회사화된 PHP/Laravel 기반 오픈소스 PaaS다. Apache 2.0 라이선스, 자기 서버에 Docker 한 호스트만 있으면 Heroku/Vercel과 거의 같은 경험을 준다.
제공하는 것:
- Git 리포 연결 — GitHub/GitLab/Gitea/Bitbucket. Push 시 자동 빌드/배포.
- Nixpacks / Heroku Buildpacks / Dockerfile 자동 감지.
- 프리뷰 환경 — PR마다 별도 도메인.
- DB·Redis·RabbitMQ·MeiliSearch 한 클릭 프로비저닝.
- 자동 TLS(Caddy 기반 트래픽 라우터).
- 다중 서버 — 한 Coolify에서 여러 노드 관리.
- One-click 자가 호스팅 앱 카탈로그(Plausible, Umami, n8n, Supabase, …).
- 백업 → S3 호환 스토리지(B2, R2, MinIO).
2026년 현재 Coolify는 안정 4.x 대에서 운영되며, 한 줄 설치 스크립트가 거의 표준이 됐다. selfh.st 뉴스레터의 가장 잦은 키워드.
언제 쓰나:
- 자기 사이드 프로젝트 여러 개를 굴리는 1인 개발자.
- 작은 팀의 스테이징/프로덕션 한 박스 운영.
- Heroku/Vercel 비용이 부담되기 시작한 인디 메이커.
약점:
- DB 백업 복구 흐름은 여전히 손이 간다.
- 멀티 노드는 가능하지만 본격 클러스터는 아니다(거기까지 가면 K3s).
- 코어 코드가 Laravel 기반 — 깊은 커스터마이즈가 필요하면 진입 장벽.
2.2 Dokku — PaaS-in-a-Box의 원조
Dokku는 2013년 등장. "Heroku를 100줄로 만들 수 있을까?" 하는 실험에서 시작해, 지금은 가장 검증된 단일 호스트 PaaS다. MIT 라이선스, 셸 스크립트와 Docker로 만들어졌고, 시간에 검증된 신뢰성 이 강점.
핵심 흐름:
# 호스트에서
dokku apps:create myblog
dokku domains:add myblog blog.example.com
dokku letsencrypt:set myblog email me@example.com
dokku letsencrypt:enable myblog
# 로컬에서
git remote add dokku dokku@homelab.tailnet-name.ts.net:myblog
git push dokku main
# → 빌드팩 감지 → 컨테이너 빌드 → 무중단 배포
git push dokku main 한 줄로 끝나는 그 경험을 처음 본 사람은 "이게 Heroku 아닌가" 하고 멍해진다.
Coolify vs Dokku 한 줄:
- Dokku는 CLI/플러그인 중심. 셸이 편한 사람에게.
- Coolify는 웹 UI 중심. 클릭으로 다 끝내고 싶은 사람에게.
2.3 CapRover — Docker Swarm 기반 사촌
CapRover는 비슷한 카테고리. Docker Swarm 위에서 동작하고, "Quick One-Click Deploy 100+ apps" 카탈로그가 강점. UI가 약간 더 가벼우면서 멀티 노드 클러스터링이 처음부터 들어가 있다. 2026년에는 점유율이 Coolify에 밀리지만 충성 사용자층이 두텁다.
2.4 K3s / k0s — "PaaS는 답답하고 K8s는 무거워서"
좀 더 큰 사람들은 PaaS 대신 가벼운 K8s를 깐다. K3s(Rancher)·k0s(Mirantis)·MicroK8s(Canonical)가 그 자리에 있다. Pi 4/5 한 대에도 들어가는 K8s. ArgoCD·Flux·Helm을 그대로 쓸 수 있다는 게 매력. 다만 "Kubernetes 운영"이라는 비용이 따라온다.
홈랩에서 K3s를 굴린다는 건 거의 종교다. 얻는 것: GitOps, Ingress, ConfigMap 디자인 패턴 연습장. 잃는 것: 주말마다 cert-manager·MetalLB·local-path-provisioner 디버깅.
2.5 결정 매트릭스
| 상황 | 추천 |
|---|---|
| 사이드 프로젝트 2~5개, 빠르게 띄우고 싶다 | Coolify |
| CLI 스크립트가 편하고 안정성 우선 | Dokku |
| 멀티 노드 + One-click 카탈로그 | CapRover |
| K8s를 회사에서 쓰니 집에서도 연습 | K3s |
| 컴포즈 한 파일이 다인 경우 | 그냥 docker compose + Traefik |
3장 · 신원·비밀번호·인증 — 셀프호스팅의 본진
데이터를 자기 디스크에 두기 시작하면 가장 먼저 떠오르는 질문이 "그래서 비밀번호는?"이다.
3.1 Vaultwarden — Bitwarden 서버, 비용 0
Vaultwarden은 Rust로 다시 쓴 Bitwarden 호환 서버. 공식 Bitwarden 서버는 .NET 멀티 컨테이너로 무겁지만, Vaultwarden은 단일 바이너리에 SQLite/PostgreSQL 한 줄로 끝난다. 공식 Bitwarden 클라이언트(앱·확장)와 100% 호환.
# docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
DOMAIN: "https://vault.tailnet-name.ts.net"
SIGNUPS_ALLOWED: "false"
ADMIN_TOKEN: "<argon2-hash>"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
Tailscale 안에서만 노출하면 공개 인터넷에 자물쇠 보관소를 내놓을 일이 없다. Bitwarden Premium 구독 비용이 0이 되고, 가족 공유 vault·TOTP·파일 첨부까지 다 켜진다.
3.2 Authentik / Authelia / Keycloak — SSO 게이트
여러 셀프호스팅 서비스에 한 번 로그인하고 싶다면 SSO/Reverse Proxy 인증 게이트가 필요하다.
- Authentik — Python·Django. UI가 가장 친절하고, OAuth2/OIDC·SAML·LDAP을 한 번에. 2026년 가장 인기 있는 옵션.
- Authelia — Go·가볍다. 2단계 인증·MFA·WebAuthn에 강하다. Traefik의 사실상 짝꿍.
- Keycloak — 자바·엔터프라이즈 표준. 무거우나 회사에서 본 그대로의 KC를 홈에서.
Tailscale을 깔았다면 "Tailscale ACL이 1차 게이트, Authentik이 2차" 라는 이중 방어가 깔끔하다. 외부에 노출해야 할 서비스가 있을 때만 Authentik이 의미 있다 — 내부 전용이라면 Tailscale ACL만으로도 대부분 충분.
3.3 Passkey/WebAuthn
2026년에 들어서면서 셀프호스팅 진영에서도 Passkey 채택률이 빠르게 올랐다. Vaultwarden은 패스키 vault 저장을 지원하고, Forgejo/Gitea·Authentik·Immich가 WebAuthn 로그인을 표준 옵션으로 둔다. "비밀번호 입력 자체가 사라지는" 흐름은 셀프호스팅에서도 같다.
4장 · 콘텐츠 — 사진·문서·노트·코드·동영상
4.1 Immich — Google Photos 대체의 결정판
Immich는 2026년 셀프호스팅 진영의 가장 큰 성공작이다. Google Photos UX를 그대로 본떴다 — 모바일 앱, 자동 백업, 얼굴 인식, 객체 검색, 지오 클러스터링, 라이브 사진, 외부 라이브러리, 공유 앨범, 큐레이션 메모리. 2024년에 GA가 되었고, 2025년에 사용자 폭증, 2026년 시점엔 "Google Photos에서 옮길 때 쓰는 도구"가 됐다.
뒷단은 ML(CLIP 임베딩 기반 검색·MediaPipe 얼굴 인식·OpenAI Whisper 비디오 음성 추출 옵션)이 다 들어가서, GPU가 있으면 더 좋지만 N100 CPU만으로도 잘 돈다. 가족 단위 라이브러리 보존이 진지해질 때 선택지가 사실상 하나밖에 없는 도구.
4.2 Nextcloud / OwnCloud / Seafile — Drive 대체
- Nextcloud — 가장 큰 생태계. 캘린더·노트·오피스(Collabora/OnlyOffice)·메일·채팅(Talk)까지 다 들어간 슈퍼앱. 무겁지만 가장 다재다능.
- OwnCloud Infinite Scale(OCIS) — Go로 다시 쓴 가벼운 버전. 파일 동기화에 집중.
- Seafile — 동기화 성능이 가장 좋다는 평가. UI는 단순.
가족 사진은 Immich, 일반 문서는 Nextcloud — 가 흔한 조합.
4.3 Forgejo / Gitea — GitHub 대안
GitHub Codespaces·GitHub Copilot 시대에 자기 Git 서버가 무슨 의미가 있나? 두 가지 답.
- 소스코드 주권 — 비공개 작업·실험·개인 일지 코드.
- CI·이슈·Wiki 한 셋 — Forgejo Actions는 GitHub Actions 워크플로 YAML과 호환된다.
actions-runner만 따로 띄우면 끝.
Forgejo는 2022년 Gitea의 회사화 결정에 반발한 커뮤니티가 포크해서 만든 비영리 프로젝트. 2025년에 Codeberg가 Forgejo로 완전 전환했고, 2026년의 셀프호스팅 진영에서는 Forgejo가 사실상 표준이 됐다. Gitea도 여전히 활발하지만 라이선스·거버넌스 이슈로 신규 채택은 Forgejo 쪽이 우세.
4.4 노트·문서·위키
- Obsidian + Git/Syncthing/Self-hosted Sync — 마크다운 파일 + Git 동기화의 정공법.
- Outline — 팀 위키. Slack/Confluence 대체로 자주 거론.
- AppFlowy — Notion 클론, Rust 기반. 2026년 모바일도 안정화.
- Trilium / TriliumNext — 단일 사용자 노트 트리. 마니아 코어.
- BookStack — 책/장/페이지 메타포의 위키. 매뉴얼·런북에 강함.
- Memos — 트위터 같은 짧은 메모 스트림. 일기 용.
4.5 미디어 서버 — Jellyfin / Plex / Emby
영화·음악·TV 라이브러리는 여전히 미디어 서버가 책임진다. Jellyfin(완전 오픈소스, 무료)이 2024년부터 Plex의 정책 변경 반발로 빠르게 사용자를 흡수했다. Plex는 여전히 UI/HW 트랜스코딩 품질에서 앞서지만, "내 라이브러리에 광고가 끼는 건 못 참는다"는 이유로 이탈한 사용자가 많다.
4.6 RSS·읽기·아카이브
- Miniflux — Go, 가볍다. 단순한 RSS 리더.
- FreshRSS — PHP, 기능 많다.
- Wallabag — Pocket 대체, 나중에 읽기.
- Readeck / Linkding — 책갈피.
- Karakeep / Linkwarden — AI 자동 태깅 책갈피, 2026년 핫함.
- ArchiveBox — URL을 통째로 보관(스크린샷·HTML·warc).
5장 · 인프라 잡일 — DNS·모니터링·자동화
5.1 Pi-hole / AdGuard Home — 가정 DNS 차단기
가정 네트워크 차원에서 광고·트래커·악성 도메인을 DNS 단계에서 막는다. Raspberry Pi 4 한 대(혹은 Docker 컨테이너 하나)면 충분. 한 번 깔면 가족 모두의 핸드폰·TV·스마트 토스터까지 광고가 줄어든다.
- Pi-hole — 가장 오래됐고 가장 검증됨. UI가 단순.
- AdGuard Home — Go, 더 모던. DNS-over-HTTPS·DoT·DNSCrypt 업스트림이 더 부드럽다.
2026년에는 둘 다 안정이지만 AdGuard Home 쪽이 신규 채택에서 약간 우세. 둘 다 Tailscale Magic DNS와 잘 어울리는 셋팅이 가능하다 — 외부에선 Tailscale DNS, 내부에선 자기 Pi-hole.
5.2 Beszel / Glances / Netdata — 모니터링
홈서버 모니터링은 회사용 Prometheus + Grafana 까지 갈 필요가 없다.
- Beszel — Go·SQLite·단일 바이너리. 2024년 등장. 가볍고 예쁘다. 2026년 홈랩 모니터링의 다크호스. 에이전트 + 허브 구조.
- Glances — 한 호스트 안에서 top/htop의 슈퍼셋. 웹 UI도 있음.
- Netdata — 1초 해상도, 굉장히 자세. 무거우나 정보량 최강.
- Uptime Kuma — HTTP/포트 핑 기반 업타임 페이지. 사이드 프로젝트 모니터에 표준.
- Dozzle — Docker 로그 웹 뷰어.
- Beszel + Uptime Kuma + Dozzle 세 개면 99%의 홈랩 모니터링이 끝난다.
5.3 백업 — Restic·Borg·Kopia
데이터를 내 디스크에 둔다는 건 백업의 책임도 내가 진다는 뜻이다.
- Restic — Go, 단일 바이너리, 암호화/중복 제거 표준. S3·B2·Wasabi 등 거의 모든 백엔드 지원.
- Borg — 더 오래됐고 더 검증됨, 단 푸시 모드의 워크플로가 약간 까다로움.
- Kopia — UI가 가장 친절, GUI를 함께 제공.
- Duplicacy — 상용, 라이선스 이슈로 호불호.
3-2-1 백업(3 copy, 2 media, 1 offsite)을 셀프호스팅에도 그대로 적용. offsite의 표준은 보통 Backblaze B2(저렴), Cloudflare R2(egress 무료), AWS S3 Glacier Deep Archive(보관용) 중 하나.
5.4 자동화 — n8n·Home Assistant
- n8n — Zapier/IFTTT 셀프호스팅 대체. 노드 그래프 자동화.
- Home Assistant — 스마트홈 OS. 자기 집의 모든 IoT를 통합. 2026년에도 압도적 1위.
- Node-RED — 시각 프로그래밍, 산업·아두이노 쪽에 강함.
n8n과 Home Assistant는 사실상 "자기 비서를 만드는 캔버스"가 됐다. LLM 노드(Anthropic, OpenAI, Ollama)가 표준으로 들어오면서 "내 로컬 자료를 토대로 답하는 비서"를 만드는 흐름도 흔하다.
5.5 분석 — Plausible / Umami / GoatCounter
블로그·사이드 사이트의 분석을 GA4 대신 셀프호스팅한다.
- Plausible — Elixir, 가장 폴리시드. 라이선스가 AGPL이라 호스팅 시 주의.
- Umami — Node/Postgres, MIT, 가장 채택률 높음.
- GoatCounter — Go, 한 사람의 사이드, 단순함의 미학.
쿠키 배너가 사라지고, 방문자 데이터가 자기 디스크에 머문다.
6장 · 하드웨어 — 책상 밑에 무엇을 둘 것인가
소프트웨어보다 결정이 어려운 게 하드웨어 선택이다. 2026년의 일반적인 패턴.
6.1 N100/N305 미니PC — 사실상 표준
Intel N100(4코어 Alder Lake-N, 6W TDP)·N305(8코어, 15W)는 2024년 이후 셀프호스팅 진영의 "기본기"가 됐다. 200~350달러대에 16GB RAM·512GB NVMe·2.5GbE 듀얼 NIC·VGA 출력까지 다 들어간다.
전기 요금 측면에서 연 30~50 kWh 수준(아이들 5W, 부하 시 15W). 한국 가정 기준 연간 5,000~9,000원. AWS t3.medium 하나가 매달 30달러 가까이 나가는 걸 생각하면 1년 만에 본전이 빠진다.
6.2 Raspberry Pi 5 — 가벼운 노드
Pi 5(2.4GHz 쿼드 Cortex-A76, 8GB RAM)는 일부 워크로드에 여전히 강하다.
- Pi-hole/AdGuard Home 같은 DNS 전용.
- Octoprint·Print server.
- HA OS(Home Assistant) 전용 박스.
- K3s 3노드 클러스터로 학습용.
ARM 컨테이너 이미지가 거의 다 갖춰진 2026년에는 호환성 걱정이 거의 없다. SD카드를 NVMe(HAT)으로 바꾸는 게 안정성의 핵심.
6.3 NAS — Synology vs TrueNAS vs Unraid
데이터가 1TB를 넘어가면 NAS 영역에 들어선다.
- Synology — 가장 쉽다. DSM이 정말 잘 만들어졌다. 단, 하드웨어 가성비 의문. 2025년 일부 모델에서 자사 디스크 강제 정책이 도입되며 평이 흔들렸다.
- TrueNAS Scale — 데비안 + ZFS + Kubernetes 기반. 강력하지만 학습 곡선 있음.
- Unraid — JBOD + 패리티의 유연성. 디스크를 한 개씩 늘려갈 수 있다는 게 강점. 셀프호스팅 진영에서 가장 사랑받는 NAS OS.
- OpenMediaVault — 데비안 + 웹UI. 가벼움.
홈랩 표준 조합: Unraid 또는 TrueNAS Scale 한 대 + N100 미니PC 한 대 + Pi 한 대. "NAS는 스토리지, 미니PC는 컴퓨트" 분업이 깔끔하다.
6.4 중고 엔터프라이즈 — Dell·HP·Lenovo 1L PC
200달러대에 i5/i7·16GB·SSD 박힌 Dell OptiPlex 7060·Lenovo M720q·HP EliteDesk가 시장에 흘러나오면서, 미니PC 두 번째 선택지로 자리 잡았다. r/homelabsales가 늘 활발.
6.5 Pi-KVM / TinyPilot — 원격 KVM
서버를 한번 켜놓으면 평생 안 만질 것 같지만, BIOS 들어갈 일이 생긴다. Pi-KVM·TinyPilot은 Raspberry Pi에 HDMI 캡처·USB 에뮬레이션을 얹어 IP KVM을 만들어준다. 100달러대 부품으로 IPMI/iLO 같은 경험.
홈서버를 "절대 안 만나는" 친구 집·부모님 집·사무실 모서리에 두는 사람에게는 필수에 가깝다.
6.6 UPS — 정전·서지 보호
홈서버를 진지하게 굴린다면 작은 UPS(APC Back-UPS·Cyber Power) 한 대는 거의 필수. 200달러대에 정전 30분 버티고, 서지 보호기능까지. 디스크 데이터 안전이 직접 좌우된다.
7장 · 위협 모델 — 공격받지 않으려면
"내 서버는 아무도 안 봐" 는 통하지 않는다. 인터넷에 노출된 22번 포트는 5초 안에 봇이 두드린다. 2026년의 셀프호스팅 위협 모델은 다음 가정으로 시작한다.
공개 포트는 정찰 대상이다. 가급적이면 0개. 어쩔 수 없으면 1개. 그 외는 메시 뒤에.
7.1 노출 패턴 다섯 가지
| 패턴 | 공격 표면 | 추천도 |
|---|---|---|
| 가정용 라우터에 포트포워딩 80/443/22 | 높음 (전 세계가 본다) | 비추천 |
| Cloudflare Tunnel | 중간 (CF가 게이트) | 권장 |
| Tailscale Funnel | 중간 (Tailscale이 게이트) | 권장 |
| Tailscale 전용(공개 노출 X) | 낮음 (계정 손상만) | 강추 |
| 에어갭 + USB 전송 | 거의 0 | 마니아 |
기본 원칙은 "비공개로 시작해서, 꼭 필요한 것만 공개로 승격" 이다.
7.2 Cloudflare Tunnel
cloudflared 데몬을 홈에 깔고 Cloudflare로 아웃바운드 터널 하나만 연다. Cloudflare의 엣지가 도메인을 받고 터널 안으로 트래픽을 흘려넣는다. 공유기 포트 0개로 공개 호스팅 가능.
장점: 무료 플랜, DDoS 보호, Cloudflare Access(Zero Trust)로 SSO 부가, IP 가리기. 단점: Cloudflare가 트래픽을 본다(TLS 종단), 라이브 스트리밍은 약관 위반 영역.
7.3 Tailscale Funnel
Tailscale 본인 도메인(xxx.ts.net)으로 공개. TLS는 Let's Encrypt를 Tailscale이 자동. Cloudflare보다 단순하지만, 무료 플랜의 트래픽 한도가 있고, 자기 도메인은 못 쓴다(2026년 기준).
7.4 외부 노출이 꼭 필요한 서비스 분류
- 공개해야 함: 블로그·포트폴리오 사이트·OAuth 콜백을 받는 서비스·온라인 신청 양식.
- 링크 공유만으로 충분: Plausible 임베드 대시보드(공개 페이지 옵션 사용)·미디어 라이브러리 게스트 링크.
- 절대 공개 금지: Vaultwarden·Authentik·관리자 UI·Forgejo 어드민·Coolify 대시보드·DB 직접 노출.
7.5 항상 켜두는 기본기
- SSH는 Tailscale SSH로(공개 포트 22 닫기).
- 컨테이너는 호스트 포트가 아닌 Docker network로 묶고, Traefik/Caddy가 게이트.
- 자동 보안 업데이트(unattended-upgrades, watchtower 신중히).
- 백업이 복구 테스트까지 한 사이클을 돈 적이 있어야 백업이다.
- 비상 키(Bitwarden Emergency Access, Vaultwarden Emergency Access) 설정.
- 2FA를 자체 vault에만 두는 단일 실패점을 피한다(YubiKey나 별도 vault에 백업).
7.6 무엇이 잘못되는가 — 실제 사고 사례 패턴
- 외부 노출된 Plex/Jellyfin 인증 우회 CVE — 1년에 한 번씩 터진다.
- Vaultwarden 어드민 토큰을 환경변수로 평문 보관 → 백업 노출.
- Forgejo runner 토큰 노출 → 임의 빌드 실행.
- Synology 디스크스테이션 사용자 비번 약함 + 외부 노출 → 랜섬웨어.
docker run --network host→ 내부망 전면 노출.
핵심은 단순하다 — 외부 노출을 줄이고, 내부 메시 뒤로 숨기고, 비밀번호와 키는 한 곳에 모으되 그 한 곳을 가장 강하게 지킨다.
8장 · 무엇을 셀프호스팅하고 무엇은 하지 말 것인가
홈랩의 가장 위험한 함정은 "다 가능하다" 의 환상이다. 가능한 것과 해야 하는 것은 다르다.
| 카테고리 | 셀프호스팅 권장? | 이유 |
|---|---|---|
| 사진 라이브러리(Immich) | 강추 | 가족 추억은 절대 잃으면 안 된다 → 자기가 책임 |
| 비밀번호(Vaultwarden) | 강추 | 가장 핵심적인 자산, 외부 의존도 0 |
| 노트·문서·Drive 대체 | 추천 | 데이터 주권의 본진 |
| 미디어 서버(Jellyfin) | 추천 | 가성비 압도, 트랜스코딩 GPU 필요 시 주의 |
| 분석(Umami/Plausible) | 추천 | GA4 대체, 쿠키 배너 사라짐 |
| RSS·읽기·책갈피 | 추천 | 가볍고 데이터 가치 큼 |
| Git 호스팅(Forgejo) | 추천 (취미) | 회사 코드는 회사 정책에 따라 |
| 자동화(n8n)·홈오토 | 추천 | 사적 흐름은 외부에 둘 이유 없음 |
| DNS·광고 차단(Pi-hole) | 강추 | 가성비·체감 즉시 |
| 메일 서버 자체 호스팅 | 비추천 | 평판·DKIM·SPF·블랙리스트 지옥 |
| 결제·신원·법적 의무 | 비추천 | 컴플라이언스·감사 부담 |
| 회사용 SSO·디렉토리 | 상황 | 작은 팀이면 Authentik 가능, 본격은 Okta/Entra |
| 채팅·메신저(Matrix) | 신중 | 친구 모두를 옮길 수 있는가? |
| LLM 추론 서버(Ollama 등) | 취미 추천 | 프로덕션은 GPU·튜닝 비용 |
| 화상회의(Jitsi) | 가벼운 용도 | 본격은 SaaS가 낫다 |
한 줄 원칙 두 가지:
- 운영 부담 ≤ 효용 일 때만 셀프호스팅한다. 메일이 대표적 반례.
- 데이터 가치가 클수록 자기 통제 가치가 크다. 사진·비밀번호·일기는 본인이 책임지는 게 맞다.
9장 · 비용 계산 — 정직하게
홈랩의 매력 중 하나는 "AWS 청구서가 사라진다" 다. 정확한 비교를 위해 1년 표를 그려본다.
| 항목 | 클라우드 | 홈랩(N100 1대) |
|---|---|---|
| 컴퓨트 (월) | $30 (t3.medium) | $1.5 (전기) |
| 스토리지 (1TB) | $23 (S3 Std) | $5 (NVMe 분할 상각) |
| 외부 대역폭 (월) | $50+ (TB 단위) | $0 (가정 인터넷) |
| 가용성 (월) | 99.99% | 99% (정전·재부팅) |
| 운영 시간 (월, 시간) | 2 | 4~10 (초반) → 2 (안정 후) |
| 초기 투자 | $0 | 80(UPS) |
| 1년 총비용 | $1,200+ | 80 (2년차~) |
숨은 비용: 자기 시간. 처음 한 달은 깔고 부수는 데 30시간 정도 든다. 그 다음부터는 월 1~2시간. "이 시간이 즐겁냐"가 결정 기준이다.
숨은 가치: 일에 쓰는 클라우드 스킬을 집에서 같은 형태로 연습. 회사에서 본 ArgoCD·Prometheus·Traefik을 집에서 굴리면 이해도가 다른 차원으로 올라간다.
10장 · 시작 레시피 — 한 주 안에 50% 도달하기
처음 들어오는 사람을 위한 7일 로드맵.
1일차 — 하드웨어와 OS
- N100 미니PC 한 대 주문(혹은 중고 1L PC).
- Ubuntu Server 24.04 LTS 또는 Debian 12 설치.
- SSH 비번 로그인 끄고 키 인증만.
2일차 — Tailscale
- 호스트 + 노트북 + 핸드폰에 Tailscale 깔고 같은 계정으로 로그인.
- MagicDNS 켜고 Tailscale SSH 켠다.
- 라우터 포트 22 닫는다.
3일차 — Docker + Traefik/Caddy
- Docker + Docker Compose 설치.
- Traefik 또는 Caddy 한 컨테이너로 리버스 프록시 + 자동 TLS(Tailscale 인증서) 깔기.
4일차 — Coolify 또는 Dokku 1개 선택
- Coolify면 한 줄 설치 스크립트.
- Dokku면 apt 한 줄 + 첫 앱 git push.
- 자기 사이드 프로젝트 한 개 배포해본다.
5일차 — 핵심 자가 호스팅 앱 셋
- Vaultwarden — 비밀번호.
- Immich — 사진(가족 단위 가치).
- Pi-hole 또는 AdGuard Home — DNS.
6일차 — 모니터링과 백업
- Beszel + Uptime Kuma + Dozzle 설치.
- Restic으로
/var/lib/docker/volumes와 사진 볼륨을 B2/R2로 매일 백업. - 복구 한 번 해본다(이게 진짜 백업).
7일차 — 안티패턴 점검과 휴식
- 외부에 노출된 포트가 0개인지 확인.
- Vaultwarden Emergency Access·복구 시드를 종이로 출력해서 어딘가에.
- 다음 주에 추가할 앱 하나 정해두고 끝.
이 단계에서 80% 사람들은 멈춘다. 그 다음은 위시리스트를 천천히 늘려가는 단계 — Forgejo, Plausible, n8n, Home Assistant, Jellyfin…
에필로그 — 셀프호스팅은 다시 정상이 되었다
2026년의 풍경을 정리하면 이렇다.
- Tailscale이 NAT·인증서·VPN 지옥을 사라지게 했다.
- Coolify·Dokku가 Heroku 경험을 집으로 가져왔다.
- Immich·Vaultwarden·Forgejo·Plausible이 빅테크 의존을 한 자루씩 끊었다.
- N100 미니PC 한 대로 클라우드 청구서 0이 가능해졌다.
- selfh.st·r/selfhosted 같은 커뮤니티가 친구 같은 멘토 역할을 한다.
이건 "회피"가 아니라 다시 균형을 찾는 흐름 이다. 클라우드가 사라지지는 않는다 — 회사 인프라, 글로벌 트래픽, 일하는 SaaS는 여전히 클라우드. 하지만 개인의 데이터와 도구는 다시 책상 밑에서 산다.
14개 항목 체크리스트
- 메시 VPN(Tailscale 또는 동등품)이 깔려 있는가?
- 라우터에 공개로 열린 포트가 22번 닫혔는가?
- 모든 SSH가 키 인증 + Tailscale SSH로 가는가?
- Vaultwarden(혹은 동등) 에 모든 비번이 들어와 있는가?
- 비번 vault의 Emergency Access·복구 시드가 종이로 어딘가에 있는가?
- 데이터가 최소 2개 매체에 백업되고, 그중 하나는 오프사이트인가?
- 백업에서 한 번이라도 복구를 성공시켜 봤는가?
- 사진·문서 같은 핵심 자산이 어디 있는지 가족이 알고 있는가?
- 모니터링이 켜져 있고 알람이 자기 핸드폰으로 가는가?
- 자동 보안 업데이트가 돌아가는가?
- UPS가 30분 이상 버티는가?
- 외부에 노출된 단 한 가지 도메인의 인증 흐름을 그릴 수 있는가?
- "내가 1년간 못 들어와도 누가 어떻게 살릴까" 를 적어둔 종이가 있는가?
- 시작했을 때보다 매주 들어가는 시간이 줄고 있는가?
안티패턴 10가지
- 첫 주에 앱 20개 깐다 — 운영 부담만 30개.
- 라우터에 22·80·443 포트포워딩 — 5분 안에 봇이 두드린다.
- Vaultwarden 어드민 토큰을 평문으로 환경변수에 — 그 환경변수를 백업.
- 백업을 한 번도 복구해보지 않는다 — 그건 백업이 아니다.
- 모든 서비스에 같은 SSO 비번 — 한 곳 뚫리면 전부.
- 컨테이너를
--network host로 — 격리가 사라진다. - 모니터링이 자기 호스트 위에서만 — 호스트가 죽으면 알람도 죽는다.
- 메일을 셀프호스팅한다 — 평판·DKIM 지옥.
- UPS 없이 SSD에 의존 — 정전 한 번에 파일시스템 손상.
- 가족에게 알리지 않는다 — 본인이 못 들어오면 사진이 다 잠긴다.
다음 글 예고
다음 글 후보: Kubernetes 홈랩 — K3s·ArgoCD·Cilium으로 작은 클러스터 굴리기, Immich 깊이 — ML 파이프라인·외부 라이브러리·B2 백업, Tailscale ACL 실전 — 신원 기반 방화벽 설계.
"클라우드는 회사용. 책상 밑은 내 것."
— 2026년의 셀프호스팅 르네상스, 끝.
참고 / References
- Tailscale 공식
- Tailscale ACL 문서
- Tailscale Funnel
- Headscale GitHub
- WireGuard 공식
- Netbird
- ZeroTier
- Coolify
- Coolify GitHub
- Dokku
- CapRover
- K3s
- Vaultwarden GitHub
- Authentik
- Authelia
- Immich
- Nextcloud
- OwnCloud Infinite Scale
- Seafile
- Forgejo
- Codeberg
- Gitea
- Outline
- AppFlowy
- BookStack
- Memos
- Jellyfin
- Linkwarden
- Karakeep (구 Hoarder)
- ArchiveBox
- Pi-hole
- AdGuard Home
- Beszel
- Glances
- Netdata
- Uptime Kuma
- Dozzle
- Restic
- BorgBackup
- Kopia
- n8n
- Home Assistant
- Plausible
- Umami
- Pi-KVM
- TinyPilot
- TrueNAS Scale
- Unraid
- OpenMediaVault
- selfh.st 뉴스레터
- awesome-selfhosted
- r/selfhosted
- r/homelab
- Cloudflare Tunnels
- Ollama
The 2026 Self-Hosting Renaissance — Personal Infra Rebuilt with Tailscale, Coolify, Dokku, and a Homelab
Prologue — Why People Run Their Own Stuff Again
In 2018, a friend would have asked, "Why are you hosting that yourself? Just spin it up on AWS." In 2026, the same friend has a Coolify install on an N100 mini-PC and pulls up their own Immich to look at photos.
The shift didn't happen overnight. Several dots got connected at the same time.
- The cloud got expensive. FX rates, AWS egress, S3 request prices, and most of all, the dread of "I left something on by accident and now there's a 100+/month on a couple of side projects moved to a $200 N100 mini-PC and lifetime hosting.
- Mesh VPN went mainstream. After Tailscale wrapped WireGuard into something humans can use and gave it away for free, the four classic horrors — port forwarding, dynamic DNS, certificates, NAT traversal — disappeared at once. People even self-host the control plane via Headscale.
- Containers grew up. One Docker Compose file brings up Immich, Nextcloud, Vaultwarden, Forgejo, Plausible, and Pi-hole in five minutes. The Ansible-playbook era of five years ago feels like another lifetime.
- PaaS went open source. Coolify, Dokku, and CapRover bring the "git push, get deployed" experience onto your own box. The $100/month Heroku bill becomes zero.
- Data sovereignty came back as a topic. Photos, documents, passwords, family chat — what becomes training data for what model, nobody really guarantees. "My data on my disk" is appealing again.
- The side-project aesthetic returned. selfh.st newsletter, r/selfhosted, awesome-selfhosted, Homelab Show — a culture of showing off your tiny server. The 90s PC user-group, reborn for the 21st century.
This piece is a 2026 map of that renaissance. Including the harder question: what should you self-host, and what should you absolutely not?
1. Foundation — Mesh VPN Changed Everything
If you compress the homelab boom into one sentence, this is it:
Self-hosting is divided into before-Tailscale and after-Tailscale.
What Tailscale Removed
The old home-server guide always started with the same chapter.
- Go into the home router and open ports 80, 443, 22.
- Set up dynamic DNS so the residential IP is reachable by name.
- Pull a Let's Encrypt certificate and stand up an nginx reverse proxy.
- Configure fail2ban, intrusion detection, SSH key auth.
- Wake up Saturday morning to an alert that someone is brute-forcing your SSH.
Tailscale severed that chain in one move. You don't open a single port. Install the client on every device, log in with the same account, and a WireGuard-based P2P mesh forms automatically. A private IP in the 100.x.y.z range gets attached to each device, and the devices talk only inside that network.
By 2026, Tailscale offers:
- A WireGuard-based mesh VPN — peer-to-peer, not hub-and-spoke. Once two nodes negotiate a direct connection, traffic stops touching the control plane.
- NAT traversal (STUN, UDP hole punching) automatic. If that fails, it falls back to a DERP relay.
- MagicDNS — names like
my-nas.tailnet-name.ts.netinstead of100.64.x.x. - Tailscale SSH — SSH key management delegated to ACLs. The bastion host disappears.
- Subnet routers and exit nodes — expose a whole LAN through one gateway, or route all traffic through your home.
- Funnel — expose a single service to the public internet without opening any ports.
- ACLs as JSON — who can reach whom on what port, as code.
- Free plan: 100 devices, 3 users (an expansion from April 2024 that still holds in 2026).
Headscale — Self-Hosting the Control Plane
Tailscale's control plane (coordination, auth, ACLs) is operated by the company. For the people who can't even trust that, Headscale (MIT-licensed) provides a compatible control plane. The data plane is still WireGuard, so no performance difference.
By 2026 Headscale is considered stable around v0.26. OIDC SSO, policy v2, prefixed API keys, embedded DERP — "our own Tailscale with our corporate OAuth" is now feasible.
A Small ACL Snippet
{
"acls": [
{ "action": "accept", "src": ["group:admin"], "dst": ["*:*"] },
{ "action": "accept", "src": ["group:family"], "dst": ["tag:media:80,443"] },
{ "action": "accept", "src": ["tag:ci"], "dst": ["tag:registry:443"] }
],
"groups": {
"group:admin": ["alice@example.com"],
"group:family": ["bob@example.com", "carol@example.com"]
},
"tagOwners": {
"tag:media": ["group:admin"],
"tag:registry": ["group:admin"],
"tag:ci": ["group:admin"]
}
}
One file: admins get everything, family gets media only, CI gets the registry only. The mental shift is writing firewall rules in terms of identity, not IPs.
Tailscale Funnel — Public Exposure Without Open Ports
Funnel exposes a tailnet service to the public internet on an official xxx.ts.net hostname. TLS is issued and rotated by Tailscale, and traffic enters via Tailscale before hitting the internal node. Zero router ports open, public blog still online.
Alternatives in One Line Each
| Tool | Character | One-liner |
|---|---|---|
| Tailscale | Managed SaaS, 100 devices free | Easiest. 90 percent of people stop here |
| Headscale | Tailscale-compatible self-hosted control plane | For companies and full autonomy |
| Netbird | OSS mesh, rich ZTNA policy | Strongest Tailscale alternative |
| ZeroTier | Virtual L2 network, longtime player | Great for LAN gaming and embedded |
| Nebula | Slack's mesh, lean and fast | Operationally heavier |
| Plain WireGuard | Fastest but DIY for everything | You hand-draw the mesh |
Bottom line — whatever you self-host, start by installing Tailscale. The single service that truly needs public exposure (a blog, say) gets Funnel or Cloudflare Tunnel separately.
2. Self-Hosting the PaaS — Coolify, Dokku, CapRover
A homelab eventually grows out of one wish: "I want git-push-to-deploy on my own hardware." In 2026 there are three main contenders.
2.1 Coolify — The Star of 2025-2026
Coolify is the work of Hungarian developer Andras Bacsai, now incorporated, written in PHP/Laravel. Apache 2.0 license, runs on a single Docker host, delivers an experience close to Heroku/Vercel.
What it gives you:
- Git integration with GitHub, GitLab, Gitea, Bitbucket. Push auto-builds and deploys.
- Nixpacks / Heroku Buildpacks / Dockerfile auto-detection.
- Preview environments — a separate domain per PR.
- One-click DB, Redis, RabbitMQ, MeiliSearch provisioning.
- Automatic TLS via a Caddy-based traffic router.
- Multi-server — one Coolify can manage several nodes.
- A one-click self-hosted app catalog (Plausible, Umami, n8n, Supabase, ...).
- Backups to S3-compatible storage (B2, R2, MinIO).
By 2026, Coolify runs in the stable 4.x line. The one-line install script is essentially standard. It's the most repeated keyword in the selfh.st newsletter.
When to pick it:
- A solo developer juggling several side projects.
- A small team running staging and production on a single host.
- An indie maker for whom Heroku/Vercel bills started to sting.
Limitations:
- DB backup restore flows still need hand-holding.
- Multi-node is possible but not a real cluster (for that, K3s).
- Core is Laravel — deep customization has a learning curve.
2.2 Dokku — The Original PaaS-in-a-Box
Dokku dates back to 2013. It started as the "Can we build Heroku in 100 lines?" experiment and has matured into the most battle-tested single-host PaaS. MIT-licensed, built from shell scripts and Docker, time-tested reliability as its main asset.
The core flow:
# On the host
dokku apps:create myblog
dokku domains:add myblog blog.example.com
dokku letsencrypt:set myblog email me@example.com
dokku letsencrypt:enable myblog
# Locally
git remote add dokku dokku@homelab.tailnet-name.ts.net:myblog
git push dokku main
# Buildpack detection -> container build -> zero-downtime deploy
Watching git push dokku main work the first time leaves people muttering, "wait, this is just Heroku."
Coolify vs. Dokku, one line:
- Dokku is CLI- and plugin-centric. For people at home in a shell.
- Coolify is UI-centric. For people who want everything through clicks.
2.3 CapRover — Docker Swarm Cousin
CapRover is in the same category. It runs on Docker Swarm, and its "Quick One-Click Deploy 100+ apps" catalog is the highlight. The UI is a bit lighter, and multi-node clustering is built in from day one. In 2026 the market share has slid behind Coolify, but it has a loyal user base.
2.4 K3s / k0s — "PaaS Is Restrictive but K8s Is Heavy"
The next level up replaces PaaS with lightweight Kubernetes. K3s (Rancher), k0s (Mirantis), MicroK8s (Canonical) live in that slot. Kubernetes that fits on a Pi 4/5. ArgoCD, Flux, Helm work directly. The catch is that "operating Kubernetes" is now your homework.
Running K3s on a homelab is almost religious. What you gain: a GitOps playground for Ingress and ConfigMaps. What you give up: weekends debugging cert-manager, MetalLB, and local-path-provisioner.
2.5 Decision Matrix
| Situation | Pick |
|---|---|
| 2-5 side projects, want speed | Coolify |
| Comfortable in a shell, value stability | Dokku |
| Multi-node plus one-click catalog | CapRover |
| You run K8s at work, want practice at home | K3s |
| One compose file is the whole stack | Plain docker compose + Traefik |
3. Identity, Passwords, Auth — The Heart of Self-Hosting
Once data starts living on your own disk, the next question is unavoidable: "what about the passwords?"
3.1 Vaultwarden — Bitwarden Server at Zero Cost
Vaultwarden is a Bitwarden-compatible server rewritten in Rust. The official Bitwarden server is a heavy multi-container .NET app; Vaultwarden is a single binary backed by SQLite or PostgreSQL. 100 percent compatible with the official Bitwarden clients (mobile apps, browser extensions).
# docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
DOMAIN: "https://vault.tailnet-name.ts.net"
SIGNUPS_ALLOWED: "false"
ADMIN_TOKEN: "<argon2-hash>"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
Expose it only inside the tailnet and your password vault never touches the public internet. Bitwarden Premium becomes free, and family-shared vaults, TOTP, and file attachments all light up.
3.2 Authentik / Authelia / Keycloak — SSO Gates
Once you've stood up multiple self-hosted services and want to log in only once, you need an SSO or reverse-proxy auth gate.
- Authentik — Python/Django. The friendliest UI, OAuth2/OIDC, SAML, and LDAP in one package. The most popular pick in 2026.
- Authelia — Go, lean. Particularly strong on 2FA, MFA, and WebAuthn. De facto partner of Traefik.
- Keycloak — Java, enterprise standard. Heavy but the same KC you see at work.
If you already run Tailscale, "ACL as the first gate, Authentik as the second" is a clean split. Authentik only really earns its keep when something has to be exposed externally — for internal-only services, Tailscale ACL is usually enough.
3.3 Passkeys and WebAuthn
By 2026, passkey adoption in the self-hosting world has picked up sharply. Vaultwarden stores passkeys in the vault. Forgejo/Gitea, Authentik, and Immich treat WebAuthn login as a standard option. The trend of "the password field disappears" is the same here.
4. Content — Photos, Documents, Notes, Code, Video
4.1 Immich — The Definitive Google Photos Replacement
Immich is the headline success of the 2026 self-hosting world. It copies Google Photos' UX directly — mobile app, auto-backup, face recognition, object search, geo clustering, live photos, external libraries, shared albums, curated memories. It hit GA in 2024, took off in 2025, and by 2026 is the tool people use to leave Google Photos.
The backend bakes in ML — CLIP embeddings for search, MediaPipe for faces, optional Whisper for video audio. It runs better with a GPU but performs well on an N100 CPU. When family library preservation gets serious, it's effectively the only choice.
4.2 Nextcloud / OwnCloud / Seafile — Drive Replacements
- Nextcloud — the biggest ecosystem. Calendar, notes, office suite (Collabora/OnlyOffice), mail, chat (Talk) — a super-app. Heavy, but the most versatile.
- OwnCloud Infinite Scale (OCIS) — the lean Go-based rewrite. Focused on file sync.
- Seafile — the best-reviewed sync performance. Plain UI.
A common pairing: Immich for family photos, Nextcloud for general documents.
4.3 Forgejo / Gitea — GitHub Alternatives
In the age of GitHub Codespaces and Copilot, why run your own Git server? Two answers.
- Source-code sovereignty — private work, experiments, personal coding journals.
- CI/issues/wiki in one place — Forgejo Actions is workflow-YAML compatible with GitHub Actions. Just run a separate
actions-runnerand you're set.
Forgejo is the community fork born in 2022 after Gitea moved to a company structure. In 2025, Codeberg migrated fully to Forgejo, and by 2026 Forgejo is the de facto standard for self-hosted Git. Gitea is still active but new adoption leans Forgejo for licensing and governance reasons.
4.4 Notes, Docs, Wikis
- Obsidian + Git/Syncthing/self-hosted sync — markdown files plus Git sync, the classical solution.
- Outline — team wiki, often discussed as a Slack/Confluence replacement.
- AppFlowy — Rust-based Notion clone. Mobile got stable in 2026.
- Trilium / TriliumNext — single-user note tree. Cult favorite.
- BookStack — wiki using a book/chapter/page metaphor. Strong for manuals and runbooks.
- Memos — short-form note stream like Twitter. For journaling.
4.5 Media Servers — Jellyfin / Plex / Emby
Movies, music, TV libraries — still owned by media servers. Jellyfin, fully open source and free, soaked up users rapidly after Plex's 2024 policy changes. Plex still leads on UI and hardware-accelerated transcoding, but a meaningful audience left over "I'm not putting up with ads in my own library."
4.6 RSS, Read-Later, Archive
- Miniflux — Go, lean. A no-nonsense RSS reader.
- FreshRSS — PHP, feature rich.
- Wallabag — Pocket replacement, read later.
- Readeck / Linkding — bookmarks.
- Karakeep / Linkwarden — bookmarks with AI auto-tagging, very hot in 2026.
- ArchiveBox — archive a URL whole (screenshot, HTML, warc).
5. Infra Chores — DNS, Monitoring, Automation
5.1 Pi-hole / AdGuard Home — Household DNS Blockers
Block ads, trackers, and malicious domains at the DNS layer for the whole household. A single Raspberry Pi 4 or one Docker container is enough. Install once and ads start vanishing from every phone, TV, and smart toaster on the network.
- Pi-hole — oldest, most battle-tested. Simple UI.
- AdGuard Home — Go, more modern. Smoother handling of DoH, DoT, and DNSCrypt upstreams.
Both are stable by 2026, but AdGuard Home edges ahead in new installs. Both pair well with Tailscale MagicDNS — Tailscale DNS from outside, your own Pi-hole on the inside.
5.2 Beszel / Glances / Netdata — Monitoring
Homelab monitoring doesn't need to reach the corporate Prometheus and Grafana setup.
- Beszel — Go, SQLite, single binary. Born in 2024. Light and good-looking. The dark horse of 2026 homelab monitoring. Agent plus hub layout.
- Glances — top/htop superset on a host. Has a web UI too.
- Netdata — one-second resolution, very detailed. Heavy but unmatched in information density.
- Uptime Kuma — HTTP and port pings for an uptime page. The standard for monitoring side-project sites.
- Dozzle — Docker log viewer in the browser.
- Beszel plus Uptime Kuma plus Dozzle covers 99 percent of homelab needs.
5.3 Backups — Restic, Borg, Kopia
Putting data on your own disk means owning the backup, too.
- Restic — Go, single binary, encryption and dedup standard. Backends include S3, B2, Wasabi, almost anything.
- Borg — older and very battle-tested, though the push-mode workflow has rough edges.
- Kopia — friendliest UI, ships with a GUI.
- Duplicacy — commercial, polarizing licensing.
Apply the 3-2-1 rule (3 copies, 2 media, 1 offsite) to your homelab too. Offsite usually means Backblaze B2 (cheap), Cloudflare R2 (free egress), or AWS S3 Glacier Deep Archive (cold).
5.4 Automation — n8n, Home Assistant
- n8n — self-hosted Zapier/IFTTT replacement. Node-graph automation.
- Home Assistant — the smart-home OS. Integrates every IoT thing in your home. Still dominant in 2026.
- Node-RED — visual programming, especially strong in industrial and Arduino-class work.
n8n and Home Assistant have basically become "canvases for building your own assistant." LLM nodes (Anthropic, OpenAI, Ollama) are now standard, and the "personal assistant grounded in my local data" pattern is widespread.
5.5 Analytics — Plausible / Umami / GoatCounter
Self-host blog and side-site analytics instead of GA4.
- Plausible — Elixir, the most polished. AGPL — be careful when hosting.
- Umami — Node/Postgres, MIT, the highest adoption.
- GoatCounter — Go, a one-person side project, beautiful in its minimalism.
Cookie banners disappear, and visitor data stays on your disk.
6. Hardware — What Lives Under the Desk
Hardware choices are harder than software ones. The common 2026 pattern.
6.1 N100/N305 Mini-PCs — Effectively the Standard
The Intel N100 (4-core Alder Lake-N, 6W TDP) and N305 (8 cores, 15W) have been the homelab baseline since 2024. For 200-350 dollars you get 16GB RAM, a 512GB NVMe, dual 2.5GbE NICs, and HDMI output.
Power use is roughly 30-50 kWh per year (5W idle, 15W under load). Maybe 4-9 dollars a year of electricity in many regions. With AWS t3.medium clocking in near 30 dollars a month, the box pays for itself within a year.
6.2 Raspberry Pi 5 — Lightweight Nodes
The Pi 5 (2.4 GHz quad Cortex-A76, 8GB RAM) still shines for specific workloads.
- DNS only with Pi-hole or AdGuard Home.
- Octoprint and print servers.
- Dedicated Home Assistant OS box.
- A three-node K3s cluster for learning.
By 2026 ARM container images are essentially universal, so compatibility worries are gone. The stability key is moving from an SD card to NVMe via a HAT.
6.3 NAS — Synology vs. TrueNAS vs. Unraid
Once data crosses about a terabyte you enter NAS country.
- Synology — the easiest. DSM is genuinely well crafted. Hardware value is debatable, and a 2025 policy nudging customers toward branded drives shook reputation in some models.
- TrueNAS Scale — Debian plus ZFS plus Kubernetes. Powerful with a learning curve.
- Unraid — JBOD plus parity, lets you grow disk by disk. The most beloved NAS OS in the self-hosting world.
- OpenMediaVault — Debian plus a web UI. Lean.
A homelab template: one Unraid or TrueNAS Scale, one N100 mini-PC, one Pi. NAS for storage, mini-PC for compute. The division of labor is clean.
6.4 Used Enterprise — Dell, HP, Lenovo 1L PCs
200-dollar Dell OptiPlex 7060, Lenovo M720q, and HP EliteDesk units land in the secondary market with i5/i7 CPUs, 16GB, and an SSD, making them solid second mini-PCs. r/homelabsales stays busy.
6.5 Pi-KVM / TinyPilot — Remote KVM
You think you'll never touch the server again until you need to enter the BIOS. Pi-KVM and TinyPilot put HDMI capture and USB emulation on a Raspberry Pi to give you an IP KVM. About 100 dollars of parts for an IPMI/iLO-class experience.
Borderline mandatory if your server lives at a friend's, a parent's, or in the office corner you don't visit.
6.6 UPS — Power Loss and Surge Protection
Treat a small UPS (APC Back-UPS, CyberPower) as essential. About 200 dollars buys 30 minutes of runtime plus surge protection. It directly determines whether your disks survive an outage.
7. Threat Model — How Not to Get Owned
"Nobody is looking at my server" doesn't survive contact with reality. An SSH port exposed to the internet sees bots within seconds. The 2026 self-hosting threat model starts from a single assumption.
Public ports are reconnaissance targets. Prefer zero. If you must, one. Everything else lives behind the mesh.
7.1 Five Exposure Patterns
| Pattern | Attack Surface | Recommend? |
|---|---|---|
| Router port-forward 80/443/22 | High (the whole internet sees you) | Avoid |
| Cloudflare Tunnel | Medium (CF is the gate) | Recommended |
| Tailscale Funnel | Medium (Tailscale is the gate) | Recommended |
| Tailscale only, no public exposure | Low (only an account compromise) | Strongly recommended |
| Air-gapped plus USB transfer | Effectively zero | Enthusiast |
The default rule is start private and promote to public only when needed.
7.2 Cloudflare Tunnel
Run cloudflared on the home box and open one outbound tunnel to Cloudflare. Cloudflare's edge terminates the domain and pushes traffic into the tunnel. Public hosting with zero router ports.
Upside: free tier, DDoS protection, Cloudflare Access (zero trust) for SSO bolt-on, IP masking. Downside: Cloudflare sees TLS-terminated traffic, and live streaming bumps into the TOS.
7.3 Tailscale Funnel
Public exposure on a Tailscale-owned hostname (xxx.ts.net). TLS is Let's Encrypt, automated by Tailscale. Simpler than Cloudflare, but the free tier has bandwidth caps, and (as of 2026) your own domain isn't supported.
7.4 What Actually Needs to Be Public
- Must be public: blog, portfolio site, OAuth callback handlers, online form submission.
- Share-link is enough: Plausible embedded dashboard (public-page option), media library guest links.
- Never public: Vaultwarden, Authentik, admin UIs, Forgejo admin, Coolify dashboard, raw DBs.
7.5 Always-On Basics
- SSH goes through Tailscale SSH; close port 22.
- Containers join Docker networks, not host ports; Traefik or Caddy is the gate.
- Automatic security updates (unattended-upgrades; watchtower selectively).
- A backup that has never been restored isn't a backup yet.
- Emergency access (Bitwarden Emergency Access, Vaultwarden Emergency Access) configured.
- Don't park 2FA solely in the same vault — keep a YubiKey or a second vault for the codes.
7.6 What Actually Goes Wrong — Real Patterns
- CVEs that bypass auth on publicly exposed Plex/Jellyfin — once a year, like clockwork.
- Vaultwarden admin token stored as a plain env var — and the env file ends up in a backup.
- Forgejo runner token leaked — arbitrary builds can run.
- Synology DiskStation with a weak password and public exposure — ransomware.
docker run --network host— internal network fully exposed.
The synthesis is simple — shrink the public surface, hide everything behind the mesh, concentrate secrets in one place, and protect that one place the hardest.
8. What to Self-Host and What Not To
The most dangerous trap is the homelab fantasy of "everything is possible." Possible and worth doing are different sets.
| Category | Self-Host? | Why |
|---|---|---|
| Photo library (Immich) | Strong yes | Family memories must not be lost — you own that risk |
| Passwords (Vaultwarden) | Strong yes | Most critical asset, zero external dependency |
| Notes/documents/Drive replacement | Yes | Heart of data sovereignty |
| Media server (Jellyfin) | Yes | Massive value, watch for GPU needs |
| Analytics (Umami/Plausible) | Yes | Replace GA4, cookie banners gone |
| RSS, read-later, bookmarks | Yes | Light services, high data value |
| Git hosting (Forgejo) | Yes (hobby) | Company code follows company policy |
| Automation (n8n) / smart home | Yes | Private flows have no reason to be external |
| DNS / ad blocking (Pi-hole) | Strong yes | Best price-to-value, instant felt benefit |
| Self-hosting mail | Avoid | Reputation, DKIM, SPF, blocklists — nightmare |
| Payments / identity / legal duties | Avoid | Compliance and audit overhead |
| Corporate SSO / directory | It depends | Small teams ok with Authentik, scale needs Okta/Entra |
| Chat (Matrix) | Cautious | Can you actually move all your friends? |
| LLM inference (Ollama) | Hobby yes | Production needs GPU spend and tuning |
| Video conferencing (Jitsi) | Light only | Real workloads belong on SaaS |
Two one-liners:
- Self-host only when operational cost is less than or equal to benefit. Mail is the textbook counter-example.
- The more valuable the data, the higher the value of self-control. Photos, passwords, journals — you should own them.
9. Cost Math — Honestly
One appeal of homelab is "the AWS bill goes away." For an honest comparison, here's a 12-month table.
| Item | Cloud | Homelab (one N100) |
|---|---|---|
| Compute (monthly) | $30 (t3.medium) | $1.5 (electricity) |
| Storage (1 TB) | $23 (S3 Standard) | $5 (amortized NVMe) |
| Egress (monthly) | $50 plus (TB scale) | $0 (home internet) |
| Availability (monthly) | 99.99 percent | 99 percent (outages, reboots) |
| Ops time (hours/month) | 2 | 4-10 early, settles around 2 |
| Upfront | $0 | 80 (UPS) |
| Year-one total | $1,200 plus | 80 from year 2 |
Hidden cost: your time. The first month eats 30 hours of "install, break, redo." After that it settles at one or two hours a month. Whether that time is enjoyable is the real decision.
Hidden gain: the cloud skills you use at work, exercised at home. Running ArgoCD, Prometheus, Traefik at home moves your understanding to a different level.
10. Starter Recipe — Halfway There in One Week
A seven-day roadmap for newcomers.
Day 1 — Hardware and OS
- Order an N100 mini-PC (or pick up a used 1L PC).
- Install Ubuntu Server 24.04 LTS or Debian 12.
- Disable SSH password login; keys only.
Day 2 — Tailscale
- Install Tailscale on the host, laptop, and phone; log in with the same account.
- Turn on MagicDNS and Tailscale SSH.
- Close port 22 on the router.
Day 3 — Docker plus Traefik or Caddy
- Install Docker and Docker Compose.
- Bring up Traefik or Caddy as a reverse proxy with automatic TLS (Tailscale certs).
Day 4 — Pick One: Coolify or Dokku
- Coolify: one-line install script.
- Dokku: one apt line plus your first git push.
- Deploy one of your side projects.
Day 5 — The Core Three
- Vaultwarden for passwords.
- Immich for photos (family-grade value).
- Pi-hole or AdGuard Home for DNS.
Day 6 — Monitoring and Backups
- Install Beszel, Uptime Kuma, and Dozzle.
- Use Restic to back up
/var/lib/docker/volumesand the photo volume to B2 or R2 daily. - Restore once. A backup you've never restored is a wish.
Day 7 — Anti-Pattern Audit, then Rest
- Confirm zero externally exposed ports.
- Print Vaultwarden's emergency access and recovery seed on paper and store it somewhere safe.
- Pick one app to add next week. Done.
Eighty percent of people stop here. From there it's a slow expansion — Forgejo, Plausible, n8n, Home Assistant, Jellyfin...
Epilogue — Self-Hosting Is Normal Again
The 2026 landscape, summarized.
- Tailscale erased the NAT/certificate/VPN hell.
- Coolify and Dokku put the Heroku experience back on your own box.
- Immich, Vaultwarden, Forgejo, Plausible chipped away at big-tech dependency, one sack at a time.
- One N100 mini-PC makes a zero-dollar cloud bill realistic.
- selfh.st and r/selfhosted play the role of friendly mentors.
This isn't avoidance — it's a rebalance. Cloud is not going away — corporate infra, global traffic, working SaaS are all still cloud. But personal data and tools live back under the desk.
A 14-Item Checklist
- Is a mesh VPN (Tailscale or equivalent) in place?
- Is router port 22 closed to the public?
- Does every SSH session go via keys plus Tailscale SSH?
- Are all passwords inside Vaultwarden (or equivalent)?
- Are emergency access and recovery seeds printed on paper somewhere?
- Is data on at least two media, one of them off-site?
- Have you successfully restored from backup at least once?
- Do your family or roommates know where the photos and documents live?
- Is monitoring on and routing alerts to your phone?
- Are automatic security updates running?
- Does the UPS hold for at least 30 minutes?
- Can you draw the auth flow of the one public domain you do expose?
- Is there a piece of paper that explains, "if I'm out for a year, here's how to keep this alive"?
- Is the weekly time you spend on this decreasing rather than growing?
Ten Anti-Patterns
- Installing 20 apps the first week — that's 30 worth of operations.
- Port-forwarding 22, 80, 443 — bots reach you in five minutes.
- Storing the Vaultwarden admin token as a plaintext env var — and backing the env file up.
- Never restoring from a backup — it isn't a backup.
- Reusing one SSO password across services — one breach is total.
docker run --network hosteverywhere — isolation gone.- Monitoring only on the same host — host dies, alerts die.
- Self-hosting mail — reputation and DKIM purgatory.
- Skipping the UPS on an SSD — one outage and the filesystem goes.
- Not telling family — if you can't get in, neither can the photos.
Next Up
Candidates: Kubernetes Homelab — running a small cluster with K3s, ArgoCD, and Cilium, Immich Deep Dive — ML pipeline, external libraries, B2 backups, Tailscale ACLs in Practice — identity-driven firewalls.
"Cloud is for work. Under the desk is for me."
— The 2026 self-hosting renaissance, end.
참고 / References
- Tailscale
- Tailscale ACL docs
- Tailscale Funnel
- Headscale on GitHub
- WireGuard
- Netbird
- ZeroTier
- Coolify
- Coolify on GitHub
- Dokku
- CapRover
- K3s
- Vaultwarden on GitHub
- Authentik
- Authelia
- Immich
- Nextcloud
- OwnCloud Infinite Scale
- Seafile
- Forgejo
- Codeberg
- Gitea
- Outline
- AppFlowy
- BookStack
- Memos
- Jellyfin
- Linkwarden
- Karakeep (formerly Hoarder)
- ArchiveBox
- Pi-hole
- AdGuard Home
- Beszel
- Glances
- Netdata
- Uptime Kuma
- Dozzle
- Restic
- BorgBackup
- Kopia
- n8n
- Home Assistant
- Plausible
- Umami
- Pi-KVM
- TinyPilot
- TrueNAS Scale
- Unraid
- OpenMediaVault
- selfh.st newsletter
- awesome-selfhosted
- r/selfhosted
- r/homelab
- Cloudflare Tunnels
- Ollama