Ghost 블로그 백업 방법

이 블로그는 Ghost CMS 로 운영되고 있다. 예전에는 AWS 에서 서버를 운영했지만, 지금은 Synology NAS 에서 Docker 로 운영하고 있다. 나처럼 종종 상황에 따라 블로그를 이전해야 하는 이들을 위해 Ghost 블로그를 백업, 복구하는 방법에 대해 설명하겠다.
이 글은 Ghost 5.101.1 버전에서 테스트를 진행했다.

1. 백업 요소
안타깝게도 Ghost 블로그는 버튼 하나로 모든 내용을 백업할 수 없기 때문에 여러 과정이 필요하다. Ghost 에서 구분해서 다뤄야 할 콘텐츠들은 크게 아래와 같다.
- Content 데이터 : Ghost 블로그의 Page 와 Post 와 관련된 정보.
- Route, Redirect : 사용자가 지정한 라우팅, 리다이렉트 정보.
- Theme : Ghost 블로그의 디자인과 관련된 테마 정보.
- 이미지, 미디어 : 글(Content)을 제외한 이미지, 영상 정보.
각 콘텐츠에 대해 적절한 백업과 복원 작업이 필요하다.
2. Content
2.1 Content 백업
Content 데이터는 Ghost 관리자 패널에서 Export 할 수 있다. {서버 주소}/ghost
주소로 접속하면 관리자 대시보드에 접속할 수 있다.
대시보드에서 좌측 하단의 톱니바퀴 아이콘(Settings)를 클릭하면 셋팅 화면으로 이동할 수 있다.

셋팅 화면의 좌측 상단의 검색 창에서 export 를 입력하면 Migration Tools
를 찾을 수 있다. 여기서 Export
탭을 클릭, Export content
버튼을 클릭하면 Content 데이터를 로컬 PC 에 다운로드할 수 있다.

2.2 Content 복원
Content 데이터를 복원할 때는 앞서 Export 한 json 파일을 Import 하면 된다. 앞선 과정과 마찬가지로 관리자 대시보드 - 셋팅 화면에서 export
를 검색한 후, Import
탭에서 Universal Import
버튼을 클릭한다.

팝업되는 창에서 앞서 백업한 json 파일을 선택하면 된다.

3. Route, Redirect
3.1 Route, Redirect 백업 & 복원
Content 와 마찬가지로 Route, Redirect 관련 파일도 Ghost 의 셋팅 화면에서 처리할 수 있다. /ghost
페이지에 접속하여 대시보드로 이동, 좌측 하단의 톱니바퀴 아이콘을 클릭해 셋팅 화면으로 이동한다.
셋팅 화면의 좌측 상단의 검색 창에서 route 라는 단어를 검색하면 Labs
창을 찾을 수 있다. Redirects
의 Download current redirects
버튼은 현재 블로그의 redirect 데이터를 export 하며, Upload redirects file
은 export 된 파일을 선택하여 import 한다. Redirects
의 바로 아래 있는 Routes
도 동일하게 작동한다.

4. Theme
4.1 Theme 백업
Theme 와 관련된 데이터도 셋팅 화면에서 다운로드할 수 있다. 좌측 상단의 검색창에서 theme 를 검색하면 Theme
설정 창을 찾을 수 있다. Change theme
버튼을 클릭하여 테마 설정 화면으로 이동한다.

테마 설정 화면의 좌측 상단에 있는 Installed
탭을 클릭한다.

Installed
탭에는 현재 블로그에 설치된 테마 목록이 보인다. 백업하고자 하는 테마의 우측에 ...
버튼을 클릭하면 Download
버튼이 생긴다. Download
버튼을 클릭하면 해당 테마의 데이터를 zip 형태로 다운로드할 수 있다.

4.2 Theme 복원
import 한 테마를 export 하기 위해서는 앞선 과정처럼 테마 화면으로 이동해야 한다. 테마 화면의 우측 상단의 Upload theme
버튼을 클릭하면 import 할 테마를 선택하는 화면이 팝업된다.

앞서 다운로드한 테마 zip 파일을 선택하면 된다.

이후 테마 화면의 좌측 상단의 Installed
탭에서 업로드한 테마의 Activate
버튼을 클릭해 테마를 활성화하면 된다.
5. 이미지, 미디어
5.1 이미지, 미디어 백업
앞선 과정은 모두 Ghost 의 관리자 패널에서 처리할 수 있었지만, 안타깝게도 이미지, 미디어 데이터는 그럴 수 없다. 직접 블로그를 운영하는 서버에 접속하여 데이터를 백업해야 한다.
우선 ssh, 등의 방법을 이용해 Ghost 블로그를 운영 중인 서버에 접속한다. 그 다음 Ghost 를 설치한 경로로 이동한다. Linux 에서 기본 경로에 설치했다면 /var/www/ghost
일 수도 있다.
ghost 설치 경로를 찾았다면 그 안의 content
디렉토리로 이동한다. content
디렉토리에는 다양한 데이터가 존재하며, 이 중 우리에게 필요한건 images
, files
, media
디렉토리 내 데이터들이다. zip
명령어로 해당 디렉토리의 데이터들을 모두 압축하자.
zip -r ghost-files.zip images/ files/ media/
이후 압축된 zip 파일을 로컬 PC 로 다운로드하여 백업하면 된다.
5.2 이미지, 미디어 복원
이미지, 미디어 데이터를 복원할 땐 앞선 과정에서 백업한 zip 파일을 동일한 경로에 복사하면 된다. 마찬가지로 Ghost 가 설치된 경로 밑의 content
디렉토리로 zip 파일을 이동시킨다. 이후 unzip
명령어로 압축 해제한 데이터를 각자 디렉토리에 복사한다.
unzip -r ghost-files.zip
데이터 복사 후 파일 소유자 권한을 적절하게 설정하자. 아래 명령어에서는 ghost
사용자가 소유하도록 설정했다.
sudo chown -R ghost:ghost content
소유자 권한 설정 이후 ghost 를 재시작하여 설정한 내용을 적용한다.
ghost restart