សម្រាប់អ្នកអភិវឌ្ឍន៍

ការបង្ហោះគេហទំព័រដែលអ្នកអាចបញ្ជាបានតាមរយៈកូដ

Zinn Digital® គឺជាផ្លែតហ្វមដែលផ្អែកលើ API ជាចម្បង។ API ម៉ាស៊ីនដូចគ្នាដែលដំណើរការផ្ទាំងគ្រប់គ្រងរបស់យើង គឺជា API ដែលអ្នកទទួលបាន — ដែលមានកំណែ ច្បាស់លាស់តាមលក្ខណៈបច្ចេកទេស និងមានឯកសារពន្យល់ 100% នៅពេលបង្កើត ព្រមទាំងមាន SDKs ដែលបានបង្កើតឡើង, CLI, អ្នកផ្តល់សេវា Terraform, webhooks ដែលមានហត្ថលេខា និងម៉ាស៊ីនបម្រើ MCP នៅលើវា។ មិនថាអ្នកប្រើអ្វីសម្រាប់ធ្វើការ — ធើមីនល, ផាយឡាញ, ឯកសារស្ថានភាព ឬភ្នាក់ងារ AI នោះទេ ផ្លែតហ្វមនេះឆ្លើយតបទាំងអស់។

  • ៦៥០,០០០+គេហទំព័រដែលបានបង្ហោះទូទាំងពិភពលោក
  • OpenAPI spec ដែលឧបករណ៍នីមួយៗត្រូវបានបង្កើតឡើងពី
  • SDK របស់អតិថិជន — TypeScript, Python, PHP, Go
  • OAuth 2.1ការចូលប្រើភ្នាក់ងារ AI ដែលមានវិសាលភាព និងអាចដកហូតវិញបាន

API មួយ។ រាល់ផ្ទៃទាំងអស់ប្រើប្រាស់វា។

hosts ភាគ ច្រើន បន្ថែម API ទៅ លើ control panel ពេល ក្រោយ ដែល ធ្វើ ឱ្យ ឃើញ ច្បាស់ ថា ពាក់ កណ្តាល នៃ លក្ខណៈ ពិសេស របស់ panel មិន ធ្លាប់ ដំណើរ ការ ឡើយ ។ យើង បាន បង្កើត ឡើង វិញ ផ្ទុយ ពី នេះ ។ dashboard, admin console, CLI, Terraform provider, MCP server និង integrations ផ្ទាល់ ខ្លួន របស់ អ្នក សុទ្ធ តែ ប្រើ ប្រាស់ engine API ដូច គ្នា ។ ប្រសិន បើ អ្នក អាច ធ្វើ វា ក្នុង panel បាន អ្នក ក៏ អាច ធ្វើ វា តាម កូដ បាន ដែរ ។

ដាក់លក្ខណៈបច្ចេកទេសមុន មិនមែនឯកសារពេលក្រោយទេ

លក្ខណៈជាក់លាក់របស់ OpenAPI គឺជាប្រភពនៃការពិត ហើយគ្មានចំណុចបញ្ចប់ណាមួយត្រូវបានដាក់ឱ្យប្រើប្រាស់ឡើយ លើកលែងតែវាមាននៅក្នុងលក្ខណៈជាក់លាក់នោះ។ ច្បាប់តែមួយនេះហើយ ដែលធ្វើឱ្យ API សាធារណៈមានឯកសារយោងពេញលេញនៅពេលសាងសង់ ជាជាងនៅពេលក្រោយ ដែលមិនមានជ្រុងណាមួយដែលគ្មានឯកសារយោងនោះទេ ព្រោះថាចំណុចបញ្ចប់ដែលគ្មានឯកសារយោង គឺមិនអាចមាននោះឡើយ។

បានបង្កើតឡើងដោយស្វ័យប្រវត្តិ មិនមែនកែសម្រួលដោយដៃទេ។

ឯកសារយោងអន្តរកម្ម កញ្ចប់ SDK របស់អតិថិជនទាំងបួន CLI ភាគច្រើន និងបណ្តុំ Terraform provider សុទ្ធតែត្រូវបានបង្កើតឡើងពី spec តែមួយនោះ។ ប្រភពតែមួយ វត្ថុបុរាណជាច្រើន តែងតែស៊ីសង្វាក់គ្នា — អ្នកមិនចាំបាច់តាមដានឯកសារដែលខុសប្លែកពីការអនុវត្តឡើយ។

បានកំណែជាមួយនឹងគោលការណ៍ឈប់ប្រើប្រាស់

Endpoints ស្ថិតនៅក្រោម /v1 ដោយមានគោលការណ៍លុបចោលការប្រើប្រាស់ដែលបានផ្សព្វផ្សាយ និងមានកំណត់ហេតុផ្លាស់ប្តូរ។ អ្នកនឹងទទួលបានការជម្រាបជូនជាលាយលក្ខណ៍អក្សរមុនពេលមានការផ្លាស់ប្តូរអ្វីមួយ ជាជាងការរកឃើញវាចេញពី build ដែលបរាជ័យ។

បានស,ងបាកសងល្បងក្នុង CI

