Za programere

Hosting koji pokrećete iz koda

Zinn Digital® je platforma prvenstveno bazirana na API-ju. Isti API mehanizam koji pokreće našu kontrolnu tablu je onaj koji dobijate — verzionisan, zasnovan na specifikacijama i 100% dokumentovan u vreme izgradnje, sa generisanim SDK-jevima, CLI-jem, Terraform provajderom, potpisanim veb-heksovima i MCP serverom povrh toga. Šta god da koristite za rad — terminal, cevovod, fajl stanja ili AI agent — platforma odgovara na to.

  • 650.000+sajtovi koji se hostinguju širom sveta
  • 1OpenAPI spec iz kog se generiše svaka alatka
  • 4klijentski SDK-ovi — TypeScript, Python, PHP, Go
  • OAuth 2.1opozziv pristuo AI agenata sa ograničenim opsegom

Jedan API. Svaka površina radi na njemu.

Većina hosting provodnika naknadno doda API na kontrolni panel i to se vidi – polovina funkcija panela nikada ne dospe do njega. Mi smo gradili obrnutim redosledom. Kontrolna tabla, administrativna konzola, CLI, Terraform provajder, MCP server i vaše sopstvene integracije koriste isti API endžin. Ako to možete da uradite u panelu, možete i u kodu.

Prvo specifikacija, a ne naknadno dokumentovano

OpenAPI spec je izvor istine i nijedan krajnji tačka se ne pušta u rad osim ako nije u specifikaciji. To jedno pravilo čini javni API u potpunosti dokumentovanim u vreme pravljenja umesto naknadno — nema nedokumentovanog ćoška, jer nedokumentovana krajnja tačka ne može da postoji.

Generisano, nikada ručno održavano

Interaktivna referentna dokumentacija, četiri klijentska SDK-a, veliki deo CLI-ja i skelet Terraform provajdera generišu se iz te jedne specifikacije. Jedan izvor, mnogo artefakata, uvek u sinku — nikada ne jurite dokumentaciju koja se udaljila od implementacije.

Verzija sa politikom ukidanja

Krajnje tačke se nalaze pod /v1 sa objavljenom politikom ukidanja i dnevnikom promena. Bićete obavešteni pre nego što se bilo šta promeni, pismeno, umesto da to saznate iz neuspelog građenja.

Testirano na ugovoru u CI

Testovi ugovora između implementacije i specifikacije i OpenAPI provere se pokreću pri svakoj promeni. Odstupanje između koda i ugovora ruši gradnju — tako da je specifikacija iz koje generišete klijent ujedno i specifikacija koju server zaista poštuje.

Autentifikacija, opseg i stvari koje postaju problem pri velikom obimu

Dva načina za pristup, a jedno jedinstveno načelo iza njih. Koji god da koristite, primenjuju se iste provere dozvola i ista izolacija na nivou baze podataka.

API ključevi, po organizaciji

Ključevi izgledaju kao zdk_<mode>_<prefix>_<secret>. Čuva se samo SHA-256 heš tajne — ne možemo vam ponovo prikazati ključ nakon izdavanja, niti to može bilo ko ko pristupi našoj bazi podataka. Ključevi imaju opsege, mogu se opozvati i izdaju se po organizaciji, a ne po osobi.

Režimi uživo i testiranja, odvojeni

Sandbox ključevi su odvojeni od produkcionih ključeva i rade u sandbox režimu: nema stvarnog naplaćivanja, nema stvarnog provizioniranja. Vaši integracioni testovi mogu opterećivati API bez trošenja novca ili podizanja servera.

OIDC za ljude

Korisničke sesije se autentifikuju pomoću JWT tokena koje izdaje Keycloak, a koji se verifikuju u odnosu na javni ključ realm-a i razrešavaju se u isti Principal objekat kao i API ključ. Krajnje tačke (endpoints) kontrolišu pristup na osnovu detaljnih ključeva dozvola kao što su sites.create ili apikeys.manage, koji se proveravaju po organizaciji – dozvola u jednoj organizaciji ne odobrava pristup u drugoj, nepovezanoj organizaciji, mada se primenjuje na organizacije koje su ugnježđene ispod nje.

Bezbedom nivoa redova

Svaki zahtev zakupca izvršava se u transakciji sa Postgres opsegom organizacije postavljenim iz glavnog objekta, tako da izolaciju sprovodi baza podataka, a ne ORM filter koji neko može zaboraviti. Filter skupa upita je i dalje tu kao odbrana u slojevima.

