콘텐츠로 건너뛰기

Self-hosting 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 데이터를 제거하지 않습니다

edge functions 설정하기

이제 S3 서버가 실행 중이므로 capgo edge functions가 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 내부에서만 접근할 수 있는 docker ip이지만, minio가 localhost에서 접근할 수 있도록 코드에서 0000으로 대체합니다

새로운 env 파일로 edge functions를 실행하려면 다음을 사용하세요

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 : {
// localS3가 없으면 upload 명령어가 실패합니다
localS3: true
},
},
};

Footnotes

  1. 파일은 앱 디렉토리에 있습니다