Ubuntu14.04にDocPadアプリケーションをデプロイする方法
序章
このチュートリアルでは、DocPadで作成されたアプリケーションをDigitalOcean上の標準の64ビットUbuntu14.04イメージにデプロイする方法を学習します。 DocPadは、Node.jsを利用した静的サイトジェネレーターであり、単独で使用することも、Node.jsアプリと一緒に使用してサイトのコンテンツを駆動することもできます。
このチュートリアルを読んだ後、root以外のユーザーとしてポート80でDocPadを提供できるようになり、DocPadアプリがクラッシュした場合に自動的に再起動することを確認してください。
前提条件
始める前に、次のものが必要です。
- Ubuntu14.04ドロップレット
- DocPadのインストール、構成、および実行に使用するsudo権限を持つユーザーを作成します: Ubuntu 14.04VPSでユーザーを追加および削除する方法。 このチュートリアルでは、このユーザーをdocpadと呼びます。
このチュートリアルでは、docpadユーザーとしてすべてを行う必要があります。
ステップ1— Git、Node.js、およびNPMをインストールする
このセクションでは、DocPadの前提条件をインストールします。
サーバーのパッケージリストが更新されていることを確認してください。
sudo apt-get update
Git をインストールします。これにより、デフォルトのDocPadアプリケーションまたは独自のカスタムアプリケーションをGitリポジトリからデプロイできます。
sudo apt-get install git
Node.jsをWebサーバーとしてインストールします。
sudo apt-get install nodejs
nodeの代わりにnodejsをインストールしていることに注意してください。
Node.jsは、コマンドnodejs
を使用してコマンドラインから使用できるようになります。
また、コマンドnodeを使用して使用できるようにする必要があります。 そのために、ノードからNode.jsへのシンボリックリンクを作成できます。 これは、DocPadアプリケーションがすべてのプラグイン依存関係を適切にダウンロードできるようにするために必要です。一部のプラグインはnodeを呼び出します。
sudo ln -s /usr/bin/nodejs /usr/bin/node
Node.jsをインストールする方法の詳細と代替方法については、記事Ubuntu14.04サーバーにNode.jsをインストールする方法を参照してください。
Node.jsの依存関係をダウンロードするには、Nodeのパッケージマネージャーのコマンドラインインターフェイスをインストールする必要があります。
sudo apt-get install npm
ステップ2–Node.jsをポート80にバインドする
アプリケーションをポート80でアクセスできるようにします。 デフォルトでは、DocPadアプリケーションはポート9778で実行されます。 このステップでは、Node.jsをポート80にバインドし、後のステップで、DocPadアプリケーションをポート80でも実行するように構成します。 このようにして、http://example.com:9778の代わりにhttp://example.comからWebサイトにアクセスできます。
Node.jsをポート80にバインドするには、最初にlibcap2-binがインストールされていることを確認します。
sudo apt-get install libcap2-bin
ほとんどのシステムでは、これはすでにインストールされています。 次に、Node.jsをポート80にバインドします。
sudo setcap cap_net_bind_service=+ep /usr/bin/nodejs
チュートリアルの後半で、ポート80を使用するようにDocPadアプリケーションを構成します。
ステップ3–DocPadのインストール
次に、NPMを使用してDocPad自体をインストールします。
sudo npm install -g docpad
sudoを使用してDocPadをインストールしたため、docpadユーザーのホームディレクトリのアクセス許可をクリーンアップします。
sudo chown -R docpad:docpad ~
DocPadを実行するために別のユーザーを選択した場合は、ユーザーとグループを独自のユーザー名に置き換えてください。
ステップ4–DocPadアプリケーションを作成する
このセクションでは、DocPadアプリケーションをサーバーにセットアップします。 Gitリポジトリから既存のプロジェクトを使用することも、新しいテストアプリケーションを最初から作成することもできます。
プロジェクトのディレクトリを作成します。 何とでも呼べますが、この場合はdocpad_testを使用します。 次に、そのディレクトリに移動します。
mkdir ~/docpad_test
cd ~/docpad_test
ステップ4a–既存のDocPadアプリケーションとその依存関係をダウンロードする
既存のDocPadアプリケーションがある場合は、次の手順に従ってサーバーにデプロイします。 まず、完成したアプリケーションをGitリポジトリからダウンロードする必要があります。
git clone path_to_git_repository
次に、DocPadアプリケーションのすべての依存関係をダウンロードする必要があります。
npm install
アプリケーションでBowerコンポーネントも使用している場合は、次を実行します。
bower install
ステップ4b–新しいDocPadアプリケーションの作成
DocPadアプリケーションをまだお持ちでない場合は、新しいアプリケーションを作成できます。 アプリケーションディレクトリで、新しいDocPadアプリケーションを初期化します。
docpad run
DocPadを初めて実行する場合は、必要に応じて対話型ダイアログの質問に答えてください。
Before we continue, have you read and agree to DocPad's Terms of Service (http://bevry.me/tos) and Privacy Policy (http://bevry.me/privacy)? [Y/n] y
Would you like to subscribe to our newsletter and stay up to date with the latest releases and tutorials? [Y/n] n
次に、アプリのスキャフォールディングに使用するスケルトンを選択するように求められます。 Twitter Bootstrap
(オプション4
)を選択すると、サンプルWebサイトが作成され、ブラウザーで機能するものがすぐに表示されます。
4
DocPadがアプリをビルドして起動するまで、数分待ちます。 展開が成功すると、次の出力が表示されます。
info: Installed the skeleton succesfully
notice: Shutting down the global DocPad, and starting up the local
info: Welcome to DocPad v6.63.8 (local installation: /home/docpad/docpad_test/node_modules/docpad)
info: Contribute: http://docpad.org/docs/contribute
info: Plugins: cleanurls, coffeescript, downloader, eco, less, livereload, marked, partials, related, stylus, text
info: Environment: development
info: DocPad listening to http://0.0.0.0:9778/ on directory /home/docpad/docpad_test/out
info: LiveReload listening to new socket on channel /docpad-livereload
info: Generating...
info: Generated 168/173 files in 15.012 seconds
info: Watching setup starting...
info: Watching setup
info: The action completed successfully
プロセスはターミナルウィンドウで実行され続けます。
次に、ポート9778でIPアドレスまたはドメインにアクセスします。
http://example.com:9778
デフォルトのDocPadホームページが表示されます。
次のステップでポート80で実行するようにアプリケーションを更新し、ユーザーがドメインにアクセスするときにポートを指定する必要がないようにします。
Ctrl + Cキーを押すと、DocPadサーバーを停止できます。
アプリケーションディレクトリにls
が含まれるファイルを表示する場合は、ブートストラップスケルトンを使用して次の生成されたファイルとディレクトリが表示されます。
docpad.coffee LICENSE.md node_modules out package.json Procfile README.md src
アプリケーションのソースコードはsrcにあります。
ステップ5–ポート80で実行するようにDocPadを構成する
DocPadがポート80でアプリケーションを実行できるように、docpad.coffee構成ファイルに次の行を追加する必要があります。 まず、編集用にファイルを開きます。
nano ~/docpad_test/docpad.coffee
docpadConfig = {}
ブロック内にport: 80
という行を追加します。 port 行は、ブロック内の最初のレベルにある必要があります。 docpadConfig = {
の後の最初の行として追加できます。
docpadConfig = {
. . .
port: 80
. . .
}
アプリケーションディレクトリにいることを確認してください。 次のコマンドを使用してDocPadを実行します。 サーバーでDocPadを初めて実行する場合は、利用規約に同意し、アプリケーションが実行できることを確認してください。
./node_modules/docpad/bin/docpad run
アプリが正常に実行されると、WebサイトのURLに移動して、ブラウザーでサイトを表示できるようになります。
見つからない場合は、http://example.com:9778に移動してみてください。 そこに表示されている場合は、docpad.coffee
ファイルでポートが適切に構成されていないことが原因です。 ポートは、docpadConfig
オブジェクトの最初のレベルで指定する必要があります。
ここで、Ctrl+Cを押してプロセスを強制終了します。 次のセクションでは、毎回コマンドラインからアプリケーションを起動するのではなく、アプリケーションをサービスにします。
ステップ6–Upstartを使用してDocPadをサービスとして実行する
この最後のステップでは、DocPadアプリケーションのUpstartスクリプトを作成します。 これにより、開始、停止、再起動などを実行できます。 コマンドラインからのアプリケーションのコマンド。 サーバーのバックグラウンドで実行されるため、SSH接続を開いたままにする必要はありません。 また、アプリケーションがクラッシュした場合、またはサーバーが再起動した場合に、アプリケーションを自動的に再起動するようにシステムを構成します。
Upstartスクリプトを作成します。
sudo nano /etc/init/docpad_test.conf
次の内容を追加します。
description "DocPad Test Application"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectedly trigger a respawn
respawn
env HOME=/home/docpad/
chdir /home/docpad/docpad_test/
setuid docpad
setgid docpad
exec /home/docpad/docpad_test/node_modules/docpad/bin/docpad run
description
:このサービスの説明を入力してくださいenv HOME
:DocPadユーザーのホームディレクトリchdir
:アプリケーションのルートディレクトリsetuid
およびsetgid
:DocPadユーザー(グループは同じ名前である必要があります)exec
:実行するバージョンのDocPadへのフルパス。 これは、フルパスを使用することを除いて、以前にアプリケーションを起動するために使用したコマンドと同じです。
Upstartの詳細については、この記事を参照してください。
コマンドラインからアプリケーションを起動します。 ファイルをdocpad_test.conf
以外の名前で呼び出した場合は、適切なサービス名を使用する必要があります。
sudo service docpad_test start
DocPadアプリケーションが生成されるまで約30秒待ちます。 この時間はアプリケーションのサイズによって異なり、./node_modules/docpad/bin/docpad run
を使用して手動で起動した場合と同じくらいの時間がかかります。
数秒待ってから、ブラウザでドメインまたはIPアドレスに移動します。 DocPadで生成されたWebサイトが表示されます。
これですべて完了です。 必要に応じて、サーバーにsudo reboot
を発行し、アプリケーションが自動的に起動することを確認します。
結論
これで、新しいDocPadアプリケーションを作成するか、既存のアプリケーションのクローンを作成して、Ubuntuサーバーにデプロイし、ドメインでアクセスできるようになります。
DocPadを使用してWebサイトの構築を開始するには、ドキュメントを参照してください。