1.데이터의 형태 파악하기
모든 것은 배포 디렉터리의 ./data 아래에 있습니다: database.sqlite(채팅, 기억, 관계, 일정, 노트 등 모든 구조화 데이터)와 미디어 파일. 상태가 다른 곳에 흩어져 있지 않으며 외부 데이터베이스도 관여하지 않습니다.
2.백업
가장 안전한 방법: 먼저 서비스를 중지하고(docker compose down 또는 프로세스 중지) data 디렉터리 전체를 복사합니다. 중지 없이 백업하려면 SQLite 내장 온라인 백업을 사용하세요: sqlite3 database.sqlite ".backup ./backup-날짜.sqlite" — WAL 모드 파일을 핫 카피하는 것보다 신뢰할 수 있습니다. 메이저 업그레이드 전 백업을 습관으로 만드세요.
3.새 머신으로 이전
대상 머신에 배포 문서대로 설치하되 아직 시작하지 말고, 백업한 data 디렉터리를 배포 디렉터리 아래 원래 위치에 되돌려 놓은 뒤 서비스를 시작하세요 — 월드, 주민들의 기억, 전체 기록이 그대로 돌아옵니다.
4.업그레이드
git pull로 새 코드를 받은 뒤: docker compose down → docker compose build --no-cache → docker compose up -d. ./data의 데이터베이스는 지워지지 않습니다. 예전 환경에서 데이터베이스를 api/ 아래에 두었더라도 새 버전이 시작할 때 ./data/database.sqlite로 자동 이전합니다.
5.업그레이드 주의: 프런트엔드 구 자산을 지우지 말 것
오래된 apps/app/dist/assets를 일부러 삭제하지 마세요: 프런트엔드의 지연 로딩 청크는 콘텐츠 해시를 달고 있고, 열려 있는 옛 탭이 페이지를 이동할 때 과거 청크를 여전히 요청합니다 — 옛 파일을 남겨 두면 404를 피할 수 있습니다. 또한 서버는 시작 시 단일 사용자 월드 마이그레이션을 자동 실행합니다: 구 DB에 사용자가 0명이면 플레이스홀더 월드 오너를 자동 생성, 1명이면 그대로 사용, 여러 명이면 가장 먼저 등록한 사용자를 남깁니다(나머지 사용자의 데이터는 정리되며 자동 병합은 하지 않습니다).
관련 질문
셀프 호스팅한 Enclave를 새 버전으로 업데이트하려면 어떻게 하나요?
git pull로 최신 코드를 받은 뒤 docker compose up -d로 재시작하면 새 버전으로 롤포워드됩니다. CHANGELOG에 각 버전의 호환성 깨짐 변경 사항이 표시되어 있으니, 업그레이드 전에 한 번 훑어보면 됩니다.제 모든 데이터를 내보내거나 삭제할 수 있나요?
셀프 호스팅에서는 데이터가 곧 컴퓨터의 데이터베이스 파일과 미디어 디렉터리입니다. 복사하면 백업, 가져가면 이전, 지우면 완전 삭제 — '지울 수 없는 사본'은 없습니다. 매니지드 클라우드 계정에는 현재 원클릭 내보내기 버튼이 없지만 언제든 탈퇴할 수 있습니다. 탈퇴 후 데이터는 영구 보관 처리되어 복구 불가하며, 휴대폰 번호와 이메일은 즉시 해제됩니다.제 대화 데이터는 안전한가요? 학습에 사용되나요?
셀프 호스팅 모드에서는 당신의 대화가 본인의 디스크에만 저장되어 기기를 벗어나지 않으며 어떤 제3자의 학습에도 사용되지 않습니다. 모델 계층은 OpenAI, Anthropic 등의 클라우드 API에 연결할 수 있고, 로컬 Ollama / vLLM으로 교체해 완전 오프라인으로 실행할 수도 있습니다. 어떤 대화를 어느 모델로 보낼지는 당신이 결정합니다.Enclave는 어떤 데이터베이스를 사용하나요? 직접 구축해야 하나요?
별도 구축이 필요 없습니다. Enclave는 데이터베이스와 벡터 인덱스를 내장하고 있어, docker compose로 띄울 때 다른 구성 요소와 함께 로컬에서 실행됩니다. 문서, 대화, 기억은 모두 구조화되어 그 안에 저장되며, 셀프 호스팅 모드에서는 이 데이터가 당신의 기기에만 존재합니다.