Self-hosting S3
Was dieses Tutorial behandelt
Dieses Tutorial zeigt, wie man minio für die Arbeit mit capgo einrichtet
Dies ist technisch nicht erforderlich, um capgo auszuführen
Das Einrichten von S3 ermöglicht das Hochladen von Bundles über die CLI
Voraussetzungen
Erste Schritte
Erstellen Sie zunächst ein neues Verzeichnis
Erstellen Sie dann einen Ordner namens data
darin
Führen Sie dann den folgenden Befehl aus:
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"
Wenn Sie das Konsolenfenster mit diesem Container jemals schließen, können Sie ihn mit folgendem Befehl starten:
docker start minio1
Wenn Sie die Konfiguration von minio jemals ändern müssen, können Sie den Container entfernen, indem Sie Folgendes ausführen:
docker rm minio1
⚠️ Dieser Befehl entfernt keine minio-Daten
Edge Functions einrichten
Nachdem wir einen S3-Server ausführen, müssen wir capgo edge functions einrichten, um unseren S3-Server zu verwenden
Dazu müssen wir eine ENV-Datei in capgo/supabase
mit dem Namen envlocal
erstellen
Diese Datei sollte wie folgt aussehen:
STRIPE_WEBHOOK_SECRET=testSTRIPE_SECRET_KEY=testAPI_SECRET=testsecretPLAN_MAKER=testPLAN_SOLO=testPLAN_TEAM=test# Nachfolgend ist die wichtige Einrichtung für S3S3_ENDPOINT=hostdockerinternalS3_REGION=dev-regionS3_PORT=9000S3_SSL=falseR2_ACCESS_KEY_ID=ROOTUSERR2_SECRET_ACCESS_KEY=CHANGEME123
Die IP hostdockerinternal
ist eine Docker-IP, die nur intern von Docker erreicht werden kann, aber wir ersetzen sie im Code durch 0000
, damit minio von localhost aus erreichbar ist
Um edge functions mit unserer neuen env-Datei auszuführen, verwenden Sie
supabase functions serve --env-file /supabase/envlocal
CLI für S3-Nutzung einrichten
Die CLI funktioniert standardmäßig nicht mit minio. Die folgende Änderung an capacitorconfigts
1 ist erforderlich
const config: CapacitorConfig = { appId: 'comdemoapp', appName: 'demoApp', webDir: 'dist', bundledWebRuntime: false, plugins: { CapacitorUpdater : { // Ohne dieses localS3 wird der Upload-Befehl fehlschlagen localS3: true }, },};
Footnotes
-
Die Datei befindet sich in Ihrem App-Verzeichnis ↩