コンテンツへスキップ

S3 をセルフホスティングする

このチュートリアルの内容は?

このチュートリアルでは、capgoで動作するようにminioをセットアップする方法を説明します。

これは技術的にはcapgoを実行するために必要ではありません。

S3を設定することで、CLIからバンドルをアップロードできるようになります。

要件

  1. Docker

はじめに

まず、新しいディレクトリを作成します。

その中にdataという名前のフォルダを作成します。

次に、以下のコマンドを実行します:

Terminal window
docker run \
-p 9000:9000 \
-p 9090:9090 \
--user $(id -u):$(id -g) \
--name minio1 \
-e "MINIO_ROOT_USER=ROOTUSER" \
-e "MINIO_ROOT_PASSWORD=CHANGEME123" \
-v PATH_TO_DATA_FOLDER_CREATED_IN_PREVIOUS_STEP:/data \
quayio/minio/minio server /data --console-address ":9090"

このコンテナのコンソールウィンドウを閉じた場合は、以下のコマンドで再起動できます:

Terminal window
docker start minio1

minioの設定を変更する必要がある場合は、以下のコマンドでコンテナを削除できます:

Terminal window
docker rm minio1

⚠️ このコマンドはminioのデータは削除しません

エッジ関数の設定

S3サーバーが動作したので、capgoのエッジ関数が我々のS3サーバーを使用するように設定する必要があります。

そのために、capgo/supabaseenvlocalという名前のENVファイルを作成する必要があります。

このファイルは以下のようになります:

Terminal window
STRIPE_WEBHOOK_SECRET=test
STRIPE_SECRET_KEY=test
API_SECRET=testsecret
PLAN_MAKER=test
PLAN_SOLO=test
PLAN_TEAM=test
# 以下がS3の実際の重要な設定です
S3_ENDPOINT=hostdockerinternal
S3_REGION=dev-region
S3_PORT=9000
S3_SSL=false
R2_ACCESS_KEY_ID=ROOTUSER
R2_SECRET_ACCESS_KEY=CHANGEME123

IPアドレスhostdockerinternalはDockerの内部からのみアクセス可能なIPですが、コード内でlocalhostからminioにアクセスできるように0000に置き換えられます。

新しい環境ファイルでエッジ関数を実行するには、以下を使用します:

Terminal window
supabase functions serve --env-file /supabase/envlocal

CLIでS3を使用するための設定

CLIはデフォルトではminioで動作しません。capacitorconfigts1に以下の変更が必要です:

const config: CapacitorConfig = {
appId: 'comdemoapp',
appName: 'demoApp',
webDir: 'dist',
bundledWebRuntime: false,
plugins: {
CapacitorUpdater : {
// これがないとuploadコマンドは失敗します
localS3: true
},
},
};

Footnotes

  1. このファイルはアプリディレクトリにあります