Für Entwickler

Hosting, das du aus Code steuern kannst

Zinn Digital® ist eine API-first-Plattform. Genau dieselbe Engine-API, die unser Dashboard antreibt, erhalten Sie auch – versioniert, spec-first und zu 100 % zur Build-Zeit dokumentiert, ergänzt durch generierte SDKs, eine CLI, einen Terraform-Provider, signierte Webhooks und einen MCP-Server. Egal, womit Sie arbeiten – ob Terminal, Pipeline, State-File oder KI-Agent –, die Plattform antwortet darauf.

  • 650.000+weltweit gehostete Websites
  • 1OpenAPI-Spezifikation, aus der jedes Tool generiert wird
  • 4Client-SDKs — TypeScript, Python, PHP, Go
  • OAuth 2.1berechtigungsbeschränkter, widerruflicher KI-Agenten-Zugriff

Eine API. Jede Oberfläche nutzt sie.

Die meisten Hostinganbieter klatschen nach dem Start eine API auf ein Control Panel, und das merkt man – die Hälfte der Funktionen des Panels taucht dort nie auf. Wir haben genau umgekehrt gebaut. Das Dashboard, die Admin-Konsole, die CLI, der Terraform-Provider, der MCP-Server und Ihre eigenen Integrationen nutzen alle dieselbe Engine-API. Wenn Sie es im Panel tun können, können Sie es auch im Code tun.

Zuerst die Spezifikation, nicht erst später dokumentiert

Die OpenAPI-Spezifikation ist die einzige Wahrheitsquelle, und kein Endpunkt wird ausgeliefert, wenn er nicht darin enthalten ist. Diese eine Regel sorgt dafür, dass die öffentliche API bereits zur Build-Zeit vollständig dokumentiert ist und nicht erst irgendwann – es gibt keinen undokumentierten Bereich, da ein undokumentierter Endpunkt gar nicht existieren kann.

Automatisch generiert, nie manuell gepflegt

Interaktive Referenzdokumente, die vier Client-SDKs, ein Großteil der CLI und das Terraform-Provider-Scaffolding werden alle aus dieser einen Spezifikation generiert. Eine Quelle, viele Artefakte, immer synchron – Sie müssen nie einer Dokumentation hinterherlaufen, die von der Implementierung abgewichen ist.

Versioniert mit einer Deprecationsrichtlinie

Endpunkte befinden sich unter /v1 mit einer veröffentlichten Richtlinie zur Einstellung und einem Änderungsprotokoll. Sie werden vor Änderungen schriftlich benachrichtigt, anstatt dies erst durch einen fehlschlagenden Build zu bemerken.

In CI vertragstestet

Implementation-gegen-Spezifikation-Vertragstests und OpenAPI-Linting werden bei jeder Änderung ausgeführt. Eine Abweichung zwischen dem Code und dem Vertrag führt zu einem Build-Fehler – sodass die Spezifikation, aus der Sie Ihren Client generieren, genau die Spezifikation ist, die der Server auch tatsächlich einhält.

Authentifizierung, Scoping und die Tücken im großen Maßstab

Zwei Wege hinein, ein einheitliches Prinzip dahinter. Welchen Sie auch nutzen, es gelten dieselben Berechtigungsprüfungen und dieselbe Isolierung auf Datenbankebene.

API-Schlüssel, pro Organisation

Schlüssel haben das Format zdk_<mode>_<prefix>_<secret>. Es wird lediglich ein SHA-256-Hash des Geheimnisses gespeichert – wir können Ihnen einen Schlüssel nach der Ausstellung nicht noch einmal anzeigen, und das gilt auch für jeden, der Zugriff auf unsere Datenbank erlangt. Schlüssel besitzen Berechtigungen, können widerrufen werden und werden pro Organisation anstelle von Einzelpersonen ausgestellt.

Live- und Testmodus getrennt voneinander

