Pro vývojáře

Hosting, který řídíte kódem

Zinn Digital® je platforma založená na API. Získáváte přesně ten samý engine API, který pohání náš řídicí panel – verzovaný, založený na specifikacích a se 100% dokumentací v době sestavení, doplněný o vygenerovaná SDK, CLI, poskytovatele pro Terraform, podepsané webhooky a MCP server. Ať už k práci používáte cokoli – terminál, pipeline, soubor stavu nebo AI agenta –, platforma vám na to odpoví.

  • 650 000+weby hostované po celém světě
  • 1Specifikace OpenAPI, ze které se generuje každý nástroj
  • 4klientská SDK — TypeScript, Python, PHP, Go
  • OAuth 2.1omezený a odvolatelný přístup pro agenty AI

Jedno API. Každý povrch na něm běží.

Většina hostitelů přidá API k ovládacímu panelu až dodatečně a je to znát – polovina funkcí panelu se do něj vůbec nedostane. My jsme to postavili obráceně. Dashboard, administrátorská konzole, CLI, Terraform provider, MCP server a vaše vlastní integrace – ti všichni využívají stejné API enginu. Co zvládnete v panelu, to svedete i v kódu.

Nejprve specifikace, nedokumentováno později

Specifikace OpenAPI je jediným zdrojem pravdy a žádný koncový bod není nasazen, pokud v ní není uveden. Právě toto jediné pravidlo zajišťuje, že veřejné API je kompletně dokumentováno již v době sestavení, a nikoli až dodatečně – neexistuje žádné nedokumentované místo, protože nedokumentovaný koncový bod nemůže existovat.

Vygenerováno, nikdy neudržováno ručně

Interaktivní referenční dokumentace, čtyři klientské sady SDK, velká část CLI a šablony poskytovatele Terraformu jsou generovány z této jediné specifikace. Jeden zdroj, mnoho artefaktů, vždy v synchronizaci – už nikdy nebudete honit dokumentaci, která se rozešla s implementací.

Verzováno se zásadou ukončení podpory

Koncové body se nacházejí pod adresou /v1 se zveřejněnými zásadami zastarávání a protokolem změn. O případných změnách budete informováni předem písemně, namísto toho, abyste na ně přišli až při selhání sestavení.

Otestováno smlouvou v CI

Testy kontraktu mezi implementací a specifikací a linting OpenAPI se spouštějí při každé změně. Rozdíl mezi kódem a kontraktem způsobí selhání sestavení – takže specifikace, ze které generujete klienta, je přesně tou specifikací, kterou server skutečně dodržuje.

Autorizace, rozsah a zádrhele při škálování

Dva způsoby vstupu, ale za nimi jediný jednotný princip. Ať už použijete kterýkoli, platí stejné kontroly oprávnění a stejná izolace na úrovni databáze.

API klíče, na organizaci

Klíče mají podobu zdk_<mode>_<prefix>_<secret>. Ukládáme pouze SHA-256 hash tajného klíče – klíč vám po vygenerování nemůžeme znovu zobrazit a nedokáže to nikdo, kdo získá přístup k naší databázi. Klíče mají definovaný rozsah oprávnění, lze je odvolat a jsou vydávány pro organizaci, nikoli pro jednotlivce.

Živý a testovací režim, odděleně

Klíče pro sandbox jsou oddělené od produkčních klíčů a fungují v režimu sandboxu: žádná skutečná fakturace, žádné skutečné zřizování. Vaše integrační testy mohou API zatěžovat bez utrácení peněz nebo budování serverů.

OIDC pro lidi

Uživatelské relace se ověřují pomocí JWT vydaných systémem Keycloak, které se ověřují proti veřejnému klíči realm a převádějí se na stejný objekt Principal jako klíč API. Koncové body vyžadují podrobné oprávňovací klíče, jako jsou sites.create nebo apikeys.manage, které se kontrolují pro každou organizaci – oprávnění v jedné organizaci neuděluje žádný přístup v jiné, nesouvisející organizaci, vztahuje se však na organizace vnořené pod ní.

Řádkové zabezpečení na pozadí

Každý požadavek nájemce běží v transakci s rozsahem organizace Postgres nastaveným z hlavního subjektu, takže izolace je vynucována databází, nikoli filtrem ORM, na který by mohl někdo zapomenout. Filtr querysetu tam stále zůstává jako obrana do hloubky.

Navrženo pro stroje, nejen pro ukázky

API je snadné udělat tak, aby v souboru README vypadalo dobře, ale je těžké přimět ji ke správnému chování při reálném provozu. Právě nad těmito částmi jsme se zapotili, protože to jsou ty, které ve tři ráno rozbíjejí integrace.

Za zmínku stojí jeden detail, který ovlivňuje chování hromadných operací: kód 409 v případě duplicitní domény odpovídá na otázku „je tento hostname hostovaný zde?“ pro kteréhokoli tenanta, což představuje enumerační oracle a reálné riziko deanonymizace vůči produktu Footprint-Free. Omezení rychlosti vytváření webů by bylo líným řešením a hromadné zřizování produktu by to úplně rozbilo. Místo toho se do rozpočtu započítávají pouze odmítnuté pokusy o duplicitní doménu, a to na základě hlavního uživatele. Úspěšné vytvoření se z něj nikdy neodčítá – takže můžete hromadně zřizovat celý den a zkoumání téměř okamžitě selže.

  • Konzistentní chybová obálka při každém selhání: kód, uživatelsky srozumitelná zpráva, volitelné podrobnosti na úrovni polí a request_id, které můžete uvést při kontaktování podpory. Chyby ověření vracejí kód 422 a obsahují názvy chybějících či nesprávných polí.
  • Idempotentní klíče u požadavků POST, přičemž záznam o opakování se zapisuje až při potvrzení (commit) namísto průběžného zápisu – takže opakovaný pokus nemůže nikdy vrátit mezipamětí uložený kód 201 odkazující na řádek, který se nikdy nepotvrdil. Neúspěšný požadavek okamžitě uvolní svůj probíhající zámek, takže kód 422 nezablokuje váš opravený opakovaný pokus.
  • Stránkování pomocí kurzoru jako množina klíčů nad UUIDv7 – stabilní při souběžných zápisech, bez posunu stránek při vkládání řádků během skenování.
  • RateLimit-Remaining v odpovědích, takže vygenerovaný klient může inteligentně zpomalit namísto hádání.
  • Prostředky mimo váš rozsah vrací kód 404 namísto 403 – kód 403 by potvrdil existenci daného prostředku. Filtrování podle organizace mimo váš rozsah vrací ze stejného důvodu prázdnou stránku.
  • Vytvoření webu je registrace, nikoliv zřízení: POST /v1/sites vrací 201 se stavem pending a nikdy nečeká na sestavení. Událost se zapisuje do transakční outbox tabulky ve stejné transakci jako řádek, takže web existuje právě tehdy, když je zaručeno vyžádání jeho zřízení.

Sada SDK, rozhraní CLI a poskytovatel Terraformu

Tři konzumenti stejné specifikace pro tři různé způsoby práce.

lientské sady SDK

Vygenerováno pro TypeScript, Python, PHP a Go, přičemž se sleduje specifikace, takže nový koncový bod dorazí ve vašem jazyce, aniž byste museli čekat na ručně psanou obálku.

Zinnector®, rozhraní CLI

Vytvořte strukturu webu WordPress, spusťte ho lokálně bez nutnosti instalovat cokoli jiného než Node a nasaďte ho. Nástroj Zinnector® provede předletovou kontrolu vašeho projektu vůči slotu, kam se chystáte nasazovat – verzi PHP, disku, počtu souborů – a varuje vás ještě před odesláním, nikoli až po něm. Rovněž se přihlašuje, vypisuje weby, provádí nasazení, spravuje domény a DNS, čte poštovní služby, vytváří zálohy, spouští povolené příkazy WP-CLI, sleduje protokoly v reálném čase a spouští hromadné operace. Zdarma, pod licencí MIT a postaveno na stejném veřejném API.

Terraform provider

Spravujte weby, domény, DNS záznamy, schránky a plány pomocí infrastruktury jako kódu. Příkaz terraform apply zřídí hosting a vaše prostředí se stanou reprodukovatelnými a kontrolovatelnými namísto sledování kliknutí, která si nikdo nezapsal.

Interaktivní příručka

Vygenerovaná dokumentace, kterou si můžete přečíst a volat přímo z prohlížeče a která přesně popisuje koncové body implementované serverem – protože obojí vychází ze stejné specifikace.

Webhooky, které přežijí výpadek vašeho koncového bodu

Základem platformy je spolehlivá událostní páteř: každá změna stavu zapíše událost do transakční schránky odchozích zpráv v databázi Postgres atomicky se změnou databáze a přenašeč ji publikuje do NATS JetStream. Události jsou typované a verzované – site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending a další.

Odebírejte to, na čem vám záleží

Zaregistrujte koncový bod jako WebhookSubscription a vyberte typy událostí, které má přijímat. Jediný datový proud zásobuje oznámení, analytiku, automatizace i vaši integraci – spotřebováváte úplně stejné události jako my.

Podepsáno HMAC

Každé doručení je podepsané pomocí HMAC, takže si před jeho zpracováním můžete ověřit, že pochází od nás.

Opakováno s prodlevou a zaznamenáno

Neúspěšná doručení se opakují s narůstajícím zpožděním a každý pokus se zaznamenává jako WebhookDelivery. Doručení můžete kontrolovat a opakovaně spouštět z ovládacího panelu, takže nemusíte psát na podporu a ptát se, co jsme odeslali.

Alespoň jednou, takže deduplikace podle id

Pipeline je záměrně typu at-least-once (alespoň jednou) namísto předstírání typu exactly-once (právě jednou). Relay, které selže uprostřed publikování, má vypršený nárok na leasing a jeho události jsou publikovány znovu. Proveďte deduplikaci na ID obálky a váš spotřebitel bude správný již ze své podstaty.

Vložení kódu na web

API je jen polovina vývojářského příběhu. Tou druhou je nasazení.

  • Připojte GitHub, GitLab nebo Bitbucket přes OAuth s nasazovacími klíči uloženými v úložišti pověření – nikoli v konfiguračním souboru.
  • Push spustí kanál pro sestavení a nasazení s mapováním větví na prostředí (main na production, staging na staging) a kroky sestavení pro composer a npm pro každý stack.
  • Vraťte se k předchozí verzi, když se nasazení nepodaří.
  • Klonování do stagingu a publikování na ostrou verzi, takže změny si můžete vyzkoušet v reálném prostředí dříve, než se dostanou k návštěvníkům.
  • Jailed SSH, SFTP a FTP pro každý web v rámci izolace CageFS, takže každý uživatel vidí pouze své vlastní soubory.
  • wp-cli z terminálu v administraci a přes SSH.
  • VS Code v prohlížeči pomocí code-server – plnohodnotný editor s rozšířeními, integrovaným terminálem a gitem pro přímou úpravu souborů webu.
  • Verze PHP pro každý web, upravitelná nastavení PHP, rozšíření pro každý web, proměnné prostředí a skutečný cron vedle WP-cronu.

Four ways to work on a site

The API is one door. These are the other four, and every one of them is included with the plan rather than sold as a developer tier.

The web editor

VS Code in the browser, opened from the site's page in the dashboard, editing that site's real files with git built in and the whole editor inside the same CageFS jail as your SFTP access. It edits the LIVE site — there is no staging copy in between, so a file you save is public the moment it is written.

Zinnector®, the CLI

Free, MIT-licensed and built on this same public API. Scaffold a WordPress site, run it on your own machine, pre-flight it against the slot you are about to deploy to — PHP version, disk, file count — and deploy. Needs Node 24 or newer.

The MCP server

One catalogue of tools, so the AI client you already use can work on your sites through the same API and the same permissions the dashboard uses. The same server your own client connects to is the one wired into the web editor. Read-only until you say otherwise.

Per-site developer access

Client work does not need your password. Invite somebody by email address and they get exactly one site: they sign in as themselves, with a viewer, editor or manager role, and every other site answers 404 before any handler runs — a Postgres row-level security policy and a request-level fence, not one check. The account owner grants it and revokes it in one click, effective on their next request.

A stejné API může využít i váš AI agent

Zpřístupňujeme platformu jako hostovaný MCP server: tenkou protokolovou vrstvu nad API engine, která využívá shodný katalog akcí, RBAC a auditní záznam. Připojte Claude Code, Cursor, ChatGPT, Claude Desktop nebo jakéhokoli klienta podporujícího MCP jednou a každá funkce, kterou do API přidáme, mu bude automaticky k dispozici.

Agent dostane tři věci: Nástroje (stejné koncové body API, žádná paralelní logika, která by se mohla rozcházet), Zdroje (stav webu pouze pro čtení, konfiguraci, nedávné protokoly, metriky, provozuschopnost a články znalostní báze, takže diagnostikuje pomocí skutečných dat, než začne jednat) a Prompty (zveřejněné šablony pracovních postupů, jako je „diagnostikovat tento web“ nebo „připravit migrace“).

Bezpečnost je stejný příběh jako autentizace: OAuth 2.1, tokeny vázané na vaši organizaci a oprávnění RBAC s vynuceným zabezpečením na úrovni řádků, s omezenou platností a možností odvolání pro každý nástroj, sandbox oddělený od produkce. Destruktivní akce – smazání, pozastavení, fakturace, velké výdaje – vyžadují explicitní potvrzení nebo zásadu schválení člověkem. Rychlostní limity a finanční stropy omezují placené akce spouštěné umělou inteligencí a každé volání MCP je auditováno s evidencí identity, nástroje, argumentů a výsledku.

Podporujeme samotný protokol namísto integrace každé aplikace zvlášť, což znamená, že můžete změnit své nástroje umělé inteligence, aniž by se musela měnit vaše integrace hostingu.

Časté dotazy

Je veřejné API stejné jako to, které používá ovládací panel?

Ano – je to stejné rozhraní API pro engine, publikované a otestované v ostrém provozu. Ovládací panel, administrátorská konzole, CLI, poskytovatel Terraformu, MCP server a webhooks využívají jedno společné rozhraní, což je důvod, proč API za panelem nijak nezaostává.

Mohu otestovat integraci bez utrácení peněz nebo budování skutečných serverů?

Ano. Sandbox klíče jsou vydávány odděleně od produkčních klíčů a běží v testovacím režimu: žádná skutečná fakturace a žádné skutečné zřizování. Nasměrujte své CI na přihlašovací údaje k sandboxu a bezpečně otestujte celý cyklus požadavků a odpovědí.

Jak zabráním tomu, aby opakovaný pokus vytvořil dvě položky?

Odesílejte hlavičku Idempotency-Key u svých POST požadavků. Záznam o opakování se zapisuje až při potvrzení (commit) namísto inline zápisu, takže se při opakovaném pokusu nikdy nepřehraje mezipaměti uložená úspěšná odpověď pro řádek, který se ve skutečnosti nepotvrdil. Požadavek, který selže, navíc okamžitě uvolní svůj zámek, takže váš opravený opakovaný pokus nebude zablokován. Doručování webhooků je ze své podstaty typu at-least-once (alespoň jednou) – deduplikaci na svém konci provádějte podle ID obálky.

Mohu poskytnout jednomu klíči API přístup ke všem mým klientským organizacím?

Dnes ne. Klíčové položky rozhraní API se vydávají pro každou organizaci zvlášť, takže integrace pokrývající několik klientských organizací vyžaduje klíč pro každou z nich. Oprávnění se u subjektů uživatelů rovněž ověřují v rámci jednotlivých organizací: držení oprávnění sites.create v jedné organizaci neuděluje žádný přístup v jiné, nesouvisející organizaci, přestože se vztahuje na organizace vnořené pod touto první. To je záměrné – omezuje to kompromitovaný klíč pouze na jeho vlastní organizaci a podřízené organizace pod ní, nikoliv na celou platformu.

Co vlastně vestavěná role Vývojáře umožňuje?

Roli vývojáře zahrnuje čtení organizace, správu klíčů API, zobrazení a vytváření webů, jejich restartování, vymazání jejich mezipaměti a zobrazení tiketů a odpovídání na ně. Záměrně nezahrnuje správu fakturace. Pamatujte, že oprávnění k nasazení a odeslání do ostrého provozu (push-to-live) její součástí nejsou – pokud je člen týmu potřebuje, přiřaďte mu roli, která je obsahuje, namísto předpokladu, že role Vývojář je tou nejširší technickou rolí.

Co se stane s mými webhooky, když můj koncový bod na hodinu výpadku?

Doručování se opakuje s narůstajícím zpožděním a každý pokus se zaznamenává jako WebhookDelivery, kterou si můžete prohlédnout. Události se na straně zdroje zapisují do transakční outbox tabulky ve stejné databázové transakci jako samotná změna, takže se nic neztratí, když je spotřebitel nedostupný – výpadek spotřebitele znamená pouze zpoždění, nikdy však nezpůsobí pád producenta a po obnovení provozu můžete doručení zpráv přehrát přímo z ovládacího panelu.

Kolik stojí začít na tom stavět?

Začněte 14denní zkušební verzi Footprint-Free Hosting bez platební karty a až pro 5 webů. Placené tarify Footprint-Free začínají na 6 $ měsíčně za PBN 5. Ke každému plánu získáte 30denní záruku vrácení peněz, bezplatné migrace a žádné vázání na dodavatele.

Přečtěte si specifikaci a poté podle ní stavějte

API založené na specifikaci, vygenerovaná SDK, CLI, poskytovatel Terraformu, podepsané webhooky a MCP server – na hostingu, který jsme vybudovali pro více než 650 000 webů po celém světě. Začněte 14denní zkušební verzi bez platební karty, bez údajů o platbě.

Začít zdarma