Astro + GitHub + Netlify によるブログはすべて無料で構築でき、GitHub に push するだけで後はすべて自動的にアップデートされるという信じられないようなパーフォマンスですが、私は現在 xserver と契約しており、古い友人のブログやら Laravel が稼働しているので、xserver 上に astro を設定するのが自然です。
実際に Netlify と xserver を比較するとスピードは xserver の方が遥かに速いです。当然ですが。
それと、Netlify では自作の動画を埋め込むことができません。
問題は、ローカルでビルドした src を xserver 上にデプロイすることです。 これはこれまでは FileZilla を使っていました。そして、それは割と面倒でした。
しかし、ビルド + デプロイを自動化してしまえばいいと気づきました。
鍵ペアを作成して ssh ログインできるとしても、ログインしようとすると passphrase を要求されます。
ssh -i ~/.ssh/moheno.key -p 10022 moheno@sv14154.xserver.jp
私の環境は、linux mint 21.3 ですが、以下の1行でパスフレーズを要求されなくなります。
ssh-add ~/.ssh/moheno.key
…
と思ったのですが、コンピュータを再起動するとやはりパスフレーズを要求されます。
私の場合は、2 台の NAS に自動 ssh ログインしていろいろと操作するので、少なくとも 3 つの ssh キーが混在しています。
いろいろ考えて、xserver で ssh キー作成時にパスフレーズを入力しなければいいと思い実行してみたらうまくいきました。
セキュリティ的に少し甘くなるかもしれませんが、基本的にブログなのでこれでいいかと思っています。
ローカルでビルドして xserver と GitHub の両方に自動的にデプロイします。
次のようなシェルスクリプトを作成します。
#!/bin/sh
# ビルドするcd ~/astroblognpm run build
# xserver にデプロイscp -r -i ~/.ssh/moheno.key -P 10022 dist/* moheno@sv14154.xserver.jp:~/moheno.xsrv.jp/public_html/scp -r -i ~/.ssh/moheno.key -P 10022 public moheno@sv14154.xserver.jp:~/moheno.xsrv.jp/public_html/
# github にデプロイstamp=`date '+%y%m%d%H%M%S'`git add .git commit -m $stampgit branch -M maingit push -u origin main
動画が public に入れてあるので public もアップする必要があるようです。