背景
何かと便利なEtherpad-liteですが、ネットが無い状態では使えないのが玉にきずです。そこで、「ネットがなければローカルにサーバ立てればいいじゃない」ということで、Etherpad-liteをWindowsにサービスとしてインストールします。ブラウザのブックマークにhttp://localhost:9001
を入れておけば、メモ帳の代わりとして、Etherpad-liteのプラグインも含むいろんな機能が使えます。サービス化にはNSSMを使います。バックエンドのDBはsqlite3を使います。
使用するソフトウェアのバージョンは次の通りです。たぶん他のバージョンでも同じ手順で大丈夫です。
- OS: Windows7(64bit)
- etherpad-lite-win: 1.5.7 (etherpad-lite-win-1.5.7-83597562c1.zip)
- node.js: v0.10.25
- NSSM: 2.24
大まかな流れ
- node.jsのインストール
- etherpad-liteのインストール
- sqlite3のインストール&etherpad-liteの設定
- サービス化
具体的な手順
node.jsのインストール
node.jsのインストーラをダウンロードして起動します。特筆することありません。
etherpad-liteのインストール
Windows用のzipをダウンロードして展開します。展開先のパス名が長いと、中のファイルがパス名長さの制限に引っ掛かる場合があるので、パス名の長さには注意しましょう。「C:\Program Files (opt)\etherpad-lite-win」くらいなら大丈夫です。
次に、node.jsのインストール先フォルダ(C:\Program Files\nodejs)の内容をetherpad-liteフォルダに上書きします。
具体的には、node.exeをnodejs側からetherpad-lite-win側に上書きコピー。node_modulesフォルダは既にあるので、その中のnpmフォルダをnodejs側からetherpad-lite-win側にコピー。その他のファイル/フォルダもnodejs側からetherpad-lite-win側にコピーとなります。
sqlite3のインストール&設定
コマンドプロンプトを開いて、etherpad-liteのインストール先フォルダに行きます。
まず、proxy環境下の場合はnpmのproxy設定を行います。proxy環境下でなければこの手順は不要です。
npm config set proxy http://proxy.your.domain:8080
sqlite3をインストールします。
npm i sqlite3
次にsqlite3を使えるように設定ファイル(settings.json)を変更します。関係あるところだけ抜粋すると下記の通りです。
//The Type of the database. You can choose between dirty, postgres, sqlite and mysql
//You shouldn't use "dirty" for for anything else than testing or development
"dbType" : "sqlite",
//the database specific settings
"dbSettings" : {
"filename" : "var/etherpad.db"
},
ここまでできたら、一旦動作確認します。
start.bat
http://localhost:9001
にアクセスしてひと通り動作すればOKです。コマンドプロンプトでCtrl-C
で終了します。
サービス化
NSSMが無ければインストールします。といっても、実行ファイルを適当な場所に置くだけです。
そして、コマンドプロンプトを管理者として実行して、NSSMを起動します。
nssm install Etherpad-lite
NSSMのGUIが表示されて、Applicationタブが開くので次の通り入力します。
- Pathには(etherpad-lite-winにコピーした先の)node.exeのパスを入力します。(入力欄右側の「...」をクリックするとファイル選択ダイアログが開くので、node.exeを選択します。)
- Startup directoryはnode.exeのあるフォルダが自動的に設定されます。
- Argumentsには「node_modules\ep_etherpad-lite\node\server.js」を指定します。これはstart.batの中に書いてあるパラメータと同じです。
入力が済んだら、「Install service」をクリックしてNSSMを終了します。
サービスの、起動・停止や自動起動の設定はWindowsのサービス管理画面で行います。
サービスを起動し、再度http://localhost:9001
にアクセスして、Etherpad-liteが動作することを確認しましょう。なんなら、Windows自体も再起動してみて、ちゃんとEtherpad-liteが立ち上がってくるか確認しましょう。
以上でインストールは完了ですが…
注意
ローカルで動いているとはいえ、ネットワーク経由で他のコンピュータからアクセスされるとEtherpad-liteが見えてしまいます。他人に見せる必要が無ければ、Windows Firewallでもsettings.jsonでも良いのでアクセスコントロールしましょう。