ការធ្វើតេស្តកិច្ចសន្យារវាងការអនុវត្ត និងលក្ខណៈបច្ចេកទេស ក៏ដូចជាការពិនិត្យកូដ OpenAPI ត្រូវបានដំណើរការលើរាល់ការកែប្រែទាំងអស់។ ការខុសគ្នារវាងកូដ និងកិច្ចសន្យា ធ្វើឱ្យដំណើរការកសាងបរាជ័យ — ដូច្នេះ លក្ខណៈបច្ចេកទេសដែលអ្នកបង្កើតខ្លាយអិន (client) របស់អ្នកចេញពីវា គឺជាលក្ខណៈបច្ចេកទេសដែលសឺវើ (server) គោរពតាមជាក់ស្តែង។

ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ ការកំណត់វិសាលភាព និងបញ្ហាប្រឈមនៅពេលពង្រីកទំហំ

វិធីសាស្ត្រចូលពីរផ្សេងគ្នា ប៉ុន្តែមានគោលការណ៍គ្រឹះតែមួយនៅពីក្រោយវា។ មិនថាអ្នកប្រើមួយណាទេ ការពិនិត្យសិទ្ធិដូចគ្នា និងការដាក់ឱ្យដាច់ដោយឡែកកម្រិតមូលដ្ឋានទិន្នន័យដូចគ្នានឹងត្រូវអនុវត្ត។

គ្រាប់ចុច API សម្រាប់អង្គភាពនីមួយៗ

គ្រាប់ចុចមានទម្រង់ zdk_<mode>_<prefix>_<secret>។ មានតែតម្លៃហាស SHA-256 នៃលេខសម្ងាត់ប៉ុណ្ណោះដែលត្រូវបានរក្សាទុក ដែលមានន័យថាយើងមិនអាចបង្ហាញគ្រាប់ចុចដល់អ្នកម្ដងទៀតបានទេបន្ទាប់ពីចេញវា ហើយក៏គ្មាននរណាម្នាក់អាចចូលមើលមូលដ្ឋានទិន្នន័យរបស់យើងបានដែរ។ គ្រាប់ចុចមានវិសាលភាពកំណត់ អាចត្រូវបានដកហូត និងត្រូវបានចេញជូនក្នុងកម្រិតអង្គភាព មិនមែនក្នុងកម្រិតបុគ្គលនោះឡើយ។

ម៉ូដទូទាត់ផ្ទាល់ និងម៉ូដសាកល្បង ត្រូវបានបំបែកដាច់ពីគ្នា

សោរប្រអប់ខ្សាច់ (Sandbox) គឺដាច់ដោយឡែកពីសោរផលិតកម្ម ហើយដំណើរការក្នុងរបៀបប្រអប់ខ្សាច់៖ គ្មានការចេញវិក្កយបត្រពិតប្រាកដ ឬការរៀបចំសេវាកម្មពិតប្រាកដទេ។ ការធ្វើតេស្តរួមបញ្ចូលគ្នារបស់អ្នកអាចប្រើប្រាស់ API នេះបានយ៉ាងច្រើនដោយមិនចាំបាច់ចំណាយប្រាក់ ឬបង្កើតម៉ាស៊ីនមេទេ។

OIDC សម្រាប់មនុស្ស

វគ្គសវនកម្មអ្នកប្រើប្រាស់ធ្វើការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវជាមួយនឹង JWTs ដែលចេញដោយ Keycloak ដែលត្រូវបានផ្ទៀងផ្ទាត់ធៀបនឹងសោសាធារណៈរបស់រ៉េល (realm public key) ហើយដោះស្រាយទៅកាន់វត្ថុ Principal ដូចគ្នាដែលគ្រាប់ចុច API ធ្វើ។ ចំណុចបញ្ចប់ធ្វើការទប់ស្កាត់នៅលើគ្រាប់ចុចសិទ្ធិលម្អិតដូចជា sites.create ឬ apikeys.manage ដែលត្រូវបានពិនិត្យតាមអង្គភាពនីមួយៗ ដោយសិទ្ធិនៅក្នុងអង្គភាពមួយមិនផ្ដល់នូវការចូលប្រើប្រាស់នៅក្នុងអង្គភាពដាច់ដោយឡែក និងមិនទាក់ទងគ្នានោះទេ ទោះបីជាវាអនុវត្តចំពោះអង្គភាពដែលស្ថិតនៅក្រោមវាជាបន្តបន្ទាប់ក៏ដោយ។

សុវត្ថិភាពកម្រិតជួរនៅខាងក្រោម

សំណើរបស់អ្នកជួលនីមួយៗដំណើរការក្នុងប្រតិបត្តិការមួយ ដែលមានវិសាលភាពអង្គការ Postgres កំណត់ពីប្រ៊ីនស៊ីប៉ាល់ ដូច្នេះការដាក់ឱ្យនៅដាច់ដោយឡែកត្រូវបានអនុវត្តដោយមូលដ្ឋានទិន្នន័យ មិនមែនដោយតម្រង ORM ដែលនរណាម្នាក់អាចភ្លេចនោះទេ។ តម្រងសំណុំសំណួរនៅតែមាននៅទីនោះជាការការពារស៊ីជម្រៅ។