Napravljeno za mašine, ne samo za demoe

Lako je učiniti da API izgleda dobro u README fajlu, a teško naterati ga da funkcioniše pod stvarnim saobraćajem. Na ovim delovima smo se namučili, jer su to delovi koji prekidaju integracije u tri sata ujutru.

Jedan detalj vredan pomena, zato što utiče na to kako masovni rad funkcioniše: odgovor 409 za duplirani domen daje odgovor „da li je ovaj naziv hosta smešten ovde?“ za bilo kog zakupca, što predstavlja orakulum za enumeraciju i stvarnji rizik od deanonimizacije u odnosu na Footprint-Free. Ograničavanje brzine kreiranja sajtova bi bilo lenjo rešenje i potpuno bi pokvarilo proizvod za masovno kreiranje. Umesto toga, samo odbijeni pokušaji sa dupliranim domenom se računaju u budžet, po principalu. Uspešno kreiranja se nikada ne naplaćuju od toga — tako da možete da vršite masovno kreiranje ceo dan, a ispitivanje umire gotovo odmah.

  • Dosledna koverta greške pri svakom neuspehu: kod, ljudski čitljiva poruka, opcioni detalji na nivou polja i request_id koji možete navesti podršci. Greške u validaciji vraćaju 422 sa navedenim spornim poljima.
  • Idempotentni ključevi na POST zahtevima, sa zapisom o ponavljanju koji se upisuje pri potvrdi (commit) umesto u toku izvršavanja — tako da ponovljeni zahtev nikada ne može da reprodukuje keširani 201 odgovor koji se poziva na red koji nikada nije potvrđen. Neuspeli zahtev odmah oslobađa svoj zaključak u toku izvršavanja (in-flight lock), tako da status 422 ne blokira vaš ispravljeni ponovljeni zahtev.
  • Kursor paginacija kao keyset preko UUIDv7 — stabilna pri istovremenim upisima, bez pomeranja stranice kada se redovi umetnu tokom skeniranja.
  • RateLimit-Remaining na odgovorima, tako da generisani klijent može inteligentno da uspori umesto da pogađa.
  • Resursi koji nisu u opsegu vraćaju 404 umesto 403 — kod 403 bi potvrdio da resurs postoji. Filtriranje po organizaciji koja je van vašeg opsega vraća praznu stranicu iz istog razloga.
  • Kreiranje sajta je registracija, a ne provizioniranje: POST /v1/sites vraća 201 sa statusom pending i nikada ne blokira tokom izgradnje. Događaj se upisuje u transakcioni outbox u istoj transakciji kao i red, tako da sajt postoji ako i samo ako je zagarantovano da će njegovo provizioniranje biti zatraženo.

SDK-ovi, CLI i Terraform provajder

Tri potrošača iste specifikacije, za tri različita načina rada.

Client SDK-ovi

Generisano za TypeScript, Python, PHP i Go, uz praćenje specifikacije kako bi novi krajnji tačka stigao na vaš jezik bez čekanja na ručno pisani omotač.

Zinnector®, CLI

Napravite WordPress sajt, pokrenite ga lokalno bez ičega instaliranog osim Node-a i primenite ga. Zinnector® proverava vaš projekat u odnosu na slot na koji ćete ga primeniti — PHP verziju, disk, broj datoteka — i upozorava vas pre slanja, a ne posle. Takođe se prijavljuje, navodi sajtove, vrši primenu, upravlja domenima i DNS-om, čita usluge e-pošte, pravi rezervne kopije, pokreće WP-CLI sa dozvoljene liste, prati logove i pokreće masovne operacije. Besplatno, pod MIT licencom i izgrađeno na istom ovom javnom API-ju.

Terraform provider

Upravljajte sajtovima, domenima, DNS zapisima, poštanskim sandučićima i paketima kao infrastrukturom kroz kod (IaC). terraform apply konfiguriše hosting, čineći vaša okruženja ponovljivim i podložnim reviziji umesto niza klikova koje niko nije zabeležio.

Interaktivna referenca

Generisana dokumenta koja možete čitati i pozivati direktno iz pregledača, opisujući tačno krajnje tačke koje server implementira — zato što oba potiču iz iste specifikacije.

Webhukovi koji preživljavaju pad vašeg krajnjeg tačka

