Flutter Web を本番サーバーに安全にデプロイする方法【SSH / rsync / vim】完全ガイド

Flutter Web デプロイのベストプラクティス

Web サイトや Web アプリを本番サーバーにデプロイするとき、「どうすれば安全に作業できるか」はとても重要です。

特に Linux/UNIX サーバーでは、昔から受け継がれてきた“事故らないための作法”があり、これを理解しておくと本番環境を扱うときの不安が一気に減ります。

この記事では、Flutter Web を例にしながら、SSH・rsync・vim を使ったシンプルで安全なデプロイ方法をまとめます。


1. SSH 接続を短縮する(~/.ssh/config)

毎回 IP アドレスやユーザー名を入力するのは面倒なので、SSH の設定ファイルに接続先を登録しておきます。

Host myserver
    HostName 123.123.123.123
    User username
    IdentityFile ~/.ssh/id_ed25519

これで以下のようにコマンド入力を短縮できます:

  • ssh myserver
  • scp file myserver:/path/
  • rsync ./local/ myserver:/path/
  • sftp myserver

SSH を使うコマンドはすべてこの設定を共有します。


2. Flutter Web の成果物をビルドする

Flutter Web の成果物は build/web/ に生成されます。

flutter build web

このフォルダをそのまま本番に送れば OK です。


3. 本番デプロイは rsync が最強

本番環境に反映するときは、rsyncを使います。rsyncコマンドでは、 ローカル → サーバー の順にディレクトリを入力します。

rsync -avz ./build/web/  myserver:/var/www/html/

rsync のメリット

  • 差分だけアップロード(速い)
  • ディレクトリ構造を自動作成
  • パーミッション維持
  • SSH の設定をそのまま使える

「/」の有無が重要

  • web/ → 中身だけ送る(一般的にこちら)
  • web → フォルダごと送る(誤ると意図しないディレクトリ構造になってしまう)

4. 除外設定(exclude)について

rsync には、.gitignore のように特定のファイルやフォルダを除外する機能があります。

例えば以下のように書くと、.git/ を送らずに済みます:

rsync -avz --exclude='.git/' ./local/ myserver:/var/www/html/

複数の除外パターンをまとめたい場合は、--exclude-from を使って専用ファイルを読み込むこともできます。

ただし、Flutter Web の場合は build/web/ の中身をそのままデプロイするだけなので、通常は除外設定を使う必要はありません。

Flutter Web の成果物は純粋な静的ファイル(HTML/CSS/JS/画像)だけで構成されているため、余計なファイルが混ざることがほぼないからです。


5. dry-run(ドライラン)で安全確認

rsync の -nテスト実行です。

rsync -avzn ./build/web/ myserver:/var/www/html/

実際には何も送らず、以下を確認できます:

  • 何がアップロードされるか
  • 何が変更されるか
  • どのファイルが差分か

本番デプロイではほぼ必須の作法です。


6. 軽い修正は SSH + vim がシンプルで強い

ちょっとした修正なら、サーバーに直接入って vim で編集するのが一番速いです。

ssh myserver
cd /var/www/html/

編集前に必ずバックアップを作る

本番ファイルを直接編集する前には、必ずバックアップを作成します。

cp index.html index.html.bak

これは「作業前の状態を安全に残しておくためのバックアップ」です。

この .bak は “作業前に作成したもの” をそのまま残しておき、作業後に上書きしないようにしましょう。

作業後に上書きしてしまうと、作業前の状態に戻れなくなるためです。 しばらくの間は、作業前に作成した .bak をそのまま保持しておくほうが安全です。

編集

vim index.html

もし事故ったら復元

cp index.html.bak index.html

これで作業前の状態に戻せます。


7. rsync と SSH+vim の使い分け

用途方法理由
本番デプロイrsync差分・高速・安全
軽い修正SSH + vim即時・シンプル
安全確認dry-run事故防止
セーフポイント作成cp file file.bakいつでも戻れる

まとめ

  • SSH の設定で接続を短縮
  • Flutter Web は build/web/ をそのまま送ればOK
  • 本番デプロイは rsync(dry-run を挟む)
  • 「/」の有無で挙動が変わる
  • 除外設定は .gitignore のように使えるが、Flutter Web では通常不要
  • 軽い修正は SSH + vim
  • バックアップは “作業前に作成した .bak” を残し、作業後に上書きしない

この一連の流れを理解しておくと、本番環境を扱うときの不安が一気に減り、安心してデプロイ作業ができるようになります。

Leave a Comment

CAPTCHA