dotCloud + node + MongoDB
久々に使ったら設定ファイルの書き方ど忘れ&細々とした部分が変わっていたのでメモ。
自分用なので雑です。
アプリケーションの構成は以下の通り。
application - server - server.js - public - css とか js とか - views - ejs とか
1. dotcloud.yml を書く
server: type: nodejs approot: server db: type: mongodb
タブが入ってると怒られるので、空白に置換した。
2. server/package.json を書く
{ "name": "myapp", "version": "0.1.0", "dependencies": { "moduleName": "version" } }
バージョンは "*.*.*" の形式じゃないと怒られる。
3. server/supervisord.conf を書く
[program:node] command = node server.js directory = /home/dotcloud/current
4. push する
$ pwd /path/to/application $ dotcloud create app $ dotcloud push app .
5. MongoDB のコンフィグを入手する
$ dotcloud info app.db config: ... mongodb_password: password ... ... ports: ... url: mongodb://root:password@host:port ...
6. MongoDB にユーザを作る
$ dotcloud run app.db mongo # mongo MongoDB shell version: 2.0.2 connecting to: test > use admin switched to db admin > db.auth('root', 'password'); 1 > use myappdata > db.getSisterDB('admin').auth('root', 'password'); 1 > db.addUser('myappdatauser', 'my_password'); 1
7. サーバのスクリプトを書き換える
var mongo = require('mongodb'); var server = new mongo.Server('host', port, {}), db = new mongo.Db('myappdata', server); db.open(function() { db.authenticate('myappdatauser', 'my_password', function() { }); });
おわり。
おまけ
ログを見る
$ dotcloud logs app.server
ssh
$ dotcloud ssh app.server
このサービスを制限付きとはいえ、タダで提供してくれるのは非常にありがたいですね。