Dokumentasi Resmi
|tulis.org

Arsitektur Dokumentasi

Peta jalan panduan, SDK integration, dan API reference lengkap yang disiapkan secara terstruktur.

TULIS CMS/DEVELOPER HUB
/self-hosting-create-workspace-admin

Create a Workspace & Admin User

Setelah backend Tulis berjalan, Anda perlu membuat workspace pertama dan admin user sebelum bisa menggunakan API publik.

Model Multi-Tenant

Tulis bersifat multi-tenant. Semua konten dan akses API dibatasi dalam Workspace:

  • Workspace memiliki:
    • name — Nama tampilan (contoh: "Blog Pribadi")
    • slug — Slug unik untuk subdomain (contoh: blog-pribadi)
  • Pengguna terikat ke workspace via WorkspaceMember dengan role tertentu.

Role & Bobot

RoleBobotDeskripsi
superadmin5Akses penuh ke seluruh sistem, termasuk /api/admin/*.
owner4Pemilik workspace, akses penuh termasuk hapus workspace.
admin4Setara owner — kelola anggota, pengaturan, konten.
editor3Kelola & publish konten, taxonomy, plugin, API key, webhook.
author2Buat & edit konten sendiri (tidak bisa publish).
subscriber1Read-only. Hanya bisa melihat konten.

Slug workspace memiliki dua fungsi: menjadi subdomain workspace dan menjadi nilai X-Workspace-ID saat memanggil API publik.

Langkah-langkah

1. Jalankan admin dashboard

Admin UI adalah Next.js dashboard yang disertakan di repositori Tulis. Jalankan sesuai cara setup-nya (biasanya npm install && npm run dev). Arahkan ke API host backend Anda.

2. Setup awal (pertama kali)

Jika baru pertama kali menjalankan Tulis, gunakan endpoint setup:

curl -X POST "https://YOUR_HOST/api/setup" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Admin Tulis",
    "email": "admin@example.com",
    "password": "superadmin123",
    "workspace_name": "My First Site",
    "workspace_slug": "my-first-site"
  }'

Response akan mengembalikan API key pertama — simpan segera, tidak bisa dilihat lagi.

3. Generate API key

Di dashboard admin (atau via API), buat API key:

curl -X POST "https://YOUR_HOST/api/api-keys" \
  -H "Authorization: Bearer <jwt_token>" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Frontend"}'

API key digunakan sebagai Authorization: Bearer <api_key> untuk Public API v1.

4. Mulai menggunakan API

Anda sekarang memiliki semua yang dibutuhkan:

  • API key → kirim sebagai `Authorization: Bearer ***
  • Workspace ID → kirim sebagai X-Workspace-ID: <uuid>

Contoh:

curl "https://YOUR_HOST/v1/posts" \
  -H "Authorization: Bearer <api_key>" \
  -H "X-Workspace-ID: <workspace_id>"

Next steps

Lini Masa Peluncuran Fitur

Fase 1: Setup Awal & KonfigurasiSELESAI

Docker Compose, pengaturan file environment, dan panduan setup lokal telah lengkap dibuat.

Fase 2: Referensi RESTful APISELESAI

Dokumentasi route endpoint publik, otentikasi JWT, dan kontrol hak akses telah selesai disusun.

Fase 3: Integrasi Frontend & Fitur LanjutSEDANG BERJALAN

Mempersiapkan boilerplate untuk Next.js client, manajemen revisi konten, dan optimasi query.