序章

code-server は、 Microsoft Visual Studio Code であり、リモートサーバー上で実行され、ブラウザーから直接アクセスできます。 つまり、さまざまなデバイスを使用し、さまざまなオペレーティングシステムを実行し、常に一貫した開発環境を手元に置くことができます。

このチュートリアルでは、Ubuntu 18.04マシンにコードサーバークラウドIDEプラットフォームをセットアップし、Let’sEncryptで保護されたドメインで公開します。 このチュートリアルの詳細については、 Ubuntu18.04でコードサーバーCloudIDEプラットフォームをセットアップする方法を参照してください。

前提条件

  • 少なくとも2GBのRAM、rootアクセス、およびsudoの非rootアカウントを備えたUbuntu18.04を実行しているサーバー。 これを設定するには、 Ubuntu18.04[X84Xの初期サーバー設定ガイド]に従ってください。

  • Nginxがサーバーにインストールされています。 これを行う方法のガイドについては、 Ubuntu18.04にNginxをインストールする方法のステップ1から4を完了してください。

  • サーバーを指す、コードサーバーをホストするための完全に登録されたドメイン名。 このチュートリアルでは、 code-server.your-domain 全体を通して。 Namecheap でドメイン名を購入するか、 Freenom で無料でドメイン名を取得するか、選択したドメイン登録事業者を使用できます。

  • 次の両方のDNSレコードがサーバー用に設定されています。 それらを追加する方法の詳細については、このDigitalOceanDNSの紹介に従ってください。

    • とのAレコード your-domain サーバーのパブリックIPアドレスを指します。
    • とのAレコード www.your-domain サーバーのパブリックIPアドレスを指します。

ステップ1—コードサーバーのインストール

コードサーバーのすべてのデータを保存するディレクトリを作成します。

  1. mkdir ~/code-server

そこに移動します:

  1. cd ~/code-server

コードサーバーのGithubリリースページにアクセスして、最新のLinuxビルドを選択してください。 以下を使用してダウンロードします。

  1. wget https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

アーカイブを解凍します。

  1. tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

コードサーバー実行可能ファイルを含むディレクトリに移動します。

  1. cd code-server2.1692-vsc1.39.2-linux-x86_64

システム全体でコードサーバー実行可能ファイルにアクセスするには、次のコマンドを使用してコピーします。

  1. sudo cp code-server /usr/local/bin

コードサーバー用のフォルダーを作成して、ユーザーデータを保存します。

  1. sudo mkdir /var/lib/code-server

systemdサービスを作成します。 code-server.service、 の中に /lib/systemd/system ディレクトリ:

  1. sudo nano /lib/systemd/system/code-server.service

次の行を追加します。

/lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=nginx.service

[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
Restart=always

[Install]
WantedBy=multi-user.target
  • --host 127.0.0.1 にバインドします localhost.
  • --user-data-dir /var/lib/code-server ユーザーデータディレクトリを設定します。
  • --auth password パスワードを使用して訪問者を認証する必要があることを指定します。

交換することを忘れないでください your_password ご希望のパスワードで。

ファイルを保存して閉じます。

コードサーバーサービスを開始します。

  1. sudo systemctl start code-server

正しく起動していることを確認してください。

  1. sudo systemctl status code-server

次のような出力が表示されます。

Output
● code-server.service - code-server Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2019-12-09 20:07:28 UTC; 4s ago Main PID: 5216 (code-server) Tasks: 23 (limit: 2362) CGroup: /system.slice/code-server.service ├─5216 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password └─5240 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password ...

サーバーの再起動後にコードサーバーサービスが自動的に開始するようにします。

  1. sudo systemctl enable code-server

ステップ2—コードサーバーを公開する

次に、Nginxをコードサーバーのリバースプロキシとして構成します。

作成 code-server.conf ドメインでコードサーバーを公開するための構成を保存するには:

  1. sudo nano /etc/nginx/sites-available/code-server.conf

次の行を追加して、必要なディレクティブを使用してサーバーブロックを設定します。

/etc/nginx/sites-available/code-server.conf
server {
	listen 80;
	listen [::]:80;

	server_name code-server.your_domain;

	location / {
		proxy_pass http://localhost:8080/;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection upgrade;
		proxy_set_header Accept-Encoding gzip;
	}
}

交換 code-server.your_domain 目的のドメインでファイルを保存して閉じます。

このサイト構成をアクティブにするには、次のシンボリックリンクを作成します。

  1. sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

構成の有効性をテストします。

  1. sudo nginx -t

次の出力が表示されます。

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

構成を有効にするには、Nginxを再起動します。

  1. sudo systemctl restart nginx

ステップ3—ドメインを保護する

次に、Let’sEncryptTLS証明書を使用してドメインを保護します。

Certbotパッケージリポジトリをサーバーに追加します。

  1. sudo add-apt-repository ppa:certbot/certbot

CertbotとそのNginxプラグインをインストールします。

  1. sudo apt install python-certbot-nginx

構成、設定 ufw 暗号化されたトラフィックを受け入れるには:

  1. sudo ufw allow https

出力は次のようになります。

Output
Rule added Rule added (v6)

構成を有効にするために再ロードします。

  1. sudo ufw reload

出力には次のように表示されます。

Output
Firewall reloaded

コードサーバードメインに移動します。

コードサーバーのパスワードを入力します。 ドメインで公開されているインターフェースが表示されます。

これを保護するには、Certbotを使用してLet’sEncryptTLS証明書をインストールします。

次のコマンドを使用してドメインの証明書をリクエストします。

  1. sudo certbot --nginx -d code-server.your_domain

緊急通知用の電子メールアドレスを提供し、EFFの利用規約に同意し、すべてのHTTPトラフィックをHTTPSにリダイレクトするかどうかを決定します。

出力は次のようになります。

Output
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/code-server.your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/code-server.your_domain/privkey.pem Your cert will expire on ... To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" ...

CertbotはTLS証明書を正常に生成し、ドメインのNginx構成に適用しました。

結論

これで、Ubuntu 18.04サーバーにインストールされ、ドメインで公開され、Let’sEncrypt証明書を使用して保護された多用途のクラウドIDEであるコードサーバーができました。 詳細については、 Visual Studio Codeのドキュメントを参照して、コードサーバーの他のコンポーネントの追加機能と詳細な手順を確認してください。