Sandbox-Schlüssel sind von Produktschlüsseln getrennt und laufen im Sandbox-Modus: keine echte Abrechnung, keine echte Bereitstellung. Ihre Integrationstests können die API beanspruchen, ohne Geld auszugeben oder Server zu erstellen.

OIDC für Menschen

Benutzersitzungen authentifizieren sich mit von Keycloak ausgegebenen JWTs, die gegen den öffentlichen Schlüssel des Realms verifiziert werden und sich zu demselben Principal-Objekt auflösen wie ein API-Schlüssel. Endpunkte schützen granulare Berechtigungsschlüssel wie sites.create oder apikeys.manage, die pro Organisation überprüft werden – eine Berechtigung in einer Organisation gewährt keinen Zugriff in einer separaten, nicht verwandten Organisation, gilt jedoch für die darunter verschachtelten Organisationen.

Zeilenbasierte Sicherheit im Hintergrund

Jede Mandantenanfrage läuft in einer Transaktion, bei der der Postgres-Org-Scope aus dem Principal gesetzt wird. Die Isolierung wird also durch die Datenbank erzwungen und nicht durch einen ORM-Filter, den jemand vergessen könnte. Der Queryset-Filter ist als Verteidigung in der Tiefe nach wie vor vorhanden.

Für Maschinen gebaut, nicht nur für Demos

Eine API sieht in einer README leicht gut aus und verhält sich unter echtem Traffic nur schwer so. An diesen Punkten haben wir geschliffen, denn genau sie bringen Integrationen um drei Uhr morgens zum Absturz.

Ein Detail, das besonders erwähnenswert ist, da es das Verhalten bei Massenverarbeitung bestimmt: Ein 409 bei doppelten Domains beantwortet die Frage „Wird dieser Hostname hier gehostet?“ für jeden Mandanten. Dies stellt ein Enumerations-Orakel und ein reales Deanonymisierungsrisiko in Bezug auf Footprint-Free dar. Die Drosselung der Website-Erstellung wäre die faule Lösung gewesen und hätte das Produkt für die Massenbereitstellung komplett unbrauchbar gemacht. Stattdessen werden nur abgelehnte Versuche mit doppelten Domains pro Prinzipal limitiert. Erfolgreiche Erstellungen werden niemals angerechnet – Sie können also den ganzen Tag lang Massenbereitstellungen durchführen, während Abfragen fast sofort unterbunden werden.

  • Ein einheitlicher Fehlerumschlag bei jedem Fehlschlag: ein Code, eine verständliche Fehlermeldung, optionale feldspezifische Details und eine request_id, die Sie dem Support nennen können. Validierungsfehler geben 422 mit den Namen der fehlerhaften Felder zurück.
  • Idempotenzschlüssel bei POST, wobei der Wiedergabedatensatz beim Commit statt inline geschrieben wird – sodass ein erneuter Versuch niemals eine zwischengespeicherte 201 wiedergeben kann, die eine Zeile benennt, die nie commited wurde. Eine fehlgeschlagene Anfrage gibt ihre In-Flight-Sperre sofort frei, sodass ein 422 Ihren korrigierten erneuten Versuch nicht blockiert.
  • Cursor-Pagination als Key-Set über UUIDv7 – stabil bei gleichzeitigen Schreibzugriffen, ohne Seitenversatz beim Einfügen von Zeilen während des Scans.
  • RateLimit-Remaining in Antworten, damit ein generierter Client intelligent zurückschalten kann, anstatt zu raten.
  • Nicht autorisierte Ressourcen geben 404 statt 403 zurück – ein Statuscode 403 würde bestätigen, dass die Ressource existiert. Das Filtern nach einer Organisation außerhalb Ihres Bereichs gibt aus demselben Grund eine leere Seite zurück.
  • Die Website-Erstellung ist eine Registrierung, keine Provisionierung: POST /v1/sites gibt 201 mit dem Status pending zurück und blockiert niemals den Build. Das Ereignis wird in derselben Transaktion wie die Zeile in die transaktionale Outbox geschrieben, sodass eine Website genau dann existiert, wenn ihre Provisionierung garantiert angefordert wird.

