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-install-backend

Self-Hosting Backend Tulis

Panduan ini menjelaskan cara self-host backend Tulis sumber terbuka — sebuah headless CMS yang dibangun dengan Go + Fiber, menggunakan MySQL (melalui GORM) sebagai basis datanya.

Tulis bersifat multi-tenant: konten berada di dalam Workspace, dan akses ke API publik dikendalikan oleh kunci API (Bearer token) ditambah identifier workspace (header X-Workspace-ID atau slug subdomain). Panduan ini hanya mencakup backend. Untuk admin UI Anda juga memerlukan dashboard admin Next.js (lihat Buat Workspace & Admin), atau Anda dapat menggunakan admin yang di-host (lihat Beli Admin yang Di-host).

1. Clone repositori

git clone <tulis-repo>
cd tulis-go

Ganti <tulis-repo> dengan URL repositori Go resmi Tulis.

2. Instal toolchain Go

Tulis memerlukan versi Go terbaru. Instal dari https://go.dev/dl/, lalu verifikasi:

go version

3. Siapkan basis data MySQL

Buat basis data MySQL kosong dan pengguna dengan akses ke dalamnya:

CREATE DATABASE tulis CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'tulis'@'localhost' IDENTIFIED BY 'ganti-dengan-password-kuat';
GRANT ALL PRIVILEGES ON tulis.* TO 'tulis'@'localhost';
FLUSH PRIVILEGES;

Catat nama basis data, pengguna, kata sandi, host, dan port — Anda akan membutuhkannya untuk file .env di langkah berikutnya.

4. Konfigurasi backend

Salin file contoh lingkungan dan isi nilai Anda:

cp .env.example .env

Edit .env. Setidaknya Anda perlu mengatur koneksi basis data, JWT secret, dan host API:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=tulis
DB_PASSWORD=ganti-dengan-password-kuat
DB_NAME=tulis
JWT_SECRET=ganti-dengan-string-acak-panjang
API_HOST=api.tulis.example.com
APP_ENV=development
APP_PORT=8080

Lihat Configuration untuk daftar lengkap variabel.

Dalam mode development, APISubdomainGuard dilewati di localhost, yang memudahkan pengujian lokal. Gunakan production untuk deployment sesungguhnya.

5. Jalankan migrasi dan mulai server

Tulis secara otomatis memigrasi entitasnya saat startup menggunakan GORM, jadi tidak ada perintah migrasi terpisah yang perlu dijalankan — memulai server akan membuat/memperbarui tabel.

Jalankan langsung:

cd backend
go run cmd/api/main.go

Atau buat biner dan jalankan:

cd backend
go build -o tulis-api ./cmd/api
./tulis-api

Server mendengarkan pada PORT yang dikonfigurasi (bawaan 8080).

6. Verifikasi instalasi

Repositori menyertakan skrip startup/verifikasi. Menjalankannya akan mengeksekusi rangkaian pengujian Go, yang merupakan pemeriksaan kesehatan yang baik setelah clone baru atau perubahan:

./init.sh

init.sh menjalankan cd backend && go test ./.... Semua pengujian harus lulus sebelum Anda menganggap instalasi sehat.

Langkah selanjutnya

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.