서버를 세팅하고 나면 “이제 뭘 올리지?”라는 즐거운 고민이 시작된다. 셀프호스팅 디렉토리를 뒤지면 수백 개의 후보가 나오지만, 첫 서비스를 고르는 기준은 하나면 충분하다. 지금 매달 돈을 내거나, 불편함을 참고 있는 것부터. 추상적인 “좋아 보이는 것”이 아니라 구체적인 불편을 해소하는 서비스여야 꾸준히 쓰게 되고, 꾸준히 써야 운영도 배우게 된다.
불편함 → 서비스 매칭
사진이 클라우드 용량을 다 먹는다 → Immich
스마트폰 사진 백업은 셀프호스팅 동기가 가장 강한 영역이다. Immich는 구글 포토와 유사한 사용성을 목표로 하는 사진 관리 서버로, 모바일 앱의 자동 업로드, 얼굴·사물 검색, 타임라인·앨범 기능을 갖추고 있다. 활발히 개발되는 프로젝트라 업데이트가 잦은 편이므로, 컴포즈 운영 원칙에서 말한 “업데이트 전 백업” 습관이 특히 중요하다.
영상·음악을 기기마다 옮겨가며 본다 → Jellyfin
Jellyfin은 완전 무료·오픈소스 미디어 서버다. 서버에 영상·음악을 두면 TV, 폰, 태블릿 어디서든 스트리밍으로 보고, 시청 기록도 기기 간에 동기화된다. 비슷한 상용 제품과 달리 기능 제한이나 구독이 없다는 것이 선택 이유가 된다. 한 가지 알아둘 것: 화질 변환(트랜스코딩)이 필요한 환경이라면 CPU/GPU 성능이 중요해진다. 하드웨어 선택 글에서 미니PC를 권한 이유 중 하나다.
비밀번호 관리자를 구독하기 싫다 → Vaultwarden
Vaultwarden은 Bitwarden 클라이언트와 호환되는 경량 서버 구현이다. 공식 Bitwarden 앱·브라우저 확장을 그대로 쓰면서 데이터는 내 서버에 둔다. 리소스를 거의 안 먹어서 라즈베리파이급 장비에서도 잘 돈다. 단, 비밀번호라는 데이터의 성격상 백업과 HTTPS는 선택이 아니라 전제 조건이다.
파일·메모·캘린더가 흩어져 있다 → Nextcloud
Nextcloud는 파일 동기화를 중심으로 캘린더, 연락처, 메모까지 묶는 종합 플랫폼이다. 기능이 많은 만큼 무겁고 설정 항목도 많아서, 개인적으로는 “첫 서비스”보다는 위의 단일 목적 서비스로 운영 감각을 익힌 뒤에 들이는 것을 권한다.
한 번에 하나씩 — 이게 규칙이다
추천 목록을 보면 다 올리고 싶어진다. 참아야 한다. 첫 달에는 서비스 하나만 올리고 2주 이상 실제로 쓰면서 로그 보는 법, 업데이트하는 법, 백업 확인하는 법을 익히는 것이 좋다. 이유는 단순하다.
- 문제가 생겼을 때 변수가 하나면 원인도 하나다. 동시에 셋을 올리면 디버깅 난도가 곱으로 뛴다.
- 안 쓰는 서비스는 방치되고, 방치된 서비스는 업데이트가 밀려 보안 구멍이 된다.
- “운영 가능한 개수”는 생각보다 적다. 서비스 수보다 안정성이 만족도를 결정한다.
올해 3월 지금 서버를 새로 설치했을 때의 기록을 거슬러 보면, 설치 이틀 뒤 처음 올린 컨테이너는 추천 목록의 근사한 서비스가 아니라 dockge(컴포즈 스택을 웹에서 관리하는 도구)였고, 다시 나흘 뒤 두 번째가 wg-easy(VPN)였다. 당시 내 1순위 불편이 “밖에서 집 서버에 안전하게 닿을 길”이었기 때문이다. 석 달째인 지금도 이 서버의 상시 컨테이너는 그 둘뿐이고, 올렸다가 정리한 서비스는 아직 없다 — “좋아 보여서”가 아니라 “없으면 당장 아쉬워서” 올린 것들이라 살아남았다고 생각한다. 미디어 서버나 사진 백업처럼 무거운 영역은 NAS가 따로 맡고 있어 이 서버의 목록이 짧기도 하다. 돌아보면 첫 서비스의 기준이 “구체적 불편”이어야 한다는 본문 주장의 표본이 된 셈이다.
후보를 고를 때 보는 네 가지 신호
위 목록 밖에서 직접 후보를 찾게 될 때를 위해, 서비스의 “운영 가능성”을 가늠하는 기준을 남긴다.
- 개발 활성도 — 저장소의 최근 커밋·릴리스 주기. 마지막 릴리스가 수년 전인 프로젝트는 보안 패치도 멈춰 있을 가능성이 높다.
- 문서의 질 — 공식 설치 문서에 docker compose 예시가 정리되어 있는가. 문서가 부실한 프로젝트는 문제가 생겼을 때 비용이 모두 사용자에게 전가된다.
- 데이터 내보내기 — 표준 포맷으로 데이터를 꺼낼 수 있는가. 셀프호스팅의 목적이 데이터 주권인데, 갈아탈 수 없는 서비스에 갇히면 본말전도다.
- 요구 리소스 — 문서에 명시된 권장 메모리. 내 서버의 여유 메모리와 비교해 무리가 없는지 미리 확인한다.
이 네 가지를 통과한 서비스는 대체로 “올린 뒤에도 행복한” 서비스였다.
시작 전 공통 체크
어떤 서비스를 고르든 올리기 전에 세 가지를 확인한다.
- 데이터 위치: 이 서비스의 데이터 폴더가 어디인지 파악하고 백업 대상에 추가했는가
- 재시작 정책: compose에
restart: unless-stopped가 있는가 (자동 복구 글 참고) - 접근 범위: 집 안에서만 쓸 것인가, 밖에서도 쓸 것인가 — 밖이라면 VPN이 기본값이다
첫 서비스가 한 달 동안 말썽 없이 돌아가고 있다면, 그때 두 번째를 올리자. 그 무렵이면 “뭘 올리지”가 아니라 “뭘 올려도 운영할 수 있겠다”는 감각이 생겨 있을 것이다.