이제 앱들과 SDK 통신할 Parse 서버를 구축한다.

아래 문서들을 참조하는데, 오픈 소스이다 보니 버그도 간혹 있으므로 참고한다. (현재 v2.1.6은 문제 없었음.)


https://github.com/ParsePlatform/parse-server

https://github.com/ParsePlatform/parse-server/wiki

https://www.npmjs.com/package/parse-server



1. nodejs & npm 설치


Node.js 버전 4.3 이상을 요구하므로 4.x 로 설치한다.

함께 설치되는 npm 도 최신버전으로 업데이트한다.

Python 2.x 도 필요하지만 기본적으로 2.7 버전대가 설치되므로 -v 로 버전 확인만 한다.


# curl -sL https://deb.nodesource.com/setup_4.x | bash -
# apt-get install -y nodejs
# apt-get install -y build-essential
 
# npm install npm -g
# nodejs -v
v4.4.0
# npm -v
3.8.1
cs



2. parse-server 설치


$ npm install -g parse-server mongodb-runner
$ mongodb-runner start
cs


(mongodb-runner 는 머하는지 모르겠음; 없어도 정상적으로 동작함)

위와 같이 npm 글로벌 설치를 하면 /usr/lib/node_modules/parse-server 가 홈디렉토리가 된다.

파스 서버의 설정 파일은 parse-server 디렉토리 밖의 특정 장소에 저장하는 것이 좋다. (npm update 시 삭제될 수 있음.)

아래 설정 파일 항목의 appId 와 masterKey 값은 https://dashboard.parse.com/apps 대시보드의 [App Settings - Security & Keys] 메뉴를 참고한다.

push 설정의 경우, 기존 푸시 사용자는 https://dashboard.parse.com/apps 대시보드의 [Push] 메뉴를 참고하고, 신규 사용자는 해당 디바이스 개발자에게 문의ㅎ


$ vi /usr/lib/node_modules/config-parse.json
{
  "databaseURI""mongodb://username:password@mongodb-ip/database-name",
  "appId""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "masterKey""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "push": {
    "android": {
      "senderId""1111111111111",
      "apiKey""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    "ios": {
      "pfx""/file/path/to/development_XXX.p12",
      "bundleId""com.oops4u.parse",
      "production"false
    },
    {
      "pfx""/file/path/to/product_XXX.p12",
      "bundleId""com.oops4u.parse",
      "production"true
    },
    {
      "pfx""/file/path/to/proudct_enterprise_XXX.p12",
      "bundleId""com.oops4u.enterprise.parse",
      "production"true
    }
  }
});
cs



3. parse-server 실행


$ parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI DATABASE_URI ...
cs


이런 식으로 실행을 해야 하지만 설정 파일을 미리 만들어 놓았으므로, 아래와 같이 설정 파일만 호출하면 된다.


# parse-server /usr/lib/node_modules/config-parse.json
Configuation loaded from /usr/lib/node_modules/config-parse.json
databaseURI: mongodb://username:password@your_domain/database_name
appId: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
masterKey: ***REDACTED***
push: [object Object]
port: 1337
mountPath: /parse
maxUploadSize: 20mb
serverURL: http://parse-server-domain:1337/parse
 
parse-server running on http://parse-server-domain:1337/parse
cs


기본적으로 parse-server 는 1337 포트를 사용한다.

변경하고 싶다면 parse-server 실행시 --port 1338 등의 매개변수를 추가할 수 있으며, 해당 포트는 방화벽 등에서 허용한다.

더 많은 옵션은 parse-server -h 로 확인.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  2개가 달렸습니다.
  1. 슬슬 저도 마이그레이션을 해야하는데 영문 문서 꼼꼼하게 읽기가 귀찮아서(...) 미루던 참이었는데 잘 봤습니다. DB 마이그레이션은 마쳤고 대시보드도 설치 후 forever로 백그라운드에서 돌아가게 설정하고 nginx 프록시로 도메인까지 물려줬는데 서버 부분에서 궁금한 점이 있어서 댓글 남깁니다.

    Parse Server 저장소 위키에서는 앱을 express를 통해 설정하도록 안내하고 있는데 글에서는 json config로 설정하셨는데 혹시 양쪽의 차이점이라거나 json config 파일 이용시 2개 이상의 앱을 한 서버에서 굴릴때도 따로 처리할 부분이 있는지 궁금합니다.
    • 음... 그사이에 버전업이 되었네요. 이 글을 쓸 당시에 express 얘기가 있었나 가물가물하네요 ^^; 오픈소스치고 파스서버가 유난히 버전업이 심한듯 합니다. 그만큼 관심갖는 분들이 많은듯! 차이라면 아마도 웹서버에 파스서버를 마운트 시키는게 아닐까 싶네요. 2개 이상의 앱은 포트만 추가만 잘 해주시면 될것 같구요~
secret