SDKs, ein CLI und ein Terraform-Provider

Drei Verbraucher desselben Typs für drei verschiedene Arbeitsweisen.

Client-SDKs

Generiert für TypeScript, Python, PHP und Go, wodurch die Spezifikation eingehalten wird, damit ein neuer Endpunkt in Ihrer Sprache eintrifft, ohne auf einen handgeschriebenen Wrapper warten zu müssen.

Zinnector®, das CLI

Erstellen Sie eine WordPress-Website, lassen Sie sie lokal nur mit installiertem Node laufen und deployen Sie sie. Zinnector® überprüft Ihr Projekt im Vorfeld auf den Slot, in den Sie deployen möchten – PHP-Version, Speicherplatz, Dateianzahl –, und warnt Sie vor dem Pushen statt danach. Zudem meldet es Sie an, listet Websites auf, führt Deployments durch, verwaltet Domains und DNS, liest E-Mail-Dienste aus, erstellt Backups, führt erlaubte WP-CLI-Befehle aus, überwacht Protokolle in Echtzeit und führt Massenvorgänge aus. Kostenlos, unter der MIT-Lizenz veröffentlicht und auf Basis derselben öffentlichen API erstellt.

Der Terraform-Provider

Verwalten Sie Websites, Domains, DNS-Einträge, Postfächer und Tarife als Infrastructure as Code. terraform apply stellt das Hosting bereit, und Ihre Umgebungen werden reproduzierbar und überprüfbar, statt aus einer Abfolge von Klicks zu bestehen, die niemand aufgeschrieben hat.

Interaktive Referenz

Generierte Dokumente, die Sie lesen und direkt vom Browser aus aufrufen können. Sie beschreiben genau die Endpunkte, die der Server implementiert – da beide auf derselben Spezifikation basieren.

Webhooks, die überleben, wenn Ihr Endpunkt ausfällt

Hinter der Plattform steht ein robuster Event-Spine: Jede Zustandsänderung schreibt ein Ereignis in eine transaktionale Outbox in Postgres, atomar mit der Datenbankänderung, und ein Relay veröffentlicht es in NATS JetStream. Ereignisse sind typisiert und versioniert – site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending und die übrigen.

Abonnieren, was Ihnen wichtig ist

Registrieren Sie einen Endpoint als WebhookSubscription und wählen Sie die Ereignistypen aus, die er empfangen soll. Ein einziger Datenstrom versorgt Benachrichtigungen, Analysen, Automatisierungen und Ihre Integration gleichermaßen – Sie konsumieren dieselben Ereignisse wie wir.

Mit HMAC signiert

Jede Lieferung ist HMAC-signiert, sodass Sie überprüfen können, ob sie von uns stammt, bevor Sie darauf reagieren.

Mit Backoff erneut versucht und protokolliert

Fehlgeschlagene Zustellungen werden mit exponentiellem Backoff erneut versucht, und jeder Versuch wird als WebhookDelivery aufgezeichnet. Sie können Zustellungen im Dashboard einsehen und erneut senden, anstatt den Support anzuschreiben und zu fragen, was wir gesendet haben.

Mindestens einmal, daher Duplikatbefreiung anhand der id

Die Pipeline arbeitet absichtlich nach dem Prinzip „At-least-once“ anstatt vorzutäuschen, sie sei „Exactly-once“. Wenn ein Relay mitten im Veröffentlichungsschluss stirbt, läuft sein Anspruchs-Lease ab und seine Events werden erneut veröffentlicht. Deduplizieren Sie über die Umschlag-ID, und Ihr Consumer ist per Konstruktion korrekt.

Code auf die Website bringen

