Ghost 블로그 업데이트 후기

블로깅 플랫폼인 Ghost를 나는 잘 사용하고 있었다. 딱 하나의 문제라면 내가 root유저로 설치를 했다는것.
그것이 1.14버전(아마 이쯤일거다)부터 문제가 생기기 시작했다.

평소에는 root 유저로써 잘 작동하던것이 어느순간부터 유저를 새로 만들어서 유저권한을 덮어씌우라 경고했다.
이때부터 내 블로그에는 502 Bad Gateway가 뜨기 시작했고, 데이터를 백업할 여지도 없이 내 블로그의 자료들은 모두 접근이 금지되었다.

설치전에 아무런 경고도 없었고, ghost의 모든 마이그레이션을 시도해보았지만 knex-migrator를 비롯 모든 마이그레이션이 작동하지 않았다.
이렇게 블로그 포스팅을 1년가량 중단하게 될뻔했지만, 최근에서야 시간이 나서 집요하게 건드린 결과에서야 드디어 내 블로그를 되찾을 수 있게 되었다.

나와 같은 문제를 겪으실만한 사람들을 위하여 어떻게 해결했는지 잠시 적어놓기라도 하겠다.

환경

운영체제 : CentOS 7.x
유저환경 : root으로 설치

방법

  1. npm uninstall -g ghost-cli를 통한 ghost-cli 업데이트본 삭제
  2. npm install -g ghost-cli@1.4.2로 ghost-cli 최저버전으로 롤백
  3. ghost폴더 안의 current 심볼릭 링크 업데이트 이전으로 롤백(마지막이 1.5.2가 남아있었다)
  4. ghost run을 통하여 development 상태로 진행
  5. 관리자 대시보드의 Labs항목에 content export를 통한 content 추출
  6. 새로운 유저 생성(본인은 ghostuser로 만들었다. 유저명은 ghost로 하면 안된다 메뉴얼상에도 안나와있는 내용이다)
    이것때문에 내가 10시간넘게 뻘짓했다.
  7. 새로운 유저에게 sudoers권한을 부여(usermod -aG wheel username)
  8. 새로운 폴더에 ghost설치(ghost install)
  9. ghost 설정파일 기존에 맞춰 롤백(포트번호, 주소)
  10. ghost start로 오픈되는지 확인
  11. ghost 대시보드에서 내용 import에 첨부파일 추가
  12. 첨부파일들은 복원되지 않았으므로 첨부파일을 기존 ghost 폴더에서 불러옴
  13. chown -R username:username content/images/ 을 통하여 첨부파일 권한 변경
  14. 필요한경우 테마파일도 첨부파일과 같이 이전하여 테마도 복원

대안 선택

오픈소스로써 개발자에게 큰 책임은 없다는걸 나도 개발자로써 알고있다.
그렇다고 production 빌드에 서비스중단이 생길만한 만행을 저지르는것이 용납된다고 보진 않는다.
그렇기에 ghost대신에 VuePress의 블로그 기능이 제작되면 VuePress 기반으로 모두 싹 옮길 예정이다.
대안으로써 Jekyll이라던지, Hexo와 같은 여러 대안들이 존재한다는걸 알고있지만 이들은 솔직히 말해서 완벽하지 않다.
Jekyll은 윈도우 자체를 공식지원 하지않고(bash로도 불안정하게 작동한다), Hexo는 중국어로만 커뮤니티가 활성화되어있어 큰 자료가 없다.
VuePress자체도 새로생긴 저장소이며 블로그 기능도 완벽하지 않은 상태이므로 블로그로써는 쓰기 약간 아쉽겠으나, Vue의 컴포넌트를 사용하여 마크다운 블로깅이 가능하다는점이 나에게 상당히 큰 장점으로써 이끌리게 되었다.

Ghost는 이전까지 글작성하는 UX자체가 상당히 만족스러웠기에 계속 사용하였던 것이였다. 그러나 이러한 UX를 해치는 한번의 극심한 행위 덕분에 나는 Ghost를 멀리하려고 한다.
계속 글 작성은 하겠지만 블로그 플랫폼의 업데이트는 하지않을것이고, 이러한 나쁜경험은 더이상 없었으면 한다.