ブラウザからアクセス可能な永続的な開発環境が必要なときに、プロジェクト、Gitリポジトリ、設定、および拡張機能があなたが管理するLinuxサーバーに保存される状態で、VPSインフラストラクチャ上でcode-serverを実行します。 VoyraCloudのcode-serverアプリケーションイメージは、パスワード認証が有効になっており、VPSのループバックインターフェースでのみリッスンします。最初にSSHトンネルを介して接続し、ターミナル対応のWeb IDEを直接パブリックインターネットに公開しないようにします。
TL;DR
- VoyraCloudイメージは、Ubuntu上でcode-serverとGitを提供しますが、言語ランタイム、プロジェクト依存関係、拡張機能、ドメイン、およびバックアップはユーザー管理のままです。
- code-serverは
127.0.0.1:8080でリッスンしているため、{server-ip}:8080はパブリックアプリケーションアドレスではありません。 - リソースの詳細に示されているSSHトンネルを使用し、ローカルで
http://127.0.0.1:8080を開き、VPS用に生成されたユニークなパスワードでサインインします。 - 認証を無効にしないでください。code-serverにはターミナルが含まれているため、無許可のユーザーがサービスユーザーの権限でコマンドを実行する可能性があります。
- ドメイン、WebSocket対応のリバースプロキシ、信頼できるHTTPS、およびIDEをインターネットに公開する前に追加のアクセス制御レイヤーを使用してください。
- クラウドVPSは、対象となる2 vCPU、2 GB RAM、40 GBストレージプランから始まります。住宅IP VPSは、2 vCPU、4 GB RAM、60 GBストレージから始まります。
- 再起動はVPSストレージ上のファイルを保持し、サービスを再起動しますが、永続性はバックアップではありません。VPSの外にテスト済みのコピーを保持してください。
code-serverとは何ですか?
code-serverは、WebブラウザでVS Codeスタイルの開発環境を実行するオープンソースプロジェクトです。 コードエディタ、統合ターミナル、Gitワークフロー、拡張機能サポート、設定、およびリモートマシンに保存されたファイルへのアクセスを提供します。
これはMicrosoft Visual Studio Code、GitHub Codespaces、またはマルチユーザーCoderプラットフォームではありません。これは、基盤となるサーバーを制御するユーザー向けに設計された自己ホスト型ブラウザIDEです。ブラウザはインターフェースに過ぎません:コードの実行、ターミナル、リポジトリ、ビルドツール、および開発サービスはVPS上で実行されます。
このアーキテクチャは、複数のコンピュータで作業する場合、常に利用可能なLinux環境が必要な場合、またはプロジェクトファイルやツールを1つのワークステーションに結びつけたくない場合に便利です。また、セキュリティ境界も変更されます。IDEに入る誰もが、ターミナルを開いたり、プロジェクトファイルを検査したり、code-serverサービスユーザーとしてコマンドを実行したりする可能性があります。したがって、アクセス保護はデプロイメントの一部であり、オプションの装飾設定ではありません。
公式のcode-server要件は、少なくとも2つのCPUコアと1GBのRAMを推奨し、WebSocketサポートを必要とします。実際のプロジェクトのニーズは、コンパイラ、言語サーバー、コンテナ、データベース、またはメモリ集約型ビルドツールをインストールする場合に高くなる可能性があります。
VoyraCloudイメージには何が含まれていますか?
アプリケーションイメージは、プライベートなcode-serverサービスとGitを準備しますが、VPSを管理された開発プラットフォームにはしません。 あなたはVPSへのルートアクセスを保持し、どの言語、パッケージ、リポジトリ、拡張機能を追加するかを決定します。
| イメージによって提供されるもの | ユーザー管理または含まれていないもの |
|---|---|
| Ubuntu 24.04 LTS | 納品後のオペレーティングシステムのメンテナンス |
| 固定された安定版のcode-serverリリース | 自動code-serverアップグレード |
| Gitコマンドラインツール | Gitホスティングアカウントと資格情報 |
| 非ルートcode-serverサービス | 共有チームアカウントまたは役割管理 |
| パスワード認証が有効 | 外部アイデンティティプロバイダーまたはシングルサインオン |
| 各VPS用のユニークなランダムパスワード | 初回ログイン後のパスワードローテーションポリシー |
ローカル専用リスナー127.0.0.1:8080 | パブリックドメイン、リバースプロキシ、または信頼できるHTTPS |
| 通常の再起動後の自動サービス開始 | 高可用性または自動フェイルオーバー |
| 永続的なVPSストレージ | 自動オフサーバーバックアップ |
| 拡張機能のインストールサポート | 事前インストールされたサードパーティの拡張機能または互換性保証 |
| 統合ターミナルおよび開発ポートプロキシ | 言語ランタイム、データベース、Docker、またはユーザーのプロジェクト |
VoyraCloudリソースの詳細にあるアプリケーションセクションには、VPSが作成されたときに配信されたcode-serverのバージョンが表示されます。後で自分でソフトウェアを変更しても自動的には更新されません。
クイックスタート:code-serverに安全にアクセスするにはどうすればよいですか?
安全な初期の方法は、SSHトンネルを確立し、SSH経由でインスタンスのパスワードを取得し、自分のコンピュータでループバックURLを開くことです。 これにより、ポート8080がプライベートになり、コンピュータとVPS間のトラフィックが暗号化されます。
- VoyraCloud code-serverページを開き、購入フローを続けます。
- 対象となるクラウドVPSまたは住宅IP VPSプランを選択し、その製品で現在提供されている地域を選択します。
- Imagesでcode-serverが選択されていることを確認し、VPSを作成し、プロビジョニングが完了するまで待ちます。
- リソースの詳細を開き、表示されたSSHトンネルコマンドをコピーします。これは次のパターンに従います:
ssh -p <ssh-port> -N -L 8080:127.0.0.1:8080 <ssh-user>@<server-ip>
- そのSSHセッションを開いたままにします。終了するとトンネルが閉じますが、code-serverはVPS上で実行し続けます。
- リソースの接続値を使用して2番目のSSHセッションを開きます:
ssh -p <ssh-port> <ssh-user>@<server-ip>
7. code-server設定から生成されたパスワードを読み取ります:
sed -n 's/^password: //p' ~/.config/code-server/config.yaml
8. ローカルブラウザで、次を開きます:
http://127.0.0.1:8080
9. ステップ7のパスワードを入力し、統合ターミナルを開いてGitを確認します:
git --version
リソースの詳細から実際のSSHユーザーとポートを使用し、rootやポート22を仮定しないでください。code-serverプロセスはイメージの非ルートユーザーの下で実行されるため、設定コマンドは同じSSHユーザーとして実行する必要があります。
アドレスはHTTPを使用していますが、これは自分のコンピュータ上で暗号化されたSSHトンネルを介してのみ到達されます。これはパブリックなプロダクションURLではありません。ブラウザでIPアドレスを開くためだけにリスナーを0.0.0.0:8080に変更しないでください。
ローカルポート8080がすでに使用されている場合は、左側で別のポートを選択してください:
ssh -p <ssh-port> -N -L 18080:127.0.0.1:8080 <ssh-user>@<server-ip>
その後、http://127.0.0.1:18080にアクセスします。リモートの宛先は127.0.0.1:8080のままにします。
code-serverのパスワードを変更するにはどうすればよいですか?
生成されたパスワードをサービスユーザーとしてcode-server設定を編集し、サービスを再起動することで変更します。 SSH、Gitホスティング、メール、または他のVPSのために再利用しないユニークなパスワードを使用してください。
設定ファイルを開きます:
nano ~/.config/code-server/config.yaml
これらのセキュリティ設定を保持します:
bind-addr: 127.0.0.1:8080
auth: password
cert: false
新しい強力なパスワードでpassword:の後の値のみを置き換え、ファイルを保存し、ユーザー固有のサービスを再起動します:
sudo systemctl restart code-server@"$(whoami)"
トンネルを通じて再接続し、既存の認証されたブラウザセッションを閉じる前に新しいパスワードを確認します。公式のcode-server FAQでは、Argon2 hashed-passwordオプションについても文書化されています。これを採用する場合は、現在の公式構文に従い、SSHを通じてリカバリパスを保持し、変更後にサービスをテストしてください。
公開可能なデプロイメントでauth: noneを設定しないでください。SSHトンネルはネットワークの到達可能性を制限しますが、パスワード認証を有効にしておくことで、ネットワーク構成が後で変更された場合の偶発的な無認証露出を防ぐための二次的な制御が追加されます。
プロジェクトとGitリポジトリを追加するにはどうすればよいですか?
非ルートサービスユーザーが所有するディレクトリ内でプロジェクトを作成またはクローンし、そのディレクトリをブラウザIDEから開きます。 エディタ拡張、プロジェクトスクリプト、およびパッケージライフサイクルフックがコードを実行できるため、rootとして開発することは避けてください。
HTTPS経由でリポジトリをクローンするには:
mkdir -p ~/projects
cd ~/projects
git clone https://github.com/<owner>/<repository>.git
プライベートリポジトリの場合は、Gitプロバイダーがサポートする資格情報メソッドを使用します。長期的なアクセス・トークンをソースファイル、シェルスクリプト、エディタ設定、またはシェル履歴に残るターミナルコマンドに貼り付けないでください。プロバイダーがサポートする資格情報ヘルパー、狭いスコープのトークン、または信頼できるワークステーションからのSSHエージェントフォワーディングを好んで使用してください。
SSHエージェントをフォワードする前に、信頼境界を理解してください:リモートユーザーとして実行されているプロセスは、セッションがアクティブな間にフォワードされたエージェントから署名を要求する場合があります。信頼できないプロジェクト環境に高価値の個人キーをフォワードしないでください。リポジトリ固有のデプロイキーまたは狭いスコープの資格情報は、侵害の影響を軽減することができます。
イメージはすべてのプロジェクトのために言語ツールチェーンをインストールしません。コードが必要とするランタイムのみを追加し、プロジェクトのロックファイルを使用して依存関係を再現可能に保ちます。特にリポジトリのREADMEからコピーされたコマンドやパッケージマネージャーによって自動的に実行されるコマンドを実行する前に、インストールスクリプトを確認してください。
code-serverの拡張機能はどのように機能しますか?
code-serverは拡張機能をサポートしていますが、その拡張機能エコシステムはデスクトップVS Codeと同一ではなく、すべての拡張機能がブラウザホスティング環境で動作するわけではありません。 一部の拡張機能は、独自のMicrosoftサービス、デスクトップAPI、ネイティブバイナリ、またはフォークに適用されないライセンス条件に依存しています。
拡張機能をExtensionsビューからインストールするか、code-serverコマンドラインを使用してインストールします:
code-server --install-extension <publisher.extension>
拡張機能の発行者から取得した信頼できるVSIXファイルをインストールすることもできます:
code-server --install-extension /path/to/extension.vsix
公式の拡張機能ガイダンスでは、サポートされているマーケットプレイスおよびVSIXパスについて説明しています。また、MicrosoftのマーケットプレイスURLにcode-serverをポイントすることは、Microsoftの利用規約に反するため、避けるべきです。
拡張機能を実行可能なソフトウェアとして扱います。インストール前に発行者、ソース、権限、更新履歴、およびプロジェクトアクセスを確認してください。拡張機能はワークスペースファイルを読み取ったり、プロセスを開始したり、ネットワークに接続したり、サービスユーザーが利用できる資格情報にアクセスしたりできます。プロジェクトが必要とするものだけをインストールし、重要な作業に依存する前に拡張機能の更新をテストしてください。
開発サービスを実行およびプレビューするにはどうすればよいですか?
VPSのループバックインターフェースで開発サーバーを実行し、code-serverの組み込みポートプロキシまたは別のSSHトンネルを介してアクセスします。 VPSファイアウォールで開発ポートをすべて公開する必要はありません。
たとえば、プロジェクトが127.0.0.1:3000で開発サーバーを起動する場合、code-serverはポートを検出し、Portsインターフェースで転送リンクを提供できます。組み込みプロキシは、認証されたcode-serverセッションを使用し、エディタ接続にはWebSocketを利用します。
別のSSHトンネルを使用する場合は、コンピュータで次を実行します:
ssh -p <ssh-port> -N -L 3000:127.0.0.1:3000 <ssh-user>@<server-ip>
その後、ローカルでhttp://127.0.0.1:3000を開きます。このパターンは、一般に公開されるべきでない開発ダッシュボード、ローカルAPIドキュメント、およびテストアプリケーションに適しています。
code-serverのパスワードが、0.0.0.0に直接バインドされたサービスを保護するとは限りません。別のアプリケーションポートは、IDEの認証を完全にバイパスする可能性があります。どのサービスがプライベートで、どのサービスが独自の認証を必要とし、どのサービスがインターネットに公開する準備ができているかを慎重に決定してください。
code-serverをHTTPSで公開するにはどうすればよいですか?
公開アクセスには、ドメイン、信頼できるTLS証明書、WebSocketを保持するリバースプロキシ、パスワード認証、そして可能であれば追加のアイデンティティ認識アクセスレイヤーが必要です。 公式のセキュアアクセスガイドは、認証と暗号化なしでcode-serverを公開すると、攻撃者が端末を通じてマシンを制御できる可能性があることを警告しています。
このプロダクションチェックリストを使用してください:
code.example.comのような専用ホスト名を作成し、そのDNSレコードをVPSにポイントします。- code-serverを
127.0.0.1:8080にバインドしたままにします。 - Nginx、Caddy、または他のサポートされているリバースプロキシを構成してループバックサービスに到達します。
- HTTP/1.1 WebSocketアップグレードヘッダーと元のホスト情報を保持します。
- ブラウザが信頼する証明書を取得し、自動更新を行います。
- プレーンHTTPをHTTPSにリダイレクトします。
- code-serverのパスワード認証を有効にしたままにします。
- リスクがある場合は、アイデンティティ認識プロキシなどの外部アクセスレイヤーを追加します。
- ログイン、ターミナル、拡張機能の読み込み、ファイルのアップロード、転送された開発ポートをテストします。
- 別のネットワークからポート
8080自体が利用できないことを確認します。
最小限のNginxロケーションはWebSocket転送が必要です:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
これはアプリケーションプロキシブロックのみです。サーバー名、信頼できる証明書、更新、HTTPリダイレクト、ファイアウォール、アクセスポリシーを構成する必要があります。選択したプロキシの最新のドキュメントで完全な構成を検証してください。
自己署名証明書は、通常のブラウザ使用には不適切なデフォルトです。ユーザーは信頼警告を回避または手動で管理する必要があります。SSHトンネルアクセスは、1人の管理者がIDEを必要とする場合に簡単です。パブリックHTTPSは、SSHクライアントのないデバイスからブラウザアクセスが必要な場合に便利ですが、攻撃面が大きくなり、証明書とプロキシのメンテナンス責任が発生します。
code-server用のCloud VPSまたはResidential IP VPSはどちらですか?
Cloud VPSはリモート開発の通常の選択肢であり、Residential IP VPSは安定した住宅ネットワークアイデンティティが開発または地域テスト要件の一部である場合に利用可能です。 両方の製品ラインは、同じcode-serverアプリケーションの動作を提供し、その製品で現在提供されているすべての地域をサポートします。
| 製品 | 対象となる開始構成 | 適切な使用法 |
|---|---|---|
| Cloud VPS | 2 vCPU、2 GB RAM、40 GBストレージ | 一般的なコーディング、Gitプロジェクト、軽量ビルド、およびリモート開発 |
| Residential IP VPS | 2 vCPU、4 GB RAM、60 GBストレージ | 安定した住宅ネットワークの起源が必要な場合の同じ開発ワークフロー |
購入の最小限は、対象となるゲートであり、パフォーマンス保証ではありません。大規模なプロジェクトには、言語サーバー、パッケージインストール、TypeScriptインデックス作成、コンパイル、ローカルデータベース、コンテナビルド、または複数の同時プロセスのために、より多くのリソースが必要になる場合があります。実際のツールチェーンをインストールした後は、メモリ、CPU、ディスク使用量、および空きストレージを監視してください。
住宅ネットワークアイデンティティはエディタのパフォーマンスを向上させず、IDEのセキュリティ機能として提示すべきではありません。それは、ネットワークの起源自体があなたの作業において正当な役割を持つ場合にのみ選択してください。購入前に、VoyraCloudの価格ページで現在の構成を確認してください。
再起動後に持続するものは何ですか?
VPSに保存されたファイルは通常の再起動を通じて持続し、code-serverサービスは自動的に再起動しますが、ライブターミナルプロセスや未保存のエディタ状態は持続しない可能性があります。 プロジェクト作業をディスクに保存し、再起動が必要なものには適切なプロセス監視を使用してください。
持続する項目には以下が含まれます:
- プロジェクトファイルとローカルGitリポジトリ。
- エディタ設定、キーバインディング、およびインストールされた拡張機能。
- code-server設定およびパスワードの変更。
- ツールによって永続的なディレクトリに書き込まれたファイル。
再起動で保持されないことを期待しないでください:
- 未保存のエディタバッファ。
- 監視なしで通常のターミナルで実行中のコマンド。
- メモリ内の開発サーバー。
- ツールが終了時に削除する一時ファイル。
- 別のコンピュータでのブラウザセッション状態。
長時間実行されるアプリケーションには、そのアプリケーション用に設計されたサービスマネージャーまたはコンテナ構成を使用してください。code-serverの再起動は、そのターミナルで開いていたすべてのコマンドを自動的に再起動するわけではありません。
code-server VPSをバックアップするにはどうすればよいですか?
ソースコードと環境状態をVPSの外でバックアップしてください。ローカルの永続性は削除、破損、侵害、またはストレージ障害から保護できません。 Gitリモートはバージョン管理されたソースに便利ですが、未コミットの作業、秘密、ローカルデータベース、生成されたアセット、エディタ設定、またはデプロイ状態を含まない場合があります。
層状のバックアッププランを使用します:
- コミットされたソースを、あなたが管理するプライベートGitリモートにプッシュします。
- Gitが意図的に除外するプロジェクトデータを特定します。
- code-server設定と拡張機能の状態をバックアップします。再作成するのがコストがかかる場合は特にそうです。
- ライブデータベースファイルを盲目的にコピーするのではなく、アプリケーション整合性のある方法でローカルデータベースをエクスポートします。
- 暗号化されたバックアップをVPSの外に保存します。
- 1つ以上のリカバリポイントを保持します。
- 別のテスト環境に復元し、プロジェクト、資格情報、エディタ、およびビルドプロセスを確認します。
バックアップを容易にするためだけに秘密をGitリポジトリに入れないでください。適切な秘密管理または暗号化されたリカバリプロセスを通じて資格情報をバックアップし、VPSまたはバックアップ先が露出した疑いがある場合はそれらをローテーションしてください。
code-serverをどのように更新すればよいですか?
特定の安定版を選択し、そのリリースノートを読み、データをバックアップし、インストール後にエディタとプロジェクトのワークフローをテストすることで、意図的に更新します。 イメージは浮動的なlatestリリースを追跡せず、VoyraCloudは既存の顧客VPSを自動的にアップグレードしません。
更新前に:
code-server --versionで現在のバージョンを記録します。- 公式のcode-serverリリースと変更履歴を確認し、セキュリティ修正、回帰、およびブラウザ互換性の変更を確認します。
- プロジェクト、設定、拡張機能の状態、および現在の構成をバックアップします。
- エッジビルドや浮動パッケージターゲットではなく、正確な安定版を選択します。
- ブラウザインターフェースが失敗した場合に備えて、SSHセッションを利用可能にしておきます。
- Ubuntuの現在の公式方法を使用して新しいバージョンをインストールします。
- サービスを再起動し、その状態を確認します。
- パスワードログイン、WebSocket接続、ターミナルアクセス、Git、必要な拡張機能、および代表的なプロジェクトをテストします。
- リスナーがまだ
127.0.0.1:8080であり、認証がまだ有効であることを確認します。
公式のアップグレードページでは、新しいバージョンが古いバージョンの上にインストールされるとユーザーデータが保持されると述べています。その期待される動作はバックアップを置き換えたり、すべての拡張機能とプロジェクトが互換性があることを証明するものではありません。
オペレーティングシステムのセキュリティ更新、言語ランタイム、パッケージマネージャー、リバースプロキシ、証明書、拡張機能、およびプロジェクト依存関係には別々の更新サイクルがあります。code-serverのみを更新しても、全体の開発環境が最新になるわけではありません。
避けるべき一般的な間違い
ほとんどのcode-serverデプロイメントの失敗は、アクセス制御を弱めたり、永続性をバックアップと混同したり、ブラウザIDEの互換性がデスクトップVS Codeと同一であると仮定したりすることから生じます。 これらの間違いを避けてください:
- 便利さのために
8080をすべてのインターフェースにバインドすること。 - 公開可能なサーバーで
auth: noneを設定すること。 - トンネルや信頼できるHTTPSを使用せずにプレーンHTTPでIDEを公開すること。
- 複数のVPSインスタンスで生成されたパスワードを再利用すること。
- rootとしてcode-serverまたはプロジェクトコマンドを実行すること。
- すべての拡張機能や独自のマーケットプレイス統合を互換性があると扱うこと。
- レビューされていない拡張機能、スクリプト、またはリポジトリ依存関係をインストールすること。
- 別々の認証なしで開発ポートを公開すること。
- オープンなターミナルプロセスが再起動後も生き残ると仮定すること。
- VPSローカルファイルをバックアップと呼ぶこと。
- 変更を読まずに浮動リリースに更新し、SSHリカバリアクセスを保持しないこと。
- プロジェクトソースにGitトークン、APIキー、またはSSHプライベートキーを保存すること。
FAQ
VPSのIPアドレスでcode-serverを開くことはできますか?
いいえ、VoyraCloudイメージは意図的にパブリックIPでポート8080を公開しません。 リソースの詳細に示されているSSHトンネルを確立し、自分のコンピュータでhttp://127.0.0.1:8080を開いてください。公開ブラウザアクセスを有効にする前に、ドメイン、リバースプロキシ、信頼できるHTTPS、およびアクセス制御を構成してください。
ローカルURLがHTTPを使用するのはなぜですか?
HTTP URLは暗号化されたSSHトンネル内で運ばれ、トンネルが開いている間のみローカルコンピュータから到達可能です。 これは安全な公開URLではなく、インターネット上で直接公開されるべきではありません。
初期パスワードはどこで取得できますか?
SSH経由でVPSに接続し、サービスユーザーのcode-server設定からユニークなパスワードを読み取ります。 パスワードはVoyraCloudリソースページ、フロントエンドAPI、ログ、または分析には表示されません。初回アクセスを確認した後に変更してください。
イメージにはNode.js、Python、Docker、またはデータベースが含まれていますか?
いいえ。このイメージは、code-server、Git、およびブラウザIDEに必要なLinux環境を提供します。 自分の作業に必要な言語ランタイム、データベース、コンテナ、およびプロジェクト依存関係をインストールおよび維持してください。
通常のVS Code拡張機能をインストールできますか?
一部の拡張機能は動作しますが、互換性はデスクトップVS Codeと同一ではありません。 サポートされている拡張機能のソースまたは信頼できるVSIXを使用し、拡張機能のライセンスおよびランタイム要件を確認し、code-serverをMicrosoftのマーケットプレイスURLにリダイレクトしないでください。
複数の人が1つのcode-serverパスワードを共有できますか?
共有パスワードは個々のアイデンティティ、役割、または監査可能性を提供しません。 このイメージは、単一ユーザーの自己管理型ワークスペースとして設計されています。複数のユーザーが制御されたアクセスを必要とする場合は、別々のVPSインスタンスまたはチームワークスペース管理のために設計されたプラットフォームを使用してください。
VPSの再起動後、私の作業は残りますか?
保存されたファイル、リポジトリ、設定、拡張機能、およびcode-server設定は、通常の再起動後も永続的なVPSストレージに残ります。 未保存のエディタバッファや通常のターミナルプロセスは生き残らない可能性があり、ローカルの永続性はオフサーバーバックアップを置き換えるものではありません。
VoyraCloudはcode-serverを自動的に更新しますか?
いいえ。このイメージは固定された安定版を提供し、既存のインスタンスは新しいリリースを自動的に追随しません。 公式のリリースノートを確認し、データをバックアップし、正確な安定版をインストールし、更新後に認証とプロジェクトワークフローをテストしてください。
結論
code-server VPSは、オペレーティングシステム、ファイル、ツール、およびネットワーク制御をあなたの管理下に置きながら、永続的なブラウザベースの開発環境を提供します。 プライベートSSHトンネルから始め、パスワード認証を保持し、プロジェクトに必要なランタイムと拡張機能のみをインストールし、公開ブラウザアクセスが必要な場合にのみ信頼できるHTTPSリバースプロキシを追加してください。
VPS管理ガイドを使用して、オペレーティングシステムの更新、アクセス制御、監視、およびブラウザIDEの外に残るバックアップ作業を計画してください。
VoyraCloud code-serverアプリケーションイメージから始め、配信された環境を確認し、あなたが管理するVPS上で開発ワークフローを構築してください。