Eine API ist nur die halbe Geschichte für Entwickler. Die andere Hälfte ist das Deployment.

  • Verbinden Sie GitHub, GitLab oder Bitbucket über OAuth, wobei Deploy-Schlüssel im Anmeldeinformationsspeicher und nicht in einer Konfigurationsdatei hinterlegt werden.
  • Push löst eine Build-and-Deploy-Pipeline aus, mit Branch-zu-Umgebung-Zuordnung (main zu production, staging zu staging) und stapelspezifischen Build-Schritten für composer und npm.
  • Kehre zu einer früheren Version zurück, wenn eine Bereitstellung fehlschlägt.
  • Staging-Klonen und Push-to-Live, damit eine Änderung in einer echten Umgebung getestet ist, bevor sie die Besucher erreicht.
  • Isolierter SSH-, SFTP- und FTP-Zugang pro Website unter CageFS-Isolation, sodass jeder Mandant nur seine eigenen Dateien sieht.
  • wp-CLI aus dem Panel-Terminal und über SSH.
  • VS Code im Browser über code-server – ein vollständiger Editor mit Erweiterungen, einem integrierten Terminal und Git, mit dem die Dateien der Website direkt bearbeitet werden können.
  • PHP-Version pro Website, bearbeitbare PHP-Einstellungen, Erweiterungen pro Website, Umgebungsvariablen und echte Cronjobs neben WP-Cron.

Und genau dieselbe API, die Ihr KI-Agent nutzen kann

Wir stellen die Plattform als gehosteten MCP-Server bereit: einen schlanken Protokolladapter über der Engine-API, der denselben Aktionskatalog, RBAC und Prüfpfad wiederverwendet. Verbinden Sie Claude Code, Cursor, ChatGPT, Claude Desktop oder einen beliebigen MCP-fähigen Client einmal, und jede Funktion, die wir der API hinzufügen, steht ihm automatisch zur Verfügung.

Der Agent erhält drei Dinge: Tools (dieselbe API-Endpunkte, keine parallele Logik, die abweichen kann), Ressourcen (schreibgeschützter Website-Zustand, Konfiguration, aktuelle Protokolle, Metriken, Betriebszeit und KB-Artikel, damit er vor dem Handeln mit echten Daten diagnostiziert) und Prompts (veröffentlichte Workflow-Vorlagen wie „diese Website diagnostizieren“ oder „eine Migration vorbereiten“).

Sicherheit ist dasselbe wie Authentifizierung: OAuth 2.1, Tokens, die an Ihre Organisation gebunden sind, und RBAC-Berechtigungen mit durchgesetzter zeilenbasierter Sicherheit, pro Tool abgegrenzt und widerrufbar, Sandbox getrennt von der Produktion. Destruktive Aktionen – Löschen, Sperren, Abrechnung, hohe Ausgaben – erfordern eine ausdrückliche Bestätigung oder eine Richtlinie zur menschlichen Genehmigung. Ratenlimits und Ausgabenobergrenzen beschränken KI-getragene kostenpflichtige Aktionen, und jeder MCP-Aufruf wird mit Identität, Tool, Argumenten und Ergebnis protokolliert.

Wir unterstützen das Protokoll, anstatt jede App einzeln zu integrieren. Das bedeutet, dass Sie Ihre KI-Tools wechseln können, ohne dass sich Ihre Hosting-Integration ändert.

FAQ

Verwendet die öffentliche API dieselbe wie das Dashboard?

Ja – es handelt sich um dieselbe Engine-API, die veröffentlicht und abgesichert ist. Das Dashboard, die Verwaltungskonsole, die CLI, der Terraform-Provider, der MCP-Server und die Webhooks greifen alle auf dieselbe Oberfläche zu, weshalb die API dem Panel nie hinterherhinkt.

Kann ich eine Integration testen, ohne Geld auszugeben oder echte Server einzurichten?

Ja. Sandbox-Schlüssel werden getrennt von Produktschlüsseln ausgestellt und laufen im Testmodus: keine echte Abrechnung und keine echte Bereitstellung. Richten Sie Ihre CI auf Sandbox-Anmeldedaten aus und durchlaufen Sie den vollständigen Anfrage- und Antwortzyklus sicher.

