Menerbitkan dokumentasi dan playground#
Situs dokumentasi ini terbit ke GitHub Pages, dan panel playground di situs itu bisa disambungkan ke aplikasimu.
Situs dokumentasi dan aplikasi adalah dua hal yang diterbitkan terpisah. Situs dokumentasi berupa file statis. Aplikasi adalah API yang berjalan di server. Panel playground menghubungkan keduanya lewat browser pembaca.
Sebelum mulai: repository-mu ada di GitHub, dan kamu punya hak mengubah pengaturannya.
Menerbitkan situs ke GitHub Pages#
Repository ini membawa workflow di .github/workflows/docs.yml. Workflow itu meng-install tool dokumentasi dengan versi persis dari uv.lock, membangun situs dengan mkdocs build --strict, menerbitkannya, lalu membuka situs yang terbit untuk memastikan bisa diakses.
-
Di halaman repository, buka Settings, lalu Pages. Pada Source, pilih GitHub Actions.
-
Di
mkdocs.yml, pastikansite_urlberisi alamat situsmu. Tanpa domain sendiri, bentuknyahttps://NAMA_AKUN.github.io/NAMA_REPOSITORY/. Situs ini memakai domain sendiri: -
Commit perubahanmu, lalu push ke branch
main: -
Buka tab Actions di repository. Tunggu workflow Dokumentasi selesai. Alamat situsnya tampil di langkah
deploy.
Setelah itu, setiap push ke main yang mengubah docs/, overrides/, mkdocs.yml, pyproject.toml, atau uv.lock menerbitkan ulang situsnya. Versi Zul di header situs dibaca dari pyproject.toml, jadi situs ikut terbit ulang saat versinya naik. Pull request yang mengubah file-file itu hanya dibangun, tidak diterbitkan, jadi kesalahannya ketahuan sebelum digabung. Untuk menerbitkan tanpa push baru, buka workflow Dokumentasi di tab Actions, lalu klik Run workflow.
Memakai domain sendiri#
Situs ini terbit di zulkit.my.id. Alamat bawaannya, kazuma313.github.io/zul_utilities/, tetap bisa dibuka dan dialihkan GitHub ke domain itu. Domain dipasang di pengaturan GitHub, bukan di file. Karena situs diterbitkan lewat workflow GitHub Actions, file CNAME tidak diperlukan, dan diabaikan jika ada.
Sebelum mulai: domainnya sudah terdaftar atas namamu, dan kamu bisa mengubah DNS-nya di panel tempat membeli domain.
-
Buka Settings akun GitHub-mu, bukan Settings repository, lalu Pages. Klik Add a domain, isi domainnya, lalu klik Add domain. GitHub menampilkan satu record TXT untuk verifikasi.
-
Di halaman repository, buka Settings, lalu Pages. Isi Custom domain dengan domainnya, lalu klik Save. Langkah ini dikerjakan sebelum DNS diarahkan ke GitHub, supaya tidak ada orang lain yang sempat memakai domainmu untuk situs GitHub Pages mereka.
-
Di panel DNS tempat membeli domain, tambahkan record berikut:
Tipe Nama Nilai TXT _github-pages-challenge-NAMA_AKUNNilai dari langkah 1 A @185.199.108.153A @185.199.109.153A @185.199.110.153A @185.199.111.153AAAA @2606:50c0:8000::153AAAA @2606:50c0:8001::153AAAA @2606:50c0:8002::153AAAA @2606:50c0:8003::153CNAME wwwNAMA_AKUN.github.ioGanti
NAMA_AKUNdengan nama akun GitHub-mu. Recordwwwmembuatwww.di depan domainmu dialihkan ke domain utamanya. Jangan menambah record wildcard seperti*, karena subdomain mana pun lalu bisa diambil alih orang lain, walaupun domainnya sudah diverifikasi. -
Tunggu perubahan DNS tersebar, paling lama 24 jam. Setelah itu kembali ke Settings akun, Pages, lalu klik Verify pada domainnya.
-
Di Settings repository, Pages, centang Enforce HTTPS setelah opsinya bisa dipilih. GitHub membuat sertifikat HTTPS-nya, paling lama 24 jam setelah DNS-nya benar.
-
Ganti
site_urldimkdocs.ymldengan domainnya, lalu push kemain.
Memeriksa situs sebelum diterbitkan#
Workflow menghentikan penerbitan jika salah satu pemeriksaan berikut gagal:
| Pemeriksaan | Gagal jika |
|---|---|
mkdocs build --strict |
Ada tautan atau anchor yang rusak, atau tulisan blog tanpa tanggal atau tanpa ringkasan. |
| Hasil build | index.html, 404.html, atau blog/index.html tidak ada di folder site/. |
| Situs yang terbit | Halaman utama atau halaman blog tidak bisa dibuka setelah lima kali percobaan. |
Jalankan pemeriksaan build yang sama di komputermu sebelum push:
Hasilnya ada di folder site/. Folder itu berisi file statis, jadi bisa juga diunggah ke layanan hosting statis lain.
Memperbarui versi tool dokumentasi#
Versi MkDocs, tema Material, dan plugin-nya dikunci di uv.lock, di grup docs pada pyproject.toml. Karena itu situs yang dibangun workflow sama dengan yang kamu lihat di komputermu.
-
Perbarui satu paket, misalnya tema Material:
-
Bangun situsnya dan periksa tampilannya:
-
Commit
uv.lock, lalu push. Workflow memakai versi barunya.
Versi action GitHub di workflow diperbarui oleh Dependabot. Sebulan sekali Dependabot membuka satu pull request jika ada versi baru, dan build dokumentasi berjalan di pull request itu. Gabungkan pull request-nya jika build-nya lolos.
Playground di situs yang sudah terbit#
Pembaca situs yang sudah terbit belum tentu punya proyek yang berjalan. Karena itu panel playground punya dua keadaan, dan tombol status di bilah panel menunjukkan yang sedang dipakai:
| Status | Yang dijalankan panel |
|---|---|
| Simulasi | Contoh jawaban yang sudah disiapkan untuk tiga fitur bawaan template. Tidak ada model yang dipanggil. |
| Terhubung | Agent di aplikasimu, termasuk fitur yang kamu daftarkan sendiri. |
Panel mencoba menghubungi http://localhost:8000 saat halaman dibuka. Jika tidak ada jawaban, panel memakai simulasi. Pembaca tetap bisa melihat cara kerja agent tanpa meng-install apa pun.
Menyambungkan situs yang terbit ke aplikasimu#
Aplikasimu hanya menerima panggilan browser dari alamat yang kamu izinkan. Supaya situs yang sudah terbit boleh memanggilnya:
-
Di
.envaplikasimu, tambahkan alamat situs kePLAYGROUND_ORIGINS. Tulis asal situsnya saja, tanpa path:Ganti
NAMA_AKUNdengan nama akun GitHub-mu. Jika situsnya memakai domain sendiri, tulis domain itu, misalnyahttps://zulkit.my.id. -
Mulai ulang aplikasinya.
-
Di panel playground, klik tombol status, isi Alamat API proyekmu, lalu klik Sambungkan.
Alamat API disimpan di browser masing-masing pembaca. Pembaca lain tidak ikut tersambung ke aplikasimu.
Note
Sebagian browser tidak mengizinkan halaman HTTPS memanggil alamat http://localhost. Jika panel tetap berstatus Simulasi padahal aplikasimu berjalan, buka dokumentasi secara lokal dengan uv run mkdocs serve.
Menerbitkan aplikasinya#
Aplikasi hasil zul build hexa dijalankan sebagai container. Langkah membangun image dan menjalankannya ada di Menjalankan aplikasi. Server tujuanmu harus memberi tiga hal: variabel environment dari .env, port yang dibuka ke luar, dan HTTPS di depannya.
Warning
Jangan menyalakan playground di aplikasi yang bisa dijangkau publik. Playground menampilkan argumen dan hasil setiap tool, dan menjalankan aksi agent tanpa autentikasi. Di server produksi, isi PLAYGROUND_ENABLED=false.
Sebelum menjalankan lebih dari satu worker, pindahkan penyimpan percakapan ke database. Rinciannya ada di Menyimpan percakapan di database.
Halaman terkait#
- Workflow dokumentasi untuk setiap langkah, pemeriksaan, dan versi yang dikunci di workflow.
- Cara situs dokumentasi diterbitkan untuk alasan di balik pengaturan workflow itu.
- Menulis tulisan blog untuk menambah tulisan ke blog.
- Mencoba fitur di playground untuk mendaftarkan fiturmu sendiri ke panel.
- Environment variable untuk
PLAYGROUND_ENABLEDdanPLAYGROUND_ORIGINS. - Berkontribusi untuk aturan menulis halaman dokumentasi.