백업과 복구¶
디스크가 죽었을 때 살아남는 것, 사라지는 것, 그리고 되돌아오는 길.
자동 백업 미구성
2026년 6월 현재 이 홈랩 어디에도 자동 백업이 구성되어 있지 않습니다. 아래 "재현 가능한 것 vs 데이터인 것"에서 데이터로 분류한 항목은 모두 무방비 상태입니다. 해결은 로드맵 항목입니다.
재현 가능한 것 vs 데이터인 것¶
저장소에서 재현 가능 — 모든 호스트의 시스템 구성 전체. 부트스트랩 런북으로 머신을 처음부터 재구축할 수 있으므로 백업이 필요 없습니다.
진짜 데이터 — 호스트에만 존재하는 상태:
| 데이터 | 호스트 | 위치 (NixOS 모듈 기본값) | 유실 시 |
|---|---|---|---|
| Vaultwarden DB + 첨부파일 | midgard | /var/lib/vaultwarden |
치명적 — 모든 비밀번호 |
| Forgejo 저장소 + DB | midgard | /var/lib/forgejo |
치명적 — 다른 곳에 push 안 된 Git 히스토리 전부 |
| Uptime Kuma 설정/이력 | yggdrasil | /var/lib/private/uptime-kuma |
성가심 — 체크를 손으로 재생성 |
| Grafana 대시보드 (비프로비저닝) | yggdrasil | /var/lib/grafana |
낮음 — 주 대시보드는 저장소에서 프로비저닝됨 |
| Prometheus TSDB | yggdrasil | /var/lib/prometheus2 |
수용 가능 — 보존 15d 메트릭 |
| Loki 로그 | yggdrasil | Loki dataDir |
수용 가능 |
키 — 두 가지는 특별히 신경 써야 합니다:
- 호스트 SSH 키(
/etc/ssh/ssh_host_ed25519_key) — sops age 신원이기도 합니다. 호스트가 죽으면 키도 함께 죽고 복구는poby운영자 키가.sops.yaml수신자라는 사실에 의존합니다(현재 등록됨). 재구축 후 새 호스트 키를 등록하고 재암호화하세요 (절차). poby의 age 키와 SSH 개인키 — 신뢰의 뿌리입니다. 홈랩 밖에 사본을 보관하세요 (Vaultwarden 비상 키트 등 — 단, Vaultwarden 안에만 두면 순환 의존이 됩니다).
복구 경로 (호스트 유실 시)¶
- 호스트 재구축: 부트스트랩 런북
- tailnet 재합류 (
sudo tailscale up) — MagicDNS 이름 복구 - 호스트 키가 바뀌었으면 sops 재암호화 후 재배포
- 백업에서 데이터 디렉토리 복원 (백업이 생긴 뒤의 이야기)
- 각 서비스 페이지의 점검 절차 수행, Uptime Kuma 녹색 확인
앞으로 갈 방향¶
가치 순서대로, 자연스러운 첫 단계들:
services.vaultwarden.backupDir— 모듈에 SQLite 백업이 내장되어 있어 가장 비용이 낮은 첫 단계- Forgejo dump 또는 외부 원격으로 저장소 미러링
- midgard
/var/lib상태를 호스트 밖(예: alfheim 또는 오브젝트 스토리지)으로 보내는 restic/borgbackup 작업