Wie verhindere ich, dass durch einen erneuten Versuch (Retry) ein Duplikat erstellt wird?

Senden Sie einen Idempotency-Key bei Ihrem POST. Der Wiederholungseintrag wird beim Commit anstatt inline geschrieben, sodass ein erneuter Versuch niemals einen zwischengespeicherten Erfolg für eine Zeile abspielen kann, die nicht tatsächlich commited wurde, und eine fehlgeschlagene Anfrage ihre Sperre sofort freigibt, damit Ihr korrigierter Wiederholungsversuch nicht aufgehalten wird. Die Webhook-Zustellung erfolgt konstruktionsbedingt nach dem Prinzip „at-least-once“ – deduplizieren Sie anhand der Umschlag-ID auf Ihrer Seite.

Kann ich einem API-Schlüssel Zugriff auf alle meine Kundenorganisationen gewähren?

Heute nicht. API-Schlüssel werden pro Organisation ausgestellt, sodass eine Integration, die sich über mehrere Kundenorganisationen erstreckt, für jede einen eigenen Schlüssel besitzt. Berechtigungen werden für Benutzer-Principals ebenfalls pro Organisation überprüft: Das Besitzen von sites.create in einer Organisation gewährt keinen Zugriff in einer separaten, nicht zusammenhängenden Organisation, gilt jedoch für die darunter verschachtelten Organisationen. Das ist Absicht – es beschränkt einen kompromittierten Schlüssel auf seine eigene Organisation und die darunter liegenden Unterorganisationen, nicht auf die gesamte Plattform.

Was erlaubt die integrierte Entwickler-Rolle eigentlich genau?

Die Entwicklerrolle umfasst das Lesen von Organisationen, die API-Schlüsselverwaltung, das Anzeigen und Erstellen von Websites, den Neustart, das Bereinigen des Caches sowie das Anzeigen und Beantworten von Tickets. Sie schließt die Abrechnungskontrolle bewusst aus. Bitte beachten Sie, dass Berechtigungen für Deployments und Push-to-Live nicht Bestandteil dieser Rolle sind – wenn ein Teammitglied diese benötigt, weisen Sie eine Rolle zu, die diese enthält, anstatt anzunehmen, dass „Entwickler“ die umfassendste technische Rolle ist.

Was passiert mit meinen Webhooks, wenn mein Endpunkt für eine Stunde ausfällt?

Zustellversuche werden mit exponentiellem Backoff wiederholt, und jeder Versuch wird als WebhookDelivery aufgezeichnet, die Sie überprüfen können. Vorgelagert werden Ereignisse in derselben Datenbanktransaktion wie die Änderung selbst in eine transaktionale Outbox geschrieben, sodass nichts verloren geht, wenn ein Consumer nicht verfügbar ist – ein ausgefallener Consumer verzögert sich lediglich, bringt aber niemals den Producer zum Absturz, und Sie können Zustellungen nach Ihrer Rückkehr ganz einfach über das Dashboard wiederholen.

Was kostet es, mit der Entwicklung zu beginnen?

Starte eine kartenfreie 14-tägige Testversion von Footprint-Free Hosting – keine Zahlungsdaten, bis zu 5 Websites. Kostenpflichtige Footprint-Free Tarife beginnen bei 6 $/Monat für PBN 5. Jeder Tarif beinhaltet eine 30-Tage-Geld-zurück-Garantie, kostenlose Migrationen und keine Anbieterbindung.

Lesen Sie die Spezifikation und entwickeln Sie dann danach

Spezifikationsbasierte API, generierte SDKs, eine CLI, ein Terraform-Provider, signierte Webhooks und ein MCP-Server – auf dem Hosting, das wir für über 650.000 Websites weltweit entwickelt haben. Starten Sie eine 14-tägige Testphase ohne Kreditkarte, keine Zahlungsdaten erforderlich.

Kostenlos starten