Web Hosting

Terakhir diperbarui: 22 Juni 2026

Web Hosting adalah resource yang mengunggah situs web statis yang sudah Anda build ke sebuah Space dan menyajikannya pada alamat {subdomain}.weegloo.app. Sebagai contoh toko pakaian online, menayangkan situs toko yang sudah di-build pada dailywear-shop.weegloo.app adalah satu Web Hosting.

Urutan pengunggahannya adalah sebagai berikut. Pertama, paketkan hasil build menjadi ZIP atau tar.gz, unggah lewat Upload API, dan terima satu Upload. Lalu rujuk Upload itu dan buat Web Hosting dengan POST /web-hostings. Ketika sistem memproses file yang diunggah dan sys.state menjadi COMPLETED, Anda dapat mengakses situs melalui url. Di CMA, Web Hosting adalah resource turunan dari Space, dengan path yang berdasarkan /spaces/{spaceId}/web-hostings.

Struktur resource

Berikut adalah respons pengambilan tunggal Web Hosting "Situs toko DailyWear" yang sudah selesai diproses. Bersama dengan sys (properti sistem), resource ini memiliki properti badan (name, description, isSpa, subdomain, url).

{
  "sys": {
    "id": "3trmXRM3RqbgSnifyg7PWeb01Examp",
    "type": "WebHosting",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-18T11:40:00.000Z",
    "updatedAt": "2026-06-18T11:40:05.000Z",
    "state": "COMPLETED",
    "totalFileSize": 245786,
    "version": 3
  },
  "name": "Situs toko DailyWear",
  "description": "Situs statis untuk toko pakaian dan aksesori",
  "isSpa": true,
  "subdomain": "dailywear-shop",
  "url": "https://dailywear-shop.weegloo.app"
}

Key utama:

  • subdomain: subdomain tempat situs akan disajikan. Pada contoh di atas adalah dailywear-shop, dan alamat akhirnya menjadi dailywear-shop.weegloo.app.
  • url: alamat situs yang dapat diakses setelah pemrosesan selesai.
  • isSpa: apakah situs merupakan aplikasi satu halaman (SPA). Jika true, semua permintaan path diarahkan ke index.html.
  • state: status pemrosesan deployment dari file yang diunggah. Dijelaskan di bawah pada Properti sistem (sys).

Properti sistem (sys)

Setiap Web Hosting menyimpan properti sistem bersama dalam objek sys. space, createdBy, dan updatedBy masuk dalam bentuk Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).

PropertiTipeDeskripsi
idstringIdentifier unik resource. Masuk ke {webHostingId} pada path pengambilan tunggal, pengubahan, dan penghapusan.
typestringJenis resource. Web Hosting selalu "WebHosting".
spaceRefer<Space>Space tempat Web Hosting ini berada.
createdByRefer<User>Pengguna yang membuat.
createdAtstring (date-time)Waktu pembuatan.
updatedByRefer<User>Pengguna yang terakhir mengubah.
updatedAtstring (date-time)Waktu pengubahan terakhir.
statestring (enum)Status pemrosesan deployment. Salah satu dari 4 nilai di bawah.
errorstringAlasan kegagalan saat pemrosesan gagal. Kosong jika tidak gagal.
totalFileSizeintegerUkuran total file yang diunggah (byte).
versioninteger (≥1)Versi resource. Naik 1 setiap pembuatan dan pengubahan. Nilai ini harus disertakan sebagai x-weegloo-version pada permintaan pengubahan dan pengubahan sebagian.

state menunjukkan tahap pemrosesan deployment file yang diunggah. Ini bukan status publikasi Content, dan Web Hosting tidak memiliki konsep publikasi maupun pengarsipan. Ketika file diproses dan menjadi COMPLETED, situs dapat diakses melalui url.

stateArti
PENDINGMenunggu untuk diproses.
PROCESSINGSedang diproses.
COMPLETEDPemrosesan selesai. Dapat diakses melalui url.
FAILEDPemrosesan gagal. Alasannya tersimpan di sys.error.

Properti badan

Properti badan dari Web Hosting adalah sebagai berikut.

PropertiTipeDeskripsi
namestring (1~64)Nama Web Hosting. Wajib saat pembuatan.
descriptionstring (≤128)Deskripsi. Opsional.
isSpabooleanApakah merupakan aplikasi satu halaman. Jika true, semua permintaan path diarahkan ke index.html (untuk routing SPA). Wajib saat pembuatan.
subdomainstring (3~32)Subdomain layanan. Pola ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$ (huruf kecil, angka, tanda hubung; awal dan akhir tidak boleh tanda hubung). Wajib saat pembuatan.
uploadRefer<Upload>Referensi yang menunjuk file yang akan diunggah. Berupa ZIP atau tar.gz, dengan index.html di root dan aset yang dirujuk melalui path relatif.
urlstringURL akses setelah pemrosesan selesai. Diisi oleh sistem.
fromPathstringPath acuan deployment.
customDomainstringCustom domain yang terhubung. Opsional. Dijelaskan di bawah pada Custom Domain.

Pengecekan subdomain

Sebelum membuat Web Hosting, Anda dapat memeriksa apakah subdomain yang ingin digunakan masih kosong. Berikan subdomain yang akan diperiksa sebagai query subdomain pada GET /web-hostings/availability?subdomain=....

Respons berbentuk seperti berikut, dan jika available bernilai true, subdomain tersebut dapat digunakan.

{ "subdomain": "dailywear-shop", "available": true }

Custom Domain

Alih-alih alamat default {subdomain}.weegloo.app, Anda dapat menghubungkan domain milik sendiri ke Web Hosting. Status domain yang terhubung dinyatakan dengan objek customDomain, dalam bentuk { id, domain, dns, cert }. dns dan cert masing-masing adalah status verifikasi kepemilikan domain (DNS) dan penerbitan sertifikat (cert), keduanya dalam bentuk { status, txtName, txtContent }. txtName dan txtContent adalah nama dan nilai DNS TXT record yang harus didaftarkan di sisi domain.

{
  "id": 1024,
  "domain": "shop.dailywear.example",
  "dns": {
    "status": "PENDING",
    "txtName": "_weegloo.shop.dailywear.example",
    "txtContent": "weegloo-verify=3trmXRM3RqbgSnifyg7PWebVerifyEx"
  },
  "cert": {
    "status": "PENDING",
    "txtName": "_acme-challenge.shop.dailywear.example",
    "txtContent": "acme-verify=3trmXRM3RqbgSnifyg7PWebCertEx"
  }
}

Setelah mendaftarkan TXT record di sisi domain, picu verifikasi dengan PUT /web-hostings/{webHostingId}/custom-domain/status/verify, dan ambil status saat ini dengan GET /web-hostings/{webHostingId}/custom-domain/status. Setelah verifikasi selesai, dns.status dan cert.status menjadi VERIFIED. Memanggil pengambilan status pada Web Hosting yang tidak terhubung dengan custom domain akan merespons dengan WGL404001.

API

Base URL untuk semua endpoint di bawah adalah https://cma.weegloo.com/v1, dan header Authorization memerlukan Bearer token yang mengautentikasi ke CMA. Pengubahan dan pengubahan sebagian harus mengirim header X-Weegloo-Version (yaitu sys.version resource saat ini) untuk kontrol konkurensi optimistis. Permintaan pembuatan dan penghapusan tidak menyertakan header ini.

  • Upload API: permintaan untuk mengunggah ZIP file statis dan menerima Upload yang digunakan untuk membuat Web Hosting.
  • Space: Space tempat Web Hosting berada.