Parse Serverは、以前はParse.comが提供していたバックエンドサービスをオープンソース化したもので、独自のサーバーにデプロイして使用することができます。ここでは、Ubuntu 14.04でParse Serverをセットアップし、動作させる手順を詳細に説明します。
必要な環境と準備
まず、Parse Serverを動かすために必要なものを準備します。Ubuntu 14.04に以下のソフトウェアがインストールされていることを確認してください。
- Node.js – Parse ServerはNode.jsで動作します。
- MongoDB – Parse ServerはデータベースとしてMongoDBを使用します。
- Git – ソースコードをクローンするためにGitを使用します。
以下の手順でこれらをインストールします。
1. Node.jsのインストール
まず、Node.jsをインストールします。Ubuntu 14.04にインストールするには、以下のコマンドを実行します。
bashsudo apt-get update sudo apt-get install -y nodejs npm
その後、Node.jsのバージョンを確認します。Parse Serverは、Node.jsのバージョン8.x以上を必要とします。
bashnode -v
2. MongoDBのインストール
次に、MongoDBをインストールします。MongoDBはParse Serverのデータベースとして必要です。
bashsudo apt-get install -y mongodb
インストールが完了したら、MongoDBサービスを起動します。
bashsudo service mongodb start
MongoDBが正しく動作しているか確認するには、以下のコマンドを使ってMongoDBに接続します。
bashmongo
接続後、exit
コマンドでMongoDBを終了します。
3. Gitのインストール
Gitがインストールされていない場合、次のコマンドでインストールします。
bashsudo apt-get install -y git
4. Parse Serverのインストール
Parse Serverはnpmを使ってインストールします。以下のコマンドを実行してParse Serverをインストールします。
bashsudo npm install -g parse-server
インストールが完了したら、Parse Serverのインストールが成功したことを確認するために、以下のコマンドを実行します。
bashparse-server --version
5. Parse Serverのセットアップ
Parse Serverをセットアップするには、まず設定用のディレクトリを作成します。
bashmkdir parse-server
cd parse-server
次に、Parse Serverの設定ファイルを作成します。例えば、index.js
という名前で作成します。
bashtouch index.js
その中に以下のように記述します。
javascriptconst express = require('express');
const { ParseServer } = require('parse-server');
const app = express();
// Parse Serverの設定
const api = new ParseServer({
databaseURI: 'mongodb://localhost:27017/dev', // MongoDBの接続先
cloud: './cloud/main.js', // クラウドコード(任意)
appId: 'myAppId', // アプリケーションID
masterKey: 'myMasterKey', // マスターキー(セキュリティ上重要)
serverURL: 'http://localhost:1337/parse', // サーバーURL
});
// ExpressアプリケーションにParse Serverをマウント
app.use('/parse', api);
// サーバーの起動
const port = 1337;
app.listen(port, () => {
console.log(`Parse Server is running on http://localhost:${port}/parse`);
});
上記のコードでは、MongoDBに接続するURI(databaseURI
)、アプリケーションID(appId
)、マスターキー(masterKey
)を設定しています。これらはParse Serverを運用する際に非常に重要な設定情報です。
6. Parse Serverの起動
設定が完了したら、以下のコマンドでParse Serverを起動します。
bashnode index.js
これで、Parse Serverが起動します。ブラウザでhttp://localhost:1337/parse
にアクセスすると、Parse Serverのエンドポイントにアクセスできることを確認できます。
7. クラウドコードの設定(オプション)
Parse Serverにはクラウドコードを利用する機能があります。これにより、サーバーサイドのビジネスロジックをJavaScriptで記述できます。クラウドコードを利用する場合、cloud/main.js
にコードを記述します。
例えば、以下のような簡単なクラウドコードをcloud/main.js
に書くことができます。
javascriptParse.Cloud.define('hello', function(req, res) {
res.success('Hello, world!');
});
このクラウドコードは、hello
という名前の関数を定義しており、Parse Serverがリクエストを受け取った際に「Hello, world!」というメッセージを返します。
8. Parse Dashboardのインストール(オプション)
Parse Serverには、Parse Dashboardという管理インターフェースがあります。これを使うことで、データの管理やアプリケーションの設定が簡単に行えます。Parse Dashboardをインストールするには、以下のコマンドを実行します。
bashsudo npm install -g parse-dashboard
インストール後、Parse Dashboardを設定するために、dashboardConfig.json
という設定ファイルを作成します。
bashtouch dashboardConfig.json
その中に以下の内容を記述します。
json{
"apps": [
{
"appId": "myAppId",
"masterKey": "myMasterKey",
"serverURL": "http://localhost:1337/parse",
"appName": "MyApp"
}
],
"users": [
{
"user": "admin",
"pass": "adminPassword"
}
]
}
この設定ファイルで、Parse Dashboardにアクセスするための認証情報(ユーザー名とパスワード)を設定しています。設定が完了したら、以下のコマンドでParse Dashboardを起動します。
bashparse-dashboard --config dashboardConfig.json
これで、ブラウザでhttp://localhost:4040
にアクセスすると、Parse Dashboardにアクセスできるようになります。
9. サービスとしてParse Serverを実行
サーバーが正常に動作していることを確認したら、Parse Serverを常にバックグラウンドで動かすために、systemd
サービスを作成することをお勧めします。以下の手順でサービスを作成します。
- サービスファイルを作成します。
bashsudo nano /etc/systemd/system/parse-server.service
- 以下の内容をサービスファイルに記述します。
ini[Unit]
Description=Parse Server
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/your/index.js
Restart=always
User=ubuntu
Group=ubuntu
Environment=NODE_ENV=production
WorkingDirectory=/path/to/your/parse-server
[Install]
WantedBy=multi-user.target
- サービスをリロードして有効にします。
bashsudo systemctl daemon-reload
sudo systemctl enable parse-server
sudo systemctl start parse-server
これで、Parse Serverは自動的に起動し、常にバックグラウンドで実行されるようになります。
結論
このガイドでは、Ubuntu 14.04上にParse Serverをインストールして設定する方法を詳細に説明しました。Parse Serverを使うことで、バックエンド機能を簡単に提供でき、モバイルアプリケーションやウェブアプリケーションの開発が効率的になります。