Langsung ke konten

S3 Self-hosting

Apa yang akan dibahas dalam tutorial ini?

Tutorial ini akan menunjukkan cara mengatur minio agar dapat bekerja dengan capgo

Ini secara teknis tidak diperlukan untuk menjalankan capgo

Mengatur S3 memungkinkan untuk mengunggah bundle dari CLI

Persyaratan

  1. Docker

Memulai

Pertama, buat direktori baru

Kemudian buat folder bernama data di dalamnya

Lalu jalankan perintah berikut:

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"

Jika Anda menutup jendela konsol dengan container ini, Anda dapat memulainya dengan:

Terminal window
docker start minio1

Jika Anda perlu mengubah konfigurasi minio, Anda dapat menghapus container dengan menjalankan:

Terminal window
docker rm minio1

⚠️ Perintah ini tidak menghapus data minio

Mengatur fungsi edge

Sekarang kita memiliki server S3 yang berjalan, kita perlu mengatur fungsi edge capgo untuk menggunakan server S3 kita

Untuk melakukan itu kita perlu membuat file ENV di capgo/supabase bernama envlocal

File ini seharusnya terlihat seperti ini:

Terminal window
STRIPE_WEBHOOK_SECRET=test
STRIPE_SECRET_KEY=test
API_SECRET=testsecret
PLAN_MAKER=test
PLAN_SOLO=test
PLAN_TEAM=test
# Berikut adalah pengaturan penting untuk 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 adalah IP docker yang hanya dapat dijangkau secara internal oleh docker, tetapi kita menggantinya dalam kode dengan 0000 sehingga minio dapat dijangkau dari localhost

Untuk menjalankan fungsi edge dengan file env baru kita gunakan

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

Mengatur CLI untuk menggunakan S3

CLI tidak akan berfungsi secara default dengan minio. Perubahan berikut pada capacitorconfigts1 diperlukan

const config: CapacitorConfig = {
appId: 'comdemoapp',
appName: 'demoApp',
webDir: 'dist',
bundledWebRuntime: false,
plugins: {
CapacitorUpdater : {
// Tanpa localS3 ini perintah upload akan gagal
localS3: true
},
},
};

Footnotes

  1. File terletak di direktori aplikasi Anda