បង្កើតឡើងសម្រាប់ម៉ាស៊ីន មិនមែនគ្រាន់តែសម្រាប់ការបង្ហាញនោះទេ

វាមានភាពងាយស្រួលក្នុងការធ្វើឱ្យ API មើលទៅល្អនៅក្នុងឯកសារ README ប៉ុន្តែវាពិបាកក្នុងការធ្វើឱ្យវាដំណើរការបានល្អក្រោមចរាចរណ៍ពិតប្រាកដ។ ទាំងនេះគឺជាផ្នែកដែលយើងខិតខំប្រឹងប្រែងយ៉ាងខ្លាំង ព្រោះវាជាផ្នែកដែលតែងតែបង្កបញ្ហាដល់ការរួមបញ្ចូលប្រព័ន្ធនៅពេលម៉ោងបីទៀបភ្លឺ។

ចំណុចលម្អិតមួយដែលគួររំលេចឡើង ព្រោះវាបង្កើតជារូបរាងបៀបដែលការងារតាមប្លុកដំណើរការ៖ លទ្ធផល 409 លើដែនស្ទួន ឆ្លើយតបនូវសំណួរ "តើឈ្មោះម៉ាស៊ីនបម្រើនេះត្រូវបានបង្ហោះនៅទីនេះមែនទេ?" សម្រាប់អ្នកប្រើប្រាស់ណាមួយ ដែលវាគឺជា enumeration oracle និងជាហានិភ័យនៃការលាតត្រដាងអត្តសញ្ញាណពិតប្រាកដប្រឆាំងនឹង Footprint-Free។ ការកម្រិតល្បឿនបង្កើតគេហទំព័រ អាចជានិន្នាការដោះស្រាយបែបខ្ជិលច្រអូស ហើយវានឹងធ្វើឱ្យផលិតផលបង្កើតជាប្លុកដំណើរការលែងកើតទាំងស្រុង។ ផ្ទុយទៅវិញ មានតែការព្យាយាមបង្កើតដែនស្ទួនដែលត្រូវបានបដិសេធប៉ុណ្ណោះដែលត្រូវបានរាប់ចូលក្នុងកូតា ផ្អែកតាមគណនីមេនីមួយៗ។ ការបង្កើតដោយជោគជ័យមិនដែលត្រូវបានគិតបញ្ចូលប្រឆាំងនឹងវាឡើយ — ដូច្នេះអ្នកអាចបង្កើតជាប្លុកបានពេញមួយថ្ងៃ ហើយការព្យាយាមលួចស្ទង់មើលនឹងត្រូវបញ្ចប់ស្ទើរតែភ្លាមៗ។

  • កំហុសដែលមានលក្ខណៈដូចគ្នានៅលើរាល់ការបរាជ័យរួមមាន៖ កូដ, សារសម្រាប់មនុស្សអាន, ព័ត៌មានលម្អិតកម្រិតវាលស្រេចចិត្ត និង request_id ដែលអ្នកអាចបញ្ជាក់ប្រាប់ក្រុមជំនួយ។ កំហុសនៃការផ្ទៀងផ្ទាត់ត្រឡប់កូដ 422 ជាមួយឈ្មោះវាលដែលមានបញ្ហា។
  • សោ Idempotency លើ POST ដែលមានកំណត់ត្រាចាក់សារឡើងវិញត្រូវ បានសរសេរនៅពេល commit ជាជាងinline — ដូច្នេះការព្យាយាមម្ដងទៀតមិនអាចចាក់សារឡើងវិញនូវ 201 ដែលបានខេត នៃជួរដេកដែលមិនធ្លាប់បាន commit ឡើយ។ សំណើដែលបរាជ័យនឹងដោះលែងសោដែលកំពុងដំណើរការភ្លាមៗ ដូច្នេះ 422 មិនចាក់សោររារាំងការព្យាយាមម្ដងទៀតដែលបានកែតម្រូវរបស់អ្នកឡើយ។
  • ការបែងចែកទំព័រតាមទស្សន៍និច្ចជាសោលើ UUIDv7 — មានស្ថិរភាពក្រោមការសរសេរដំណាលគ្នា ដោយគ្មានការរអិលទំព័រនៅពេលជួរដេកត្រូវបានបញ្ចូលកណ្តាលស្កេន។
  • RateLimit-Remaining លើចម្លើយតប ដើម្បីឱ្យ client ដែលបានបង្កើតអាចបន្ថយល្បឿនបានយ៉ាងឆ្លាតវៃ ដោយមិនបាច់ទាយ។
  • ធនធានដែលនៅក្រៅវិសាលភាពនឹងត្រឡប់កូដ 404 ជំនួសឱ្យ 403 វិញ — ព្រោះកូដ 403 នឹងបញ្ជាក់ថាធនធាននោះពិតជាមាន។ ការតម្រងតាមអង្គភាពដែលនៅក្រៅវិសាលភាពរបស់អ្នក នឹងត្រឡប់ទំព័រទទេដោយសារហេតុផលដូចគ្នានេះ។
  • ការបង្កើតគេហទំព័រគឺជាការចុះឈ្មោះ មិនមែនការបម្រុងទុកសេវាទេ៖ POST /v1/sites បញ្ជូនត្រឡប់មកវិញនូវ 201 ជាមួយនឹងស្ថានភាពកំពុងរង់ចាំ ហើយមិនដែលរាំងស្ទះលើការបង្កើតនោះទេ។ព្រឹត្តិការណ៍នេះត្រូវបានសរសេរទៅកាន់ outbox ប្រតិបត្តិការក្នុងប្រតិបត្តិការតែមួយជាមួយជួរដេក ដូច្នេះគេហទំព័រមួយមានប្រសិនបើនិងលុះត្រាតែការបម្រុងទុកសេវារបស់វាត្រូវបានធានាថានឹងស្នើសុំ។

