코딩/라즈베리파이

라즈베리파이에 고스트 블로그 설치하기

드리프트 2019. 3. 20. 10:32
728x170

 

 

라즈베리파이에 고스트(GhostJS) 블로그 설치하기 - 1편

 

유명 포털의 블로그 시스템을 이용하기 보다 직접 만들고 싶다는 마음때문에 React로 이것 저것 만들어 봤는데요.


그중에 NextJS, GatsbyJS, Navi 등 전문적인 Static Site Generator 프레임웍을 이용해 봤습니다.


그런데, 매번 가시지 않는 불만은 결국 CMS(Content Management System) 이었습니다.

 

매번 블로그를 갱신할때 마다 npm build하고 github master에 merge하고 불편했었는데, 

 

Ghost 블로깅 시스템을 처음 봤을 때 바로 이거라고 생각했습니다.


사실 Strapi CMS 툴을 처음 접했었는데 좀더 구글링 해본 결과 고스트(GhostJS) 시스템이 가장 완성도가 높다고 판단되어 직접 구축해 보기로 결정했습니다.

고스트(GhostJS)는 직접 web server를 제공해주고, 

 

REST API까지 보유한 완벽한 프레임웍인데 집 컴퓨터에 설치시 로컬에서만 블로그 작성이 가능해서 

 

외부에서 설정 변경등 수정사항을 반영시키기 어렵다고 판단해서 결론적으로 언제든지 접근할 수 있는 개인 서버에 설치했습니다.

집에서 간단히 ftp, torrent, minidlna 서버로 돌리고 있는 라즈베리파이에 올려 보기로 했습니다.


라즈베리파이에 고스트(GhostJS) 설치하기

먼저 고스트(GhostJS)가 지원하는 NodeJS가 설치 됐다고 생각하고 진행하겠습니다.

npm을 이용해 고스트(GhostJS)를 전역으로 설치합니다.

 

npm install -g ghost-cli


그리고 작업 폴더를 선택합니다. 

 

저는 Home 디렉토리 밑에 Coding 이란 폴더에 ghost-blog란 폴더를 만들었습니다.


그리고 ghost-cli를 실행합니다.

 

mkdir Coding/ghost-blog && cd ~/Coding/ghost-blog
ghost install local



위에서 local이란 옵션은 가장 기본적인 옵션으로 DB는 sqlite3를 사용하고, 

 

외부 도메인 설정을 하지 않는다는 조건입니다.


에러 없이 설치가 완료되면 ghost 데몬이 돌고 있는 주소가 나타나는데 보통


http://localhost:2368/ghost

입니다.

 

웹브라우저를 열고 위 주소로 연결해 보면 Admin계정을 만들라고 합니다. 

 

Admin계정은 말 그대로 관리자 계정으로 설치한 해당 블로그 시스템의 관리자란 뜻입니다. 

 

고스트 블로그는 Author(작가)를 추가할 수 있어 각 작가가 글을 올리면 Admin계정이 퍼블리싱을 하는 시스템입니다.


근데 제 혼자 쓰는 시스템이라 저는 Admin이면서 Author(작가)가 되는 거라 Admin계정을 글 작성에 그냥 이용하면 됩니다.

 

 


고스트 설정파일 건들기

Admin(관리자) 계정까지 만들었으면 본격적인 블로그 작성전에 고스트(GhostJS) 설정을 마저 마무리할 필요가 있습니다.


먼저 ghost 데몬이 실행되고 있는지 살펴 봅시다.

 

ghost ls 

me │ Location │ Version │ Status │ URL │ Port │ Process Manager │ 
ghost-local-1 │ ~/Coding/ghost-blog │ 2.16.4 │ running(development) │ http://xxxxxx.asuscomm.com:2369/ │ 2368 │ local │ 

 

잘 실행되고 있네요. 

 

이제 잠시 고스트 서버를 중지해 봅시다.

 

ghost stop



이제 고스트 서버가 정지되어 있으니까 본격적으로 고스트 설정파일을 건들어 봅시다.

 

먼저 고스트(GhostJS)가 설치된 디렉토리로 이동합니다.


설치된 파일을 보면 몇가지가 안됩니다.


기본적으로 설정파일은 json 파일인데 config.development.json입니다.

 

파일을 열어보겠습니다.

 

cat config.development.json

{
  "url": "http://localhost:2368/",
  "server": { "port": 2368, "host": "127.0.0.1" },
  "database": {
    "client": "sqlite3",
    "connection": {
      "filename": "/home/username/Coding/ghost-blog/content/data/ghost-local.db"
    }
  },
  "mail": { "transport": "Direct" },
  "logging": { "transports": ["file", "stdout"] },
  "process": "local",
  "paths": { "contentPath": "/home/username/Coding/ghost-blog/content" }
}

 

여기서 변경할 부분은 url, server 부분입니다.


url은 현재 라즈베리파이가 이용하고 있는 ip 주소를 이용하면 됩니다. 

 

저는 라우터에 159번으로 라즈베리파이가 물려 있어서 다음과 같이 변경했습니다.

 

{
  "url": "http://192.168.29.159:2368/",
  "server": { "port": 2369, "host": "192.168.29.159" }
  
  ...
  ...
  
}

 

또한 라우터 DDNS나 포트포워딩을 이용하면 외부네트웍에서도 접속할 수 있습니다. 

 

이 때 url 부분을 DDNS로 설정한 주소를 입력하면 됩니다.

 

{
  "url": "http://username.asuscomm.com:2368/",
  "server": { "port": 2369, "host": "192.168.29.159" }

  ...
  ...
  
}

 

이제 설정이 마무리 된거 같은데 config.development.json 파일을 저장하고 다시 고스트를 실행하면

 

development 상태라고 warning을 주는데 이게 보기 싫다면 config.development.json 파일을

 

config.production.json 파일로 복사하면 고스트 실행이 production 모드로 이루어집니다.

이제 다시 고스트 서버를 실행해서 블로그 작성을 하면 되는데 

 

다음편에는 테마나 Disqus 댓글창을 설치해 보도록 하겠습니다.

 

 

그리드형