皆さま、こんにちは

 

Cloud9を利用したいのですが、

AWSの無償枠をとっくに使い果たしてしまったため、

ローカル環境にCloud9を構築します。

 

OSは、Ubuntu 18.04.5 LTS を使用し、

ハードウェアは今回は物理環境を使用します。

(#と$はプロンプト)

 

 

1、事前準備

OSの各モジュールを最新にアップデートします。

$ sudo apt-get update

$ sudo apt-get upgrade

 

次に依存関係で必要なモジュールをインストールします。

$ sudo apt-get install python2.7 gcc make nodejs npm git

※不足分がありましたら適宜追加インストールください。

 

3、Cloud9のインストール

 

公式ページを参照して、

 

$ git clone git://github.com/c9/core.git c9sdk

$ cd c9sdk

$ git checkout HEAD -- node_modules

$ scripts/install-sdk.sh

 

一度、サーバ起動するか確認します。

※この時点では、localhostでしか起動しないのでLinux上のブラウザーより

「http://127.0.0.1:8181」へアクセス出来るか確認します。

$ node server.js -a

 

アクセスできたら一旦「ctrl+c」でサーバを終了させます。

 

4、起動スクリプトの準備

※testrbは実行ユーザのディレクトリ

 

$ cd ~

$ mkdir workspace

$ echo "#!/bin/bash" >cloud9.sh

$ echo "/usr/bin/node /home/testrb/c9sdk/server.js --listen 0.0.0.0 -p 8080 -w /home/testrb/workspace" >> cloud9.sh

 

$ chmod 755 ./cloud9.sh

  

$ ./cloud9.sh

→これで起動するがlocalhostでしかリッスンしないので

外部接続出来るように設定を変更する

  

$ cd c9sdk/configs

$ cp -p standalone.js standalone.js.orig

$ vi standalone.js 

 →config.host を 0.0.0.0へ変更する

$ diff standalone.js standalone.js.orig

ーーーーーーーーーーーーーーーーーーーーーーー

 108,109c108

 <         // host = config.host = "127.0.0.1";

 <         host = config.host = "0.0.0.0";

---

>         host = config.host = "127.0.0.1";

ーーーーーーーーーーーーーーーーーーーーーーー

 

5、自動起動のサービス作成

 $ sudo vi /etc/systemd/system/cloud9.service

ーーーーーーーーーーーーーーーーーーーーーーー

 $ more /etc/systemd/system/cloud9.service

[Unit]

Type=simple

Description=Cloud9 Core

After=network.target

 

[Service]

WorkingDirectory=/home/testrb/c9sdk

ExecStart=/home/testrb/cloud9.sh

User=testrb

#ExecStop=/bin/kill -TERM ${MAINPID}

#Restart=always

 

[Install]

WantedBy=multi-user.target

ーーーーーーーーーーーーーーーーーーーーーーー

※補足:

 起動スクリプト起動時に

「WorkingDirectory」がないとhomeディレクトリが

 セットされていないとエラーとなり

 サービスが起動できないため、追加しております。

 

6、サービスを自動起動とします。

$ sudo systemctl enable cloud9.service

Created symlink /etc/systemd/system/multi-user.target.wants/cloud9.service → /etc/systemd/system/cloud9.service.

 

 

では