ឈុតឧបករណ៍ SDKs, CLI និង Terraform provider

អតិថិជនបីនាក់ដែលមានលក្ខណៈជាក់លាក់ដូចគ្នា សម្រាប់វិធីសាស្ត្រការងារបីផ្សេងគ្នា។

SDK របស់អតិថិជន

បានបង្កើតសម្រាប់ TypeScript, Python, PHP និង Go ដោយតាមដានការបញ្ជាក់ ដូច្នេះចំណុចប្រទាក់ថ្មីនឹងមកដល់ជាភាសារបស់អ្នកដោយមិនបាច់រង់ចាំកូដរុំដែលសរសេរដោយដៃនោះទេ។

Zinnector® ដែលជា CLI

បង្កើតគំរូគេហទំព័រ WordPress ដំណើរការវាជាមូលដ្ឋានដោយមិនចាំបាច់ដំឡើងអ្វីក្រៅពី Node និងដាក់ឱ្យដំណើរការវា។ Zinnector® ធ្វើការត្រួតពិនិត្យជាមុនលើគម្រោងរបស់អ្នកធៀបនឹងរន្ធដែលអ្នកត្រៀមនឹងដាក់ឱ្យដំណើរការ ដែលរួមមានកំណែ PHP ឌីស និងចំនួនឯកសារ ហើយផ្តល់ការព្រមានមុនពេលអ្នកបញ្ជូនទិន្នន័យជាជាងក្រោយពេលបញ្ជូន។ វាថែមទាំងអាចចូល រាយបញ្ជីគេហទំព័រ ដាក់ឱ្យដំណើរការ គ្រប់គ្រងដែន និង DNS អានសេវាកម្មអ៊ីមែល បម្រុងទុកទិន្នន័យ ដំណើរការ WP-CLI ដែលបានអនុញ្ញាត មើលកំណត់ហេតុ (logs) និងដំណើរការប្រតិបត្តិការច្រើនក្នុងពេលតែមួយ។ វាជាកម្មវិធីឥតគិតថ្លៃ មានអាជ្ញាប័ណ្ណ MIT និងត្រូវបានកសាងឡើងនៅលើ API សាធារណៈដូចគ្នានេះ។

អ្នកផ្តល់សេវា Terraform

គ្រប់គ្រងគេហទំព័រ ដែន កំណត់ត្រា DNS ប្រអប់សារ និងគម្រោងជាហេដ្ឋារចនាសម្ព័ន្ធបែបកូដ (infrastructure as code)។ ការប្រើប្រាស់ terraform apply គឺដើម្បីរៀបចំការបង្ហោះ ហើយបរិស្ថានរបស់អ្នកនឹងអាចបង្កើតឡើងវិញបាន និងអាចពិនិត្យឡើងវិញបាន ជំនួសឱ្យការចុចព្រឹត្តិការណ៍ផ្សេងៗតាមតម្រូវការដែលគ្មានអ្នកណាបានកត់ត្រាទុកឡើយ។

ឯកសារយោងអន្តរកម្ម

ឯកសារដែលបានបង្កើតឡើងដែលអ្នកអាចអាន និងហៅចេញពីកម្មវិធីរុករក ដែលពិពណ៌នាពិតប្រាកដអំពីចំណុចបញ្ចប់ដែលម៉ាស៊ីនបម្រើអនុវត្ត ពីព្រោះទាំងពីរមកពីលក្ខណៈជាក់លាក់ដូចគ្នា។

Webhook ដែលនៅតែដំណើរការទោះបីជា endpoint របស់អ្នកដាច់ក៏ដោយ

នៅពីក្រោយផ្លែតហ្វមនេះ គឺជារចនាសម្ព័ន្ធព្រឹត្តិការណ៍ដ៏រឹងមាំ៖ រាល់ការផ្លាស់ប្តូរស្ថានភាព សរសេរព្រឹត្តិការណ៍ទៅកាន់ transactional outbox នៅក្នុង Postgres ដោយស្វ័យប្រវត្តិជាមួយការផ្លាស់ប្តូរទិន្នន័យ ហើយ relay នឹងបោះពុម្ពវាទៅកាន់ NATS JetStream។ ព្រឹត្តិការណ៍ទាំងនោះត្រូវបានកំណត់ប្រភេទ និងកំណែ — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending និងផ្សេងៗទៀត។

