pp ppajji
· 조회

왜 자가호스팅인가

한 해 동안 15개 서비스를 직접 운영하며 배운 것들. 비용, 통제, 그리고 한계.

목차

노트 하나를 열기까지 클라우드 서비스 4곳을 거친 어느 날, 그만하자고 정했습니다. 결국 서비스 15개를 직접 세워 올렸고, 이 글은 그동안의 기록입니다.

시작 이유#

작년 이 시기, 매일 사용하던 도구가 열 개를 넘었습니다. 그중 절반은 언젠가부터 로그인 창이 뜨고, 결제 페이지가 뜨고, 정책 변경 팝업이 떴습니다. 관리해야 할 계정이 곧 삶의 관리 대상이 되고 있었습니다.

세 가지 목표#

  • 의존 최소화 — 특정 벤더가 사라져도 내 데이터가 남을 것
  • 비용 상한 있음 — 트래픽/사용자에 따라 비용이 폭발하지 않을 것
  • 한 곳에서 파악 — 로그, 백업, 인증서, 도메인. 한 명이 다 볼 수 있는 규모

첫 결정#

Cloudflare Tunnel 로 시작해 봤지만, 결국 벤더 락인이 남는다는 것을 깨달았습니다. Headscale + Tailscale 로 방향을 틀었습니다.

스택#

작게 시작해 조금씩 늘려온 결과입니다.

인프라#

  • Headscale (자가 호스팅 컨트롤 서버) + Tailscale 클라이언트
  • Caddy (자동 TLS + reverse proxy)
  • Cloudflare DNS (도메인만, Tunnel 은 걷어냄)
  • 백업: restic 로 로컬 HDD + iDrive e2 이중 복제

서비스#

노트 (Trilium), 비밀번호 (Vaultwarden), 파일 (Nextcloud), 캘린더 (Radicale), 채팅 (Matrix / Synapse), 문서 협업 (Docmost), 코드 저장소 (Forgejo), 시간 관리 (Kimai / Solidtime) 등. 필요할 때마다 하나씩.

CI/CD#

Forgejo Actions 의 자가 호스팅 runner. 이 블로그 자체도 그 파이프라인으로 배포됩니다.

배운 것#

숫자보다 태도의 문제였습니다.

자유는 무료가 아니다#

디스크가 넘치는 것은 내 책임입니다. 인증서 갱신도, 백업 검증도. 다만 그것이 무게가 되는 게 아니라, 오히려 통제감을 줍니다.

작게 유지하기#

거대한 관리자 대시보드는 없습니다. 서비스마다 로그인이 다르고, 취향에 맞는 도구를 골라 씁니다. 통일된 UX 를 포기하는 대신, 각각의 도구가 자기 세계 안에서 잘 만들어져 있습니다.

시간이 걸림#

한 서비스를 안정화하는 데 평균 이틀 정도 걸립니다. 총 몇 주 동안 저녁을 이 위에 썼습니다. 다만 한 번 세워두면 오래 갑니다.

한계와 타협#

솔직한 부분입니다.

협업은 여전히 클라우드#

혼자 쓰는 것은 만들 수 있지만, 다른 사람과 나누는 것은 여전히 SaaS 를 씁니다. GitHub, Notion 같은 것들. 자가호스팅 대체재가 있어도, 상대방이 따라오지 않기 때문입니다.

모바일 앱 품질#

데스크탑 웹은 정상이어도 모바일 앱 완성도는 편차가 큽니다. Element X (Matrix), Notesnook 은 좋고, 일부는 답답합니다.

정전과 인터넷#

집 서버는 인터넷과 전기가 나가면 멈춥니다. 그래서 실제 게시용 서비스는 VPS 로 옮겼습니다.

결론#

모든 사람에게 권하지 않습니다. 다만 한 번쯤 자기가 쓰는 도구가 어디에 있는지, 어떻게 굴러가는지 들여다보는 일은 해볼 만하다고 생각합니다.

다음 글에서는 실제로 세운 스택의 세부를 다루어 보겠습니다.

공유

비슷한 글