S3 をセルフホスティングする
このチュートリアルの内容は?
このチュートリアルでは、capgoで動作するようにminioをセットアップする方法を説明します。
これは技術的にはcapgoを実行するために必要ではありません。
S3を設定することで、CLIからバンドルをアップロードできるようになります。
要件
はじめに
まず、新しいディレクトリを作成します。
その中にdata
という名前のフォルダを作成します。
次に、以下のコマンドを実行します:
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"
このコンテナのコンソールウィンドウを閉じた場合は、以下のコマンドで再起動できます:
docker start minio1
minioの設定を変更する必要がある場合は、以下のコマンドでコンテナを削除できます:
docker rm minio1
⚠️ このコマンドはminioのデータは削除しません
エッジ関数の設定
S3サーバーが動作したので、capgoのエッジ関数が我々のS3サーバーを使用するように設定する必要があります。
そのために、capgo/supabase
にenvlocal
という名前のENVファイルを作成する必要があります。
このファイルは以下のようになります:
STRIPE_WEBHOOK_SECRET=testSTRIPE_SECRET_KEY=testAPI_SECRET=testsecretPLAN_MAKER=testPLAN_SOLO=testPLAN_TEAM=test# 以下がS3の実際の重要な設定ですS3_ENDPOINT=hostdockerinternalS3_REGION=dev-regionS3_PORT=9000S3_SSL=falseR2_ACCESS_KEY_ID=ROOTUSERR2_SECRET_ACCESS_KEY=CHANGEME123
IPアドレスhostdockerinternal
はDockerの内部からのみアクセス可能なIPですが、コード内でlocalhostからminioにアクセスできるように0000
に置き換えられます。
新しい環境ファイルでエッジ関数を実行するには、以下を使用します:
supabase functions serve --env-file /supabase/envlocal
CLIでS3を使用するための設定
CLIはデフォルトではminioで動作しません。capacitorconfigts
1に以下の変更が必要です:
const config: CapacitorConfig = { appId: 'comdemoapp', appName: 'demoApp', webDir: 'dist', bundledWebRuntime: false, plugins: { CapacitorUpdater : { // これがないとuploadコマンドは失敗します localS3: true }, },};
Footnotes
-
このファイルはアプリディレクトリにあります ↩