ជាវប្រចាំចំពោះអ្វីដែលអ្នកចាប់អារម្មណ៍

ចុះឈ្មោះចំណុចបញ្ចប់ជា WebhookSubscription ហើយជ្រើសរើសប្រភេទព្រឹត្តិការណ៍ដែលវាទទួលបាន។ ស្ទ្រីមតែមួយផ្ដល់នូវការជូនដំណឹង ការវិភាគ ប្រព័ន្ធស្វ័យប្រវត្តិកម្ម និងការរួមបញ្ចូលរបស់អ្នកដូចគ្នា ដោយអ្នកកំពុងប្រើប្រាស់ព្រឹត្តិការណ៍ដូចគ្នាដែលពួកយើងប្រើដែរ។

បានចុះហត្ថលេខាដោយប្រើ HMAC

រាល់ការដឹកជញ្ជូនទាំងអស់ត្រូវបានចុះហត្ថលេខាដោយ HMAC ដូច្នេះអ្នកអាចផ្ទៀងផ្ទាត់ថាវាពិតជាបានមកពីយើង មុនពេលអ្នកអនុវត្តសកម្មភាពលើវា។

បានព្យាយាមម្តងទៀតដោយប្រើបច្ចេកទេសប៊ែកអុហ្វ និងបានកត់ត្រាទុក

ការបញ្ជូនដែលបរាជ័យនឹងត្រូវព្យាយាមម្តងទៀតដោយពន្យារពេលបន្ថែមជាបន្តបន្ទាប់ ហើយរាល់ការប៉ុនប៉ងត្រូវបានកត់ត្រាជា WebhookDelivery។ អ្នកអាចពិនិត្យមើល និងបញ្ជូនការបញ្ជូនទាំងនោះឡើងវិញពីផ្ទាំងគ្រប់គ្រងដោយផ្ទាល់ ជំនួសឱ្យការផ្ញើអ៊ីមែលទៅកាន់ផ្នែកជំនួយដើម្បីសួរថាតើពួកយើងបានផ្ញើអ្វីខ្លះ។

យ៉ាងហោចណាស់ម្ដង ដូច្នេះសូមធ្វើការដកស្ទួននៅលើ id

Pipeline នេះត្រូវ​បាន​បង្កើត​ឡើង​យ៉ាង​ផ្ចិតផ្ចង់​ឲ្យ​ដំណើរការ​យ៉ាង​ហោច​ណាស់​មួយ​ដង (at-least-once) ជាជាង​ធ្វើ​ពុត​ជា​ដំណើរការ​តែ​មួយ​ដង​គត់ (exactly-once)។ Relay ណា​ដែល​ដាច់​នៅ​ពាក់កណ្តាល​ទី​នៃការ​បោះពុម្ពផ្សាយ នោះ​កិច្ចសន្យា​ជួល​ការទាមទារ (claim lease) របស់វា​នឹង​ផុតកំណត់ ហើយ​ព្រឹត្តិការណ៍​របស់វា​នឹង​ត្រូវ​បាន​បោះពុម្ពផ្សាយ​ឡើងវិញ។ ធ្វើការ​លុបទិន្នន័យ​ជាន់គ្នា (dedupe) លើ envelope id នោះ consumer របស់​អ្នក​នឹង​មាន​ភាព​ត្រឹមត្រូវ​តាម​ការ​រចនា។

ការដាក់កូដចូលទៅក្នុងគេហទំព័រ

API គឺគ្រាន់តែជាផ្នែកមួយនៃដំណើររបស់អភិវឌ្ឍន៍ប៉ុណ្ណោះ។ ផ្នែកម្ខាងទៀតគឺការដាក់ឱ្យប្រើប្រាស់។

  • ភ្ជាប់ GitHub, GitLab ឬ Bitbucket តាមរយៈ OAuth ដោយមានសោរដាក់ពង្រាយទុកក្នុងកន្លែងរក្សាទុកព័ត៌មានសម្ងាត់ មិនមែននៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធទេ។
  • សកម្មភាព Push នឹងដំណើរការបំពង់បង្ហូរដំណើរការសាងសង់ និងដាក់ឱ្យដំណើរការ ដែលមានការផ្ទៀងផ្ទាត់សាខាទៅនឹងបរិស្ថាន (សាខា main ទៅកាន់បរិស្ថាន production, សាខា staging ទៅកាន់បរិស្ថាន staging) និងជំហានសាងសង់តាមស្ដែក (stack) នីមួយៗសម្រាប់ composer និង npm។
  • ត្រឡប់ទៅកាន់កំណែផ្សាយមុន នៅពេលដែលមានបញ្ហាកើតឡើងអំឡុងពេលដាក់ឱ្យប្រើប្រាស់។
  • ការចម្លងបម្រុងទុក (Staging clone) និងការបញ្ជូនទិន្នន័យឡើងទៅកាន់ប្រព័ន្ធដំណើរការផ្ទាល់ (push-to-live) ដើម្បីធានាថាការផ្លាស់ប្តូរណាមួយត្រូវបានសាកល្បងយ៉ាងត្រឹមត្រូវនៅកន្លែងជាក់ស្តែង មុនពេលវាបង្ហាញដល់អ្នកទស្សនា។
  • Jailed SSH, SFTP និង FTP តាមគេហទំព័រនីមួយៗក្រោមការដាច់ដោយឡែកនៃ CageFS ដូច្នេះអ្នកប្រជុំជួលម្នាក់ៗមើលឃើញតែឯកសារផ្ទាល់ខ្លួនរបស់ពួកគេប៉ុណ្ណោះ។
  • wp-cli ពីថែមនែល ធើមីណាល់ និងតាមរយៈ SSH។
  • VS Code ក្នុងប្របស៊ាវឃើល (browser) តាមរយៈ code-server ដែលជាកម្មវិធីកែសម្រួលពេញលេញជាមួយផ្នែកបន្ថែម ស្ថានីយរួមបញ្ចូលគ្នា និង git កែសម្រួលឯកសាររបស់គេហទំព័រដោយផ្ទាល់។
  • កំណែ PHP តាមគេហទំព័រនីមួយៗ ការកំណត់ PHP ដែលអាចកែសម្រួលបាន កំណើនបន្តពូជតាមគេហទំព័រនីមួយៗ អារេចុះបរិស្ថាន និង cron ពិតប្រាកដទន្ទឹមនឹង WP-cron។

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.

