Zum Inhalt springen

Eigener Speicher

Capgo unterstützt benutzerdefinierte Storage-Lösungen für deine App-Bundles. So kannst du deine Updates auf deiner eigenen Infrastruktur oder bei Drittanbietern hosten. Das ist besonders nützlich für Unternehmen mit speziellen Sicherheitsanforderungen, Compliance-Vorgaben oder bestehender Storage-Infrastruktur.

Custom Storage in Capgo funktioniert so, dass du dein Bundle an einen externen Ort hochlädst und Capgo die URL zum Zugriff bereitstellst. Der Capgo SDK lädt Updates dann direkt von deinem benutzerdefinierten Speicherort herunter, anstatt den Standard-Cloud-Speicher von Capgo zu nutzen.

Der einfachste Weg, Custom Storage zu nutzen, ist, dein Bundle auf eine öffentlich erreichbare URL hochzuladen und diese URL an Capgo zu übergeben.

Terminalfenster
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip

Dieser Befehl weist Capgo an, auf das Bundle unter der angegebenen URL zu verweisen, anstatt es in den Cloud-Storage von Capgo hochzuladen.

Für sicheren externen Speicher kannst du dein Bundle verschlüsseln und die Entschlüsselungsschlüssel angeben:

Terminalfenster
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEY

Capgo bietet integrierten Support für Amazon S3 und S3-kompatible Speicherdienste. Der CLI kann dein Bundle automatisch zu S3 hochladen und Capgo so konfigurieren, dass die S3-URL verwendet wird.

Terminalfenster
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-bucket-name your-bucket-name

Für S3-kompatible Dienste oder benutzerdefinierte Endpunkte:

Terminalfenster
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-endpoint https://s3.your-provider.com \
--s3-bucket-name your-bucket-name \
--s3-port 443 \
--no-s3-ssl # Only if your endpoint doesn't support SSL
ParameterBeschreibungErforderlich
--s3-regionAWS-Region für deinen S3-BucketJa
--s3-apikeyS3 Access Key IDJa
--s3-apisecretS3 Secret Access KeyJa
--s3-bucket-nameName deines S3-BucketsJa
--s3-endpointEigene S3-Endpoint-URLNein
--s3-portPort für S3-EndpointNein
--no-s3-sslSSL für S3-Upload deaktivierenNein

Bei der Verwendung von Custom Storage, insbesondere mit Verschlüsselung, müssen Sie Ihre Bundles korrekt vorbereiten. Dazu gehört das Erstellen einer Zip-Datei und optional deren Verschlüsselung.

Erstellen Sie zuerst eine Zip-Datei Ihres App-Bundles:

Terminalfenster
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

Der zip-Befehl gibt den Checksum-Wert der Zip-Datei zurück. Diesen Checksum können Sie bei Bedarf verwenden, um die Zip-Datei zu verschlüsseln. Nutzen Sie die --json Option, um strukturierte Ausgaben inklusive des Checksums zu erhalten.

Terminalfenster
npx @capgo/cli@latest bundle zip [appId] \
--path ./dist \
--bundle 1.2.3 \
--name myapp-v1.2.3 \
--json \
--no-code-check \
--key-v2 \
--package-json ../../package.json,./package.json
OptionBeschreibung
--pathPfad zum zu zippenden Ordner (Standardwert ist webDir aus capacitor.config)
--bundleBundle-Versionsnummer für den Namen der ZIP-Datei
--nameBenutzerdefinierter Name für die Zip-Datei
--jsonAusgabe im JSON-Format (inkl. Checksumme)
--no-code-checkPrüfung von notifyAppReady() und der Index-Datei überspringen
--key-v2Verschlüsselung v2 verwenden
--package-jsonPfade zu package.json-Dateien für Monorepos (kommagetrennt)

Schritt 2: Bundle verschlüsseln (Optional)

Abschnitt: „Schritt 2: Bundle verschlüsseln (optional)“

Für mehr Sicherheit verschlüssle dein Zip-Bundle vor dem Upload:

Terminalfenster
# Using default local key
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Using custom key file
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Using key data directly
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"

Der CHECKSUM Der Parameter ist erforderlich und sollte der Checksumme deiner ZIP-Datei entsprechen. Die Checksumme kannst du aus der Ausgabe des zip-Befehls erhalten (verwende --json für eine strukturierte Ausgabe).

Standardmäßig verwendet der `encrypt`-Befehl deinen lokalen privaten Signing-Key. Du kannst einen benutzerdefinierten Key angeben, indem du den --key oder --key-data options.

