Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 8191

【Misskey】Docker上で動作するMisskeyのバックアップ・復元方法 - ペグ園

$
0
0

はじめに

ご覧いただきありがとうございます。ペグ酸です。

今回は、Docker上で動作するMisskeyのバックアップと復元の方法を、個人的な備忘録も兼ねてまとめます。

参考にされる際は自己責任にてお願いいたします。

目次

環境

以下の環境で検証しています。

  • OS: Ubuntu Server 22.04.5 LTS
  • Docker: 24.0.7 (Server, Client両方)
  • Docker Compose: v2.29.7
  • Nginx(リバースプロキシ): 1.18.0 (Ubuntu)

バックアップの流れ

1. Misskeyを停止する

Misskeyのディレクトリに移動し、以下のコマンドを実行して停止します。

$ sudo docker compose down

2. データベースだけ起動する

データベースをバックアップする下準備として、Misskeyのデータベースだけ起動します。

$ sudo docker compose up -d db

3. データベースをダンプする

以下のコマンドでデータベースをダンプします。Qiitaの記事を参考にしました。

# データベースをダンプ
$ sudo docker compose -f ./docker-compose.yml exec -T db bash -c "pg_dump -Fc -U misskey -d misskey > /var/lib/postgresql/data/misskey_db.dump"

# ダンプデータ取り出し
$ sudo mv ./db/misskey_db.dump ./

# ダンプデータの名称変更
$ sudo mv db db.old

4. 設定ファイルをバックアップする

$ cp .config/default.yml ./default.yml.old
$ cp .config/docker.env ./docker.env.old
$ cp ./compose.yml ./compose.yml.old

5. リバースプロキシの設定をバックアップする

$ cp /etc/nginx/sites-available/misskey.conf misskey.conf

6. (必要に応じて)filesディレクトリをバックアップする

オブジェクトストレージではなくローカルに保存しているデータが有るときは、filesディレクトリをバックアップします。

$ tar cvf ./files ./files.tar

バックアップからの復元の流れ

基本的には公式の手順と同じですが、sudo docker compose run --rm web pnpm run initの前にデータベースをインポートします。

1. リポジトリの取得

$ git clone -b master https://github.com/misskey-dev/misskey.git
$ cd misskey
$ git checkout master

2. 設定

バックアップしたものを使います。

$ cp ./default.yml.old .config/default.yml
$ cp ./docker.env.old .config/docker.env
$ cp ./compose.yml.old ./compose.yml

3. ビルド

ビルドします。

$ sudo docker compose build

4. データベースのインポート

データベースをインポートします。こちらもQiitaの記事を参考にしました。

# データベースを起動して初期化
$ sudo docker compose up -d db

# PostgreSQLのコンテナID取得
$ sudo docker ps

# ダンプファイルをコンテナにコピー
$ sudo docker cp misskey_db.dump [先程調べたコンテナID]:/db.dump

# データベースインポート
$ docker compose exec -T db pg_restore -U misskey -d misskey /db.dump

# データベースを停止
$ docker compose down

5. (必要に応じて)filesディレクトリを復元する

オブジェクトストレージではなくローカルに保存しているデータが有るときは、復元します。

$ tar xf ./files.tar ./files

6. 初期化

Misskeyの初期化を行います。

$ sudo docker compose run --rm web pnpm run init

7. リバースプロキシの設定ファイルをインポート

適宜SSL証明書の設定も行ってください。(Let's Encryptのcertbotなど)

$ sudo cp misskey.conf /etc/nginx/sites-available/misskey.conf
$ ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf

8. 起動

Misskeyとリバースプロキシを起動します。これにて完了です。

$ sudo docker compose up -d
$ sudo service nginx start

参考にしたサイト

qiita.com

misskey-hub.net


Viewing all articles
Browse latest Browse all 8191

Trending Articles