はじめに
Blueskyのself-hosting PDS (Personal Data Server)を別サーバーへ移設する方法をこのページに書きます。ただし、この方法ではダウンタイムがあります。また、公式の手順ではなく、内容を保証できません。
以降では、移設前のサーバーを旧サーバー、移設後のサーバーを新サーバーと記載します。
環境は以下の通りです。
- Ubuntu 22.04.4 LTS
- PDS 9126d65
要約
旧サーバーの/pds
を新サーバーへ転送します。
詳細
旧サーバーでの作業
旧サーバーのpds
を止めます。この時点で旧サーバーが外部からリクエストを受け付けなくなります。
$ sudo systemctl stop pds
旧サーバーの/pds
を圧縮します。ここではtar.gz
にしていますが、別形式でも構いません。
$ cd /
$ sudo tar czf pds.tar.gz pds
$ sudo chown ${USER}.${USER} pds.tar.gz
scp
コマンドなどを使って圧縮ファイルpds.tar.gz
を手元に転送します。新サーバーを起動済みであれば、直に新サーバーへ転送しても構いません。また、新旧サーバーでpds
が起動していない状態であれば、圧縮せずにそのまま新サーバーに転送してもよいかもしれません。
旧サーバーを止めます。
$ sudo shutdown -h now
新サーバーでの作業
新サーバー未起動であれば、新サーバーを起動します。
インストーラーinstaller.sh
を使って、新サーバーにpds
などをインストールします。
$ wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
$ sudo bash installer.sh
インストール後、新サーバーでcurl http://localhost:3000
などを実行して動作確認します。
以降の作業で/pds
の中身を上書きする前に、新サーバーで一旦pds
を止めます。
$ sudo systemctl stop pds
圧縮ファイルpds.tar.gz
を新サーバーに未転送であれば、新サーバーへ転送します。
新サーバーで転送したファイルを展開し、installer.sh
の作成したファイルを上書きします。
$ cd /
$ sudo tar xf pds.tar.gz
新サーバーでsqlite
ファイルなどを参照して、ファイルが上書きされたことを確認します。例えば、以下の操作により、PDSに属するアカウント情報が出力されるはずです。
$ sudo sqlite3 /pds/account.sqlite
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.
sqlite> select * from account;
上書き確認ができたら、新サーバーで改めてpds
を起動します。
$ sudo systemctl start pds
新サーバーで動作確認をします。
$ curl http://localhost:3000