និងជា API ដូចគ្នាដែលភ្នាក់ងារ AI របស់អ្នកអាចប្រើប្រាស់បាន

យើងផ្តល់ជូនវេទិកានេះជាម៉ាស៊ីនបម្រើ MCP ដែលមានស្រាប់៖ ឧបករណ៍សម្របពិធីការស្ដើងមួយនៅលើ API ម៉ាស៊ីន ដែលប្រើប្រាស់កាតាឡុកសកម្មភាព RBAC និងកំណត់ត្រាត្រួតពិនិត្យដូចគ្នា។ ភ្ជាប់ Claude Code, Cursor, ChatGPT, Claude Desktop ឬអតិថិជនណាមួយដែលប្រើប្រាស់ MCP ម្ដង ហើយរាល់សមត្ថភាពដែលយើងបន្ថែមទៅក្នុង API នឹងអាចប្រើប្រាស់បានដោយស្វ័យប្រវត្តិ។

ភ្នាក់ងារទទួលបានបីយ៉ាងគឺ៖ ឧបករណ៍ (ចំណុចប្រទាក់ API ដូចគ្នា មិនមានតក្កវិជ្ជាស្របគ្នាដែលងាយរអិលឡើយ) ធនធាន (សុខភាពគេហទំព័រ ការកំណត់ កំណត់ហេតុថ្មីៗ រង្វាស់ សុពលភាពដំណើរការ និងអត្ថបទមជ្ឈមណ្ឌលជំនួយដែលមិនអាចកែប្រែបាន ដូច្នេះវាធ្វើរោគវិនិច្ឆ័យជាមួយទិន្នន័យជាក់ស្តែងមុននឹងចាត់វិធានការ) និងប្រអប់បញ្ចូល (គំរូដំណើរការការងារដែលបានផ្សាយបន្តផ្ទាល់ ដូចជា "ធ្វើរោគវិនិច្ឆ័យគេហទំព័រនេះ" ឬ "រៀបចំការផ្ទេរទិន្នន័យ")។

សុវត្ថិភាពគឺមានទម្រង់ដូចគ្នានឹងការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដែរ៖ OAuth 2.1, តូកិនដែលភ្ជាប់ទៅនឹងអង្គភាពរបស់អ្នក និងការអនុញ្ញាត RBAC ដែលមានសុវត្ថិភាពកម្រិតជួរដេកត្រូវបានអនុវត្ត, កំណត់វិសាលភាព និងអាចដកហូតបានតាមឧបករណ៍នីមួយៗ, សែនបក្ស (sandbox) ត្រូវបានបំបែកចេញពីប្រព័ន្ធផលិតកម្ម។ សកម្មភាពដែលបំផ្លិចបំផ្លាញ — លុប, ផ្អាក, ការទូទាត់ប្រាក់, ការចំណាយច្រើន — ទាមទារឱ្យមានការបញ្ជាក់ច្បាស់លាស់ ឬគោលការណ៍អនុម័តពីមនុស្ស។ កម្រិតអត្រា និងដែនកំណត់ការចំណាយ ត្រូវបានកំណត់ចំពោះសកម្មភាពបង់ប្រាក់ដែលកេះដោយ AI ហើយរាល់ការហៅ MCP ទាំងអស់ត្រូវបានកត់ត្រាក្នុងកំណត់ហេតុសវនកម្មជាមួយនឹងអត្តសញ្ញាណ, ឧបករណ៍, អាគុយម៉ង់ និងលទ្ធផល។

យើងគាំទ្រប្រូតូកុលនេះជាជាងការរួមបញ្ចូលកម្មវិធីនីមួយៗម្តងមួយៗ ដែលមានន័យថាជម្រើសនៃឧបករណ៍ AI របស់អ្នកអាចផ្លាស់ប្តូរបានដោយមិនចាំបាច់ផ្លាស់ប្តូរការរួមបញ្ចូលការបង្ហោះរបស់អ្នកជាមួយវាឡើយ។

