🌊

MisskeyのデータベースをCloudflare R2に保存しちゃおう

2023/07/18に公開

はじめに

この記事は Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】 をベースとして多数の記事を参考にして作られています。
また、筆者の環境はUbuntuに直接インストールする形で運用しているため、Docker等の他の環境では若干使い勝手が異なる可能性があります。あくまで参考程度でお願い致します。

ぜひこっちも見てほしい

私のやり方よりも結構まともに書いていただいております。
Misskey を R2 でバックアップした(Wrangler をブラウザログインせずに使う版)

参考文献リスト

Cloudflareにバケットを作ります


まずは https://dash.cloudflare.com/ の左メニュー内にあるR2をクリック。

開くとバケットを作成なるものが書いてあるのでクリック。

バケット名にはmisskey-backupとかそれっぽいのを書いておきましょう。正直なんでも良いです。
今回僕はここにdb-backupとでも書いておきます。
※位置情報(リージョン)の設定はおまかせします。デフォルトは無設定でいいかなと思います。


作成できるとこんな感じで出ます。
あとは設定で一定期間経過後に削除するのをCloudflare側で設定すると幸せになれます。



ここまでできたら問題ありません。ブラウザは閉じてOK。

サーバー側でバックアップの準備

今回サーバーに用いているOSはUbuntu Serverですので、それを前提として話します。
それ以外の場合は少しずつ読み替えながら聞いてくれると嬉しいです。

下記のシェルスクリプトをコピペして必要に応じて各所を書き換えして任意の場所(Cronが読み込んでくれる場所)に導入します。

そしたら任意の場所でCloudflare Workersのwranglerを導入します。
今回はmisskeyアカウントのHomeで実行します。

terminal
user@server:~$ npm create cloudflare@latest
Need to install the following packages:
  create-cloudflare@2.0.12
Ok to proceed? (y) y

using create-cloudflare version 2.0.12

╭ Create an application with Cloudflare Step 1 of 3
│
├ In which directory do you want to create your application?
│ dir ./ANYDIRNAME
│
├ What type of application do you want to create?
│ type Scheduled Worker (Cron Trigger)
│
├ Do you want to use TypeScript?
│ no typescript
│
├ Copying files from "scheduled" template
│
├ Retrieving current workerd compatibility date
│ compatibility date 2023-07-17
│
╰ Application created

╭ Installing dependencies Step 2 of 3
│
├ Installing dependencies
│ installed via `npm install`
│
╰ Dependencies Installed

╭ Deploy with Cloudflare Step 3 of 3
│
├ Do you want to deploy your application?
│ no deploy via `npm run deploy`
│
├  APPLICATION CREATED  Deploy your application with npm run deploy
│
│ Navigate to the new directory: cd hogehoge
│ Run the development server npm run start
│ Deploy your application npm run deploy
│ Read the documentation https://developers.cloudflare.com/workers
│ Stuck? Join us at https://discord.gg/cloudflaredev
│
╰ See you again soon!

インストールしたらcd/ANYDIRNAMEで移動しましょう。
移動先でnpx wrangler loginでログインします。
※GUIを求められるためCLI環境ではログインできませんでした。なんとかしてGUI環境でログインしてください。もしかしたらドキュメントを読み漁ったら別のやり方でできるかもしれません。

参考になるドキュメント

Installできたらさっきのシェルスクリプトを叩いてみましょう。多分動きます。

あとは大体大元となってるMisskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】とやっていることは同じです。

あとがき

文脈一切関係ないですが一言。

おまけ

副産物です。自由に使ってください。
ただし動作保証はありません。

Discussion