vscode-sftp-config について
VSCode SFTP で静的サイトを本番サーバーへ配置するためのスキルです。プロジェクト分析から接続設定、Nginx 設定、配置確認までを案内し、HTTPS、セキュリティヘッダー、キャッシュを含むテンプレートを備えています。
主な機能
- 01静的プロジェクトとビルド出力の分析
- 02VSCode SFTP 設定の生成
- 03SSH ホストエイリアスの設定
- 04メインドメイン・サブドメイン用 Nginx テンプレート
- 05配置と検証のチェックリスト
活用シーン
- 01静的サイトを本番サーバーへ同期
- 02Nginx の仮想ホスト設定を作成
- 03開発・テスト・本番の接続設定を計画
- 04配置ファイル、HTTPS、レスポンスヘッダーの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ libukai/ awesome-agent-skills --skill vscode-sftp-configインストール後、Claude Code で/vscode-sftp-configを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/deploy-checklist.mdnginx-static.conf.templatenginx-subdomain.conf.templatesftp.json.templatereferences/nginx-best-practices.mdssh-config.mdssl-security.md詳細
VSCode SFTP の設定
静的ウェブサイトを本番サーバーにデプロイするために、VSCode SFTP を設定します。セキュリティヘッダー、キャッシュ戦略、パフォーマンス最適化を含む、本番環境向けの Nginx 設定テンプレートを使った完全なワークフローを提供します。
基本的なワークフロー
ステップ 1:プロジェクト構成を分析する
デプロイする静的ファイルを特定します。
- 純粋な静的プロジェクト:ルートディレクトリにある HTML、CSS、JS
- ビルドベースのプロジェクト:
dist/、build/、public/の出力ディレクトリを確認します - 静的サイトジェネレーター:
package.jsonまたはドキュメントに記載されたビルドコマンドを確認します
デプロイの詳細をユーザーに確認します。
- リモートサーバーのアドレス(IP またはホスト名)
- リモートパス(例:
/var/www/sitename) - SSH 認証方式(パスワードまたは SSH キーのパス)
- Nginx の設定に使用するドメイン名
- メインドメインかサブドメインか
ステップ 2:SFTP の設定を生成する
VSCode 拡張機能:このスキルでは、Satiro Marra による code-sftp 拡張機能を使用します。
ステップ 2A:SSH Config を設定する(推奨されるベストプラクティス)
sftp.json を作成する前に、管理しやすくするため、~/.ssh/config に SSH ホストのエイリアスを設定します。
Host project-prod
HostName 82.157.29.215
User root
Port 22
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 3
SSH config の利点:
- ✅ SFTP 拡張機能の警告(
Section for 'IP' not found)を解消します - ✅ ターミナルでホストエイリアスを使用できます:
ssh project-prod - ✅ SSH 設定(接続の keep-alive、圧縮など)を一元管理できます
- ✅ 複数の環境(開発、ステージング、本番)を簡単に管理できます
~/.ssh/config にサーバーがすでに登録されているか確認します。
cat ~/.ssh/config | grep -A 5 "82.157.29.215"
登録されている場合は、その既存のホストエイリアスを使用します。登録されていない場合は、新しいエントリを追加します。
ステップ 2B:SFTP の設定を作成する
assets/sftp.json.template のテンプレートを使って、.vscode/sftp.json を作成します。
必須の設定項目:
name:識別しやすいプロファイル名host:SSH ホストエイリアス(例:"Tencent_Pro")または IP アドレスprotocol:SFTP(セキュア)には「sftp」、FTP には「ftp」port:SFTP は 22、FTP は 21username:SSH/FTP のユーザー名privateKeyPath:SSH 秘密鍵のパス(例:/Users/username/.ssh/id_rsa)remotePath:リモートディレクトリのパス(例:/var/www/sitename)uploadOnSave:falseを推奨します(手動同期のほうが安全です)
任意の高度な設定項目:
ignore:アップロード対象から除外するファイルやフォルダーの配列watcher:自動アップロード用のファイル監視設定syncOption:同期の動作(ファイルの削除、更新、既存ファイルのスキップ)useTempFile:アップロード中に一時ファイルを使用しますdownloadOnOpen:ファイルを開いたときに自動ダウンロードします
プロジェクトに合わせてカスタマイズします。
{{HOST_ALIAS}}を SSH config のエイリアス(推奨)または IP アドレスに置き換えます- その他の
{{PLACEHOLDERS}}を実際の値に置き換えます - プロジェクト固有のファイルを
ignore配列に追加します(.claude、nginx.conf、ビルド成果物など) - ビルドベースのプロジェクトの場合:
uploadOnSave: falseのままにし、ビルド後に手動で同期します - 純粋な静的プロジェクトの場合:必要に応じて
uploadOnSave: trueを有効にし、即時にデプロイできるようにします
ステップ 3:Nginx の設定を生成する
適切なテンプレートを選択します。
- メインドメイン:メインのウェブサイトには
assets/nginx-static.conf.templateを使用します - サブドメイン:
slides.example.comのようなサブドメインにはassets/nginx-subdomain.conf.templateを使用します
設定をカスタマイズします。
{{DOMAIN}}を実際のドメイン名に置き換えます{{DOCUMENT_ROOT}}をリモートパス(例:/var/www/aiseed)に置き換えます- カスタム証明書を使用する場合は、SSL 証明書のパスを調整します
- 必要に応じてサブドメイン固有の設定を行います
references/nginx-best-practices.md の基本的な機能を含めます。
- HTTP から HTTPS へのリダイレクト
- HTTP/2 のサポート
- Gzip 圧縮
- 静的リソースのキャッシュ(JS/CSS/画像は 1 年間、HTML は 1 時間)
- セキュリティヘッダー(HSTS、X-Frame-Options、CSP など)
- アクセスログとエラーログ
ステップ 4:デプロイ手順を提示する
assets/deploy-checklist.md に基づいて、デプロイチェックリストを作成します。
-
初期設定(初回のみ):
- VSCode 拡張機能をインストールします:code-sftp by Satiro Marra
- コマンドパレット(Cmd/Ctrl+Shift+P)を開き、
SFTP: Configを実行して.vscode/sftp.jsonを作成します - サーバーへの SSH アクセスを確認します:
ssh user@host - リモートディレクトリが存在することを確認します:
ssh user@host "mkdir -p /var/www/sitename" - 適切な権限を設定します:
ssh user@host "chmod 755 /var/www/sitename"
-
ファイルのデプロイ:
- ビルドが必要なプロジェクトの場合:まずビルドコマンドを実行します(例:
npm run build) - VSCode のコマンドパレットを開き、
SFTP: Sync Local → Remoteを実行してすべてのファイルをアップロードします - または、エクスプローラーでフォルダーを右クリックし、「Upload Folder」を選択します
- VSCode の出力パネル(表示 → 出力 → SFTP)でアップロードの進行状況を確認します
- ファイルがアップロードされたことを確認します:
ssh user@host "ls -la /var/www/sitename"
- ビルドが必要なプロジェクトの場合:まずビルドコマンドを実行します(例:
-
Nginx の設定:
- 生成された設定ファイルを
/etc/nginx/sites-available/にアップロードします - シンボリックリンクを作成します:
ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/ - 設定をテストします:
sudo nginx -t - リロードします:
sudo systemctl reload nginx
- 生成された設定ファイルを
-
SSL/TLS の設定(未設定の場合):
- 証明書の設定については
references/ssl-security.mdを参照してください - 無料の証明書には Let's Encrypt を使用します:
certbot --nginx -d example.com
- 証明書の設定については
-
確認:
- HTTPS をテストします:
curl -I https://example.com - セキュリティヘッダーを確認します:securityheaders.com を使用します
- パフォーマンスをテストします:PageSpeed Insights を使用します
- HTTPS をテストします:
ステップ 5:セットアップを文書化する
プロジェクトのドキュメント(README.md または CLAUDE.md)を更新し、以下を記載します。
- デプロイ方法(SFTP で
/var/www/pathにデプロイ) - SFTP 設定ファイルの場所(
.vscode/sftp.json) - Nginx 設定の参照先
- ビルドコマンド(該当する場合)
- 今後の更新時のデプロイワークフロー
このアーキテクチャの利点
静的ファイル+SFTP によるデプロイが有利な理由をユーザーに説明します。
- シンプル:編集 → アップロード → 公開(ビルドパイプラインもコンテナも不要)
- 高パフォーマンス:Nginx は Node.js/Python バックエンドよりも高速に静的ファイルを配信します
- 高い信頼性:クラッシュやハングを起こすバックエンドプロセスがありません
- リソース効率:サーバーのメモリと CPU の使用量を抑えられます
- 低コスト:最小構成の VPS または共有ホスティングでホストできます
- 簡単なロールバック:バックアップディレクトリから前のバージョンをコピーできます
このアーキテクチャを使用すべきでない場合
以下の場合、静的ファイル+SFTP によるデプロイは適していません。
- バックエンド API エンドポイントが必要な場合
- サーバー側でのフォーム処理が必要な場合(n8n、FormSpree などの外部サービスを使用する場合を除く)
- ユーザー認証やセッションが必要な場合
- データベースとの連携が必要な場合
- サーバーサイドレンダリング(SSR)が必要な場合
リソース
references/
ssh-config.md- SSH 設定ファイルのセットアップとベストプラクティス(ホストエイリアス、ジャンプホスト、セキュリティ)nginx-best-practices.md- 静的サイト向けの包括的な Nginx 最適化ガイドssl-security.md- SSL/TLS 証明書のセットアップとセキュリティ設定
assets/
sftp.json.template- VSCode SFTP 設定テンプレート(配列形式、SSH ホストエイリアスを使用)nginx-static.conf.template- メインドメイン用 Nginx 設定テンプレートnginx-subdomain.conf.template- サブドメイン用 Nginx 設定テンプレートdeploy-checklist.md- デプロイを段階的に確認するためのチェックリスト