សំណួរដែលសួរញឹកញាប់

តើ API សាធារណៈ គឺជា API តែមួយដែលផ្ទាំងគ្រប់គ្រង (dashboard) ប្រើប្រាស់ដែរឬទេ?

បាទ/ចាស — វាគឺជា API ម៉ាស៊ីនតែមួយ ដែលត្រូវបានផ្សព្វផ្សាយ និងពង្រឹងសុវត្ថិភាព។ បន្ទះគ្រប់គ្រង កុងសូលអភិបាលកិច្ច CLI អ្នកផ្តល់សេវា Terraform ម៉ាស៊ីនមេ MCP និង webhooks សុទ្ធតែជាអ្នកប្រើប្រាស់ផ្ទៃតែមួយ ហេតុផលនេះហើយទើប API មិនមានភាពយឺតយ៉ាវជាងផ្ទាំងគ្រប់គ្រងឡើយ។

តើខ្ញុំអាចសាកល្បងការរួមបញ្ចូលគ្នាដោយមិនចំណាយប្រាក់ ឬបង្កើតម៉ាស៊ីនបម្រើពិតប្រាកដបានទេ?

បាទ/ចាស។ សោប្រអប់ខ្សាច់ត្រូវបានចេញដាច់ដោយឡែកពីសោផលិតកម្ម និងដំណើរការក្នុងរបៀបសាកល្បង៖ គ្មានការចេញវិក្កយបត្រពិតប្រាកដ និងគ្មានការផ្តល់ធនធានពិតប្រាកដទេ។ ចង្អុលបង្ហាញ CI របស់អ្នកទៅកាន់ព័ត៌មានសម្ងាត់ប្រអប់ខ្សាច់ ហើយធ្វើតេស្តរង្វិលជុំសំណើ និងការឆ្លើយតបពេញលេញដោយសុវត្ថិភាព។

តើខ្ញុំត្រូវបញ្ឈប់ការព្យាយាមម្តងទៀតមិនឱ្យបង្កើតទំនិញពីរដូចម្ដេច?

ផ្ញើ Idempotency-Key នៅលើសំណើ POST របស់អ្នក។ កំណត់ត្រាផ្ដាច់ផ្ដល់ (replay record) ត្រូវបានសរសេរនៅពេល commit ជំនួសឱ្យការសរសេរផ្ទាល់ក្នុងជួរ ដូច្នេះការធ្វើសំណើឡើងវិញមិនអាចចម្លងទិន្នន័យដែលជោគជ័យដែលបានរក្សាទុកក្នុងឃ្លាំងសម្ងាត់ សម្រាប់ជួរដេកដែលតាមពិតមិនបាន commit នោះទេ ហើយសំណើដែលបរាជ័យនឹងលែងសោភ្លាមៗ ដូច្នេះការធ្វើសំណើឡើងវិញដែលបានកែសម្រួលរបស់អ្នកនឹងមិនត្រូវជាប់គាំងឡើយ។ ការបញ្ជូន Webhook ត្រូវបានរចនាឡើងឱ្យមានការបញ្ជូនយ៉ាងហោចណាស់ម្ដង (at-least-once) — សូមធ្វើការលុបស្ទួន (dedupe) នៅលើអត្តសញ្ញាណកាតាប (envelope id) នៅខាងចុងរបស់អ្នក។

តើខ្ញុំអាចផ្តល់សិទ្ធិឱ្យគ្រាប់ចុច API មួយចូលប្រើអង្គភាពអតិថិជនទាំងអស់របស់ខ្ញុំបានទេ?

មិនមែនថ្ងៃនេះទេ។ កូនសោ API ត្រូវ បានចេញជូនតាមអង្គភាពនីមួយៗ ដូច្នេះការធ្វើអាំងតេក្រាលដែលគ្របដណ្តប់លើអង្គភាពអតិថិជនច្រើន នឹងកាន់កាប់កូនសោមួយសម្រាប់អង្គភាពនីមួយៗ។ សិទ្ធិអនុញ្ញាតក៏ត្រូវបានពិនិត្យតាមអង្គភាពនីមួយៗសម្រាប់អ្នកប្រើប្រាស់សំខាន់ៗផងដែរ៖ ការមានសិទ្ធិ sites.create នៅក្នុងអង្គភាពមួយ មិនផ្តល់សិទ្ធិចូលប្រើប្រាស់នៅក្នុងអង្គភាពផ្សេងទៀតដែលមិនពាក់ព័ន្ធនោះទេ ទោះបីជាវាអនុវត្តចំពោះអង្គភាពដែលស្ថិតនៅក្រោមអង្គភាពនោះក៏ដោយ។ នោះគឺជាចេតនា — វាបិទខ្ទប់កូនសោដែលរងការខូចខាតឱ្យនៅត្រឹមអង្គភាពរបស់វា និងអង្គភាពរងនៅខាងក្រោមវាតែប៉ុណ្ណោះ មិនមែនប្រព័ន្ធទាំងមូលនោះទេ។