Der encrypt-Befehl gibt den folgenden Wert zurück: ivSessionKey wird für den Upload oder die Entschlüsselung benötigt.

OptionBeschreibung
zipPathPfad zur zu verschlüsselnden Zip-Datei (erforderlich)
checksumChecksum der ZIP-Datei (erforderlich) – über den zip-Befehl ermitteln
--keyBenutzerdefinierter Pfad für den privaten Signing-Key (optional, nutzt standardmäßig den lokalen Key)
--key-dataDirekte Übergabe der privaten Signing-Key-Daten (optional)
--jsonAusgabe der Ergebnisse im JSON-Format
  1. Erstelle deine App:

    Terminalfenster
    npm run build
  2. Zip-Bundle erstellen:

    Terminalfenster
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3

    Notiere dir den Checksum-Wert dieses Befehls.

  3. Bundle verschlüsseln:

    Terminalfenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2

    Notiere den ivSessionKey aus der Ausgabe.

  4. In deinen Storage hochladen: Lade die verschlüsselte ZIP-Datei in deinen Hosting-Service hoch.

  5. Bei Capgo registrieren:

    Terminalfenster
    npx @capgo/cli@latest bundle upload \
    --external https://your-cdn.com/bundles/com.example.app-1.2.3.zip \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_3
  1. Erstelle deine App:

    Terminalfenster
    npm run build
  2. Direkt zu S3 hochladen:

    Terminalfenster
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --channel Production

Beispiel 3: S3 mit Verschlüsselung

Abschnitt: „Beispiel 3: S3 mit Verschlüsselung“
  1. Build und zippen:

    Terminalfenster
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Bundle verschlüsseln:

    Terminalfenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Mit Verschlüsselung zu S3 hochladen:

    Terminalfenster
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_2 \
    --channel Production

Beachte bei der Nutzung von Custom Storage diese Best Practices für die Sicherheit:

  • Stelle sicher, dass deine Storage-URLs für App-Nutzer erreichbar, aber nicht öffentlich auffindbar sind
  • Nutze nach Möglichkeit Signed URLs oder Token-basierte Authentifizierung
  • Implementiere korrekte CORS-Header für Web-Apps
  • Verschlüssele sensible Bundles immer mit den Capgo Verschlüsselungstools
  • Speichere Encryption Keys sicher und rotiere sie regelmäßig
  • Nutze HTTPS für alle Bundle-URLs (erforderlich für Mobile- und Electron-Apps)
  • Überwache Access Logs auf ungewöhnliche Download-Muster
  • Richte Alerts für fehlgeschlagene Bundle-Downloads ein
  • Prüfe regelmäßig deine Storage-Berechtigungen

Bundle wird nicht heruntergeladen:

  • Prüfen Sie, ob die URL öffentlich zugänglich ist und HTTPS verwendet (erforderlich für Mobile- und Electron-Apps)
  • CORS-Header für Web-Apps prüfen
  • Sicherstellen, dass das Bundle-Format korrekt ist

Verschlüsselungsfehler:

  • Überprüfe die ivSessionKey mit dem verschlüsselten Bundle übereinstimmt
  • Prüfen Sie, ob das Bundle mit dem richtigen Key verschlüsselt wurde
  • Sicherstellen, dass Encryption v2 für neue Bundles genutzt wird

S3-Upload-Fehler:

  • S3-Credentials und Berechtigungen prüfen
  • Bucket-Policies und CORS-Konfiguration prüfen
  • Sicherstellen, dass die angegebene Region korrekt ist

Bundle-Status prüfen:

Terminalfenster
npx @capgo/cli@latest app debug

Bundle-Integrität verifizieren:

Terminalfenster
npx @capgo/cli@latest bundle list
  • Mehr über Channels um verschiedene Deployment-Umgebungen zu verwalten
  • Entdecken Update-Verhalten um anzupassen, wie Updates angewendet werden
  • Einrichten CI/CD-Integration um deinen Custom-Storage-Workflow zu automatisieren

Wenn du es nutzt Eigener Speicher um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung für die Implementierungsdetails in Encryption, Compliance für das Implementierungsdetail in Compliance, Capgo Security Scanner für den Produkt-Workflow im Capgo Security Scanner, Capgo Sicherheit für den Produkt-Workflow in Capgo Security und Capgo Trust Center für den Produkt-Workflow im Capgo Trust Center.