Zum Inhalt springen

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

  1. Docker

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:

Terminal-Fenster
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:

Terminal-Fenster
docker start minio1

Wenn Sie die Konfiguration von minio jemals ändern müssen, können Sie den Container entfernen, indem Sie Folgendes ausführen:

Terminal-Fenster
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:

Terminal-Fenster
STRIPE_WEBHOOK_SECRET=test
STRIPE_SECRET_KEY=test
API_SECRET=testsecret
PLAN_MAKER=test
PLAN_SOLO=test
PLAN_TEAM=test
# Nachfolgend ist die wichtige Einrichtung für S3
S3_ENDPOINT=hostdockerinternal
S3_REGION=dev-region
S3_PORT=9000
S3_SSL=false
R2_ACCESS_KEY_ID=ROOTUSER
R2_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

Terminal-Fenster
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 capacitorconfigts1 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

  1. Die Datei befindet sich in Ihrem App-Verzeichnis