តើប្រួនតួនាទីអ្នកអភិវឌ្ឍន៍ដែលភ្ជាប់មកជាមួយអនុញ្ញាតឱ្យធ្វើអ្វីខ្លះ?

តួនាទីអ្នកអភិវឌ្ឍន៍ (Dev) រួមមានការអានព័ត៌មានអង្គភាព ការគ្រប់គ្រងកូនសោ API ការមើល និងការបង្កើតគេហទំព័រ ការចាប់ផ្តើមឡើងវិញ ការលុប Cache និងការមើលព្រមទាំងឆ្លើយតបទៅសំបុត្រស្នើសុំជំនួយ។ តួនាទីនេះត្រូវបានកំណត់មិនរាប់បញ្ចូលការគ្រប់គ្រងការទូទាត់ប្រាក់នោះទេ។ សូមកត់សម្គាល់ថា សិទ្ធិក្នុងការបញ្ចេញ (Deploy) និងការរុញទៅផ្សាយផ្ទាល់ (Push-to-live) គឺមិនមែនជាផ្នែកនៃតួនាទីនេះទេ — ប្រសិនបើសមាជិកក្រុមត្រូវការសិទ្ធិទាំងនោះ សូមប្រគល់តួនាទីដែលមានសិទ្ធិទាំងនោះ ជំនួសឱ្យការសន្មតថា Developer ជាតួនាទីបច្ចេកទេសដែលមានសិទ្ធិទូលំទូលាយបំផុត។

តើមានអ្វីកើតឡើងចំពោះ webhooks របស់ខ្ញុំ ប្រសិនបើ endpoint របស់ខ្ញុំដាច់ដំណើរការរយៈពេលមួយម៉ោង?

ការដឹកជញ្ជូនឡើងវិញត្រូវបានព្យាយាមដោយប្រើប្រាស់ប្រព័ន្ធ backoff ហើយរាល់ការព្យាយាមទាំងអស់ត្រូវបានកត់ត្រាជា WebhookDelivery ដែលអ្នកអាចពិនិត្យមើលបាន។ នៅដើមចរន្ត ព្រឹត្តិការណ៍នានាត្រូវបានសរសេរចូលទៅក្នុងប្រអប់ចេញប្រតិបត្តិការ (transactional outbox) ក្នុងប្រតិបត្តិការមូលដ្ឋានទិន្នន័យតែមួយជាមួយនឹងការផ្លាស់ប្តូរផ្ទាល់ ដូច្នេះគ្មានអ្វីត្រូវបានបាត់បង់ឡើយខណៈពេលដែលអ្នកប្រើប្រាស់មិនមានវត្តមាន—អ្នកប្រើប្រាស់ដែលផ្អាកដំណើរការនឹងមានភាពយឺតយ៉ាវ ប៉ុន្តែវាមិនធ្វើឱ្យប្រព័ន្ធផលិតខូចឡើយ ហើយអ្នកអាចចាក់បញ្ចូនការដឹកជញ្ជូនឡើងវិញពីផ្ទាំងគ្រប់គ្រងបាននៅពេលដែលអ្នកត្រឡប់មកវិញ។

តើវាមានតម្លៃប៉ុណ្ណាដើម្បីចាប់ផ្តើមសាងសង់ប្រឆាំងនឹងវា?

ចាប់ផ្តើមសាកល្បងប្រើប្រាស់ Footprint-Free Hosting រយៈពេល ១៤ថ្ងៃដោយមិនបាច់ប្រើកាត—មិនបាច់មានព័ត៌មានទូទាត់ប្រាក់ ព្រមទាំងអាចប្រើបានរហូតដល់ ៥ គេហទំព័រ។ កញ្ចប់សេវាកម្ម Footprint-Free បង់ប្រាក់ចាប់ផ្តើមពី $6/ខែ សម្រាប់ PBN 5។ កញ្ចប់សេវាកម្មនីមួយៗមានការធានាជូនប្រាក់វិញក្នុងរយៈពេល ៣០ថ្ងៃ ការផ្ទេរទិន្នន័យដោយឥតគិតថ្លៃ និងគ្មានការចងភ្ជាប់ជាមួយអ្នកផ្តល់សេវាកម្មឡើយ។

អានការបញ្ជាក់ រួចបង្កើតកម្មវិធីតាមនោះ

API ដែលផ្តោតលើការបញ្ជាក់, SDKs ដែលបានបង្កើត, CLI, ឧបករណ៍ផ្តល់សេវា Terraform, វេបហ៊ុកដែលបានចុះហត្ថលេខា និងម៉ាស៊ីនមេ MCP — នៅលើសេវាបង្ហោះដែលយើងបានបង្កើតសម្រាប់គេហទំព័រជាង 650,000 ទូទាំងពិភពលោក។ ចាប់ផ្តើមការសាកល្បងរយៈពេល 14 ថ្ងៃដោយមិនចាំបាច់ប្រើកាត និងមិនត្រូវការព័ត៌មានទូទាត់។

ចាប់ផ្តើមដោយឥតគិតថ្លៃ