Iza platforme se nalazi izdržljiva event kičma: svaka promena stanja upisuje događaj u transakcioni outbox u Postgres-u, atomski sa promenom baze podataka, a relej ga objavljuje na NATS JetStream. Događaji su tipizirani i verzirani — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending i ostali.

Pretplatite se na ono što vas zanima

Registrujte krajnju tačku kao WebhookSubscription i izaberite tipove događaja koje prima. Jedan tok napaja obaveštenja, analitiku, automatizacije i vašu integraciju podjednako — koristite iste događaje koje koristimo i mi.

Potpisano sa HMAC

Svaka isporuka je HMAC potpisana tako da možete da potvrdite da je došla od nas pre nego što preduzmete radnju po tom pitanju.

Поново покушано са паузом и евидентирано у дневнику

Neuspela slanja se ponovo pokušavaju uz postepeno odlaganje i svaki pokušaj se beleži kao WebhookDelivery. Možete pregledati i ponovo pokrenuti slanja sa kontrolne table umesto da šaljete imejl podršci pitajući šta smo poslali.

Bar jednom, tako da se radi deduplikacija po id-ju

Cevovod namerno koristi pristupi „najmanje jednom“ umesto da se pretvara da obezbeđuje isporuku „tačno jednom“. Relej koji otkaže usred objavljivanja gubi zakup, pa se njegovi događaji ponovo objavljuju. Uradite deduplikaciju na osnovu ID-ja omota i vaš potrošač će automatski raditi ispravno.

Postavljanje koda na sajt

API je samo polovina priče za programere. Druga polovina je isporuka.

  • Povežite GitHub, GitLab ili Bitbucket preko OAuth-a, sa ključevima za primenu koji se čuvaju u skladištu akreditiva — a ne u konfiguracionoj datoteci.
  • Push pokreće pipeline za izgradnju i primenu (build-and-deploy), sa mapiranjem grana na okruženja (main na produkciju, staging na staging) i koracima izgradnje po stekovima za composer i npm.
  • Vratite se na prethodnu verziju kada primena pođe po zlu.
  • Kloniranje okruženja za testiranje i prenos na produkciju, kako bi se svaka izmena proverila na nekom stvarnom mestu pre nego što stigne do posetilaca.
  • Izolovana SSH, SFTP i FTP podešavanja po sajtu pod CageFS izolacijom, tako da svaki korisnik vidi samo sopstvene datoteke.
  • wp-cli iz terminala panela i preko SSH.
  • VS Code u pretraživaču preko code-server-a — kompletan uređivač sa ekstenzijama, integrisanim terminalom i git-om, za direktno uređivanje fajlova sajta.
  • PHP verzija po sajtu, prilagodljiva PHP podešavanja, ekstenzije po sajtu, promenljive okruženja i pravi cron pored WP-cron-a.

I isti API koji vaš AI agent može da koristi

Platformu izlažemo kao hostovani MCP server: tanak adapter protokola preko API-ja endžina koji ponovo koristi identičan katalog akcija, RBAC i revizorski trag. Povežite Claude Code, Cursor, ChatGPT, Claude Desktop ili bilo kog klijenta sa podrškom za MCP jednom, i svaka mogućnost koju dodamo u API postaće joj automatski dostupna.

Agent dobija tri stvari: Alate (iste API krajnje tačke, bez paralelne logike koja može da odstupi), Resurse (zdravlje sajta samo za čitanje, konfiguraciju, nedavne evidencije, metrike, radno vreme i članke iz baze znanja, tako da dijagnostiku vrši sa stvarnim podacima pre preduzimanja akcije) i Promptove (objavljene šablone radnih tokova kao što su „dijagnostikuj ovaj sajt“ ili „pripremi migraciju“).

Bezbednost je ista priča kao i autentifikacija: OAuth 2.1, tokeni vezani za vašu organizaciju i RBAC dozvole sa primenjenom bezbednošću na nivou reda, ograničene i opozive po alatu, okruženje za testiranje odvojeno od proizvodnog. Destruktivne radnje — brisanje, suspenzija, naplata, velika potrošnja — zahtevaju izričitu potvrdu ili politiku odobrenja od strane čoveka. Ograničenja brzine i limiti potrošnje obuhvataju plaćene radnje pokrenute od strane veštačke inteligencije, a svaki MCP poziv se beleži u revizorskom dnevniku sa identitetom, alatom, argumentima i rezultatom.

Mi podržavamo protokol umesto da integrišemo svaku aplikaciju posebno, što znači da vaši izbori AI alata mogu da se menjaju a da se vaša integracija sa hostingom ne menja sa njima.

Česta pitanja

Da li javni API koristi isti onaj koji koristi kontrolna tabla?

Da — to je isti API endžin, objavljen i stabilizovan. Kontrolna tabla, administrativna konzola, CLI, Terraform provajder, MCP server i vebhukovi su potrošači jedne iste površine, što je razlog zašto API ne zaostaje za panelom.

Može li se integracija testirati bez trošenja novca ili pravljenja stvarnih servera?

Da. Sandbox ključevi se izdaju odvojeno od produkcijskih ključeva i rade u testnom režimu: nema stvarnog naplaćivanja ni stvarnog provizioniranja. Usmerite svoj CI na sandbox akreditive i bezbedno isprobajte ceo ciklus zahteva i odgovora.

Kako da sprečim da ponovljeni pokušaj kreira dve iste stvari?

Pošaljite Idempotency-Key zaglavlje uz vaš POST zahtev. Zapis ponovnog slanja se upisuje prilikom potvrđivanja (commit), a ne direktno, tako da ponovljeni zahtev nikada ne može vratiti keširani uspeh za red koji zapravo nije potvrđen, dok zahtev koji ne uspe odmah oslobađa svoju zaključanost kako vaša ispravljena ponovna poruka ne bi bila blokirana. Dostava veb-hekova je po dizajnu bazirana na principu „najmanje jednom“ (at-least-once) — deblikaciju izvršite na osnovu ID-ja koverte sa vaše strane.

Mogu li da dam jednom API ključu pristup svim mojim klijentskim organizacijama?

Ne danas. API ključevi se izdaju po organizaciji, tako da integracija koja obuhvata nekoliko klijentskih org-a poseduje ključ za svaku. Dozvole se takođe proveravaju po organizaciji za korisničke subjekte: posedovanje sites.create u jednoj org ne odobrava pristup u zasebnoj, nepovezanoj org, iako se primenjuje na org-e ugnježdene ispod nje. To je namerno — to ograničava kompromitovani ključ na sopstvenu organizaciju i pod-org-e ispod nje, a ne na celu platformu.

Šta ugrađena uloga programera zapravo omogućava?

Dev uloga obuhvata pregled organizacije, upravljanje API ključevima, pregled i kreiranje sajtova, njihovo ponovno pokretanje, čišćenje keša, kao i pregled i odgovaranje na tikete. Ona namerno isključuje kontrolu naplate. Imajte u vidu da dozvole za postavljanje (deploy) i puštanje u rad (push-to-live) nisu njen deo — ako su člana tima potrebne te funkcije, dodelite mu ulogu koja ih sadrži, umesto da pretpostavljate da je Developer najšira tehnička uloga.

Šta se dešava sa mojim veb-hekcevima ako moja krajnja tačka nije dostupna sat vremena?

Isporuke se ponavljaju uz postepeno odlaganje (backoff) i svaki pokušaj se zabeležava kao WebhookDelivery koji možete pregledati. Uzvodno, događaji se upisuju u transakcioni outbox u okviru iste baze podataka u kojoj je i sama promena, tako da se ništa ne gubi dok je potrošač nedostupan — potrošač koji ne radi kasni, ali nikada ne ruši proizvođača, a isporuke možete ponovo pokrenuti sa kontrolne table kada sve bude ponovo u funkciji.

Koliko košta da počnete sa gradnjom na njemu?

Započnite besplatnu 14-dnevnu probnu verziju Footprint-Free Hosting paketa bez unosa platnih kartica, za do 5 sajtova. Plaćeni Footprint-Free nivoi počinju od 6 USD mesečno za PBN 5. Svaki paket nosi 30-dnevnu garanciju povraćaja novca, besplatne migracije i odsustvo vezivanja za provajdera.

Pročitajte specifikaciju, a zatim gradite na osnovu nje

API прvo спецификација, генерисани SDK-ови, CLI, Terraform провајдер, потписани веб-хукови и MCP сервер — на хостингу који смо изградили за више од 650.000 сајтова широм света. Започните 14-дневни пробни период без картице и без уношења података о плаћању.

Započni besplatno