FlazHost Workspace
Project, knowledge, dan deployment Anda dalam satu tempat — powered by FlazHost:
- 🧠 Workspace (Knowledge OS) — Analyze project Anda jadi Knowledge Pack yang hidup: endpoint, tabel (hasil replay migrasi), modul, relasi — lalu gap board menunjukkan apa yang direncanakan tapi belum dibangun, dan apa yang dibangun tanpa pernah diminta. Termasuk Relasi Database (ER) & graf arsitektur, dan sinkron ke
AGENTS.md + .build/ agar asisten AI mana pun langsung paham project Anda.
- 🌐 xPose — tunnel aplikasi lokal ke internet dalam 1 klik (auto port detection, HTTPS, no setup)
- 🚀 Runner — deploy aplikasi ke server FlazHost langsung dari VS Code (auto-detect stack, generate Dockerfile, CI/CD otomatis)
- ☸️ Kubernetes — deploy aplikasi ke Kubernetes (Kube Runner & Kube Cluster) langsung dari VS Code, alur yang sama dengan Runner (auto-detect stack, Dockerfile + GitHub Actions, rollout otomatis ke K8s)
- 🧩 New Project — inisiasi project dari katalog FlazHost (Starter Kit, Pre-built App, From Template) langsung ke lokal: isi form (port + database + Test Koneksi), lalu auto-run (install → migrate → start) + buka browser. Kelola & Start/Stop di panel My Project.
Satu kali sign-in, satu API token, semua fitur.
Tampilan
| Deploy ke Runner & Kubernetes |
Hasil Analyze — Blueprint vs Realisasi |
 |
 |
| Satu form untuk keduanya: ukuran app, volume, group, database, Redis, monitoring — plus estimasi biaya sebelum deploy. |
Knowledge health, bidang Blueprint (niat) vs Realisasi (kode), lalu gap: yang belum dibangun, dan yang dibangun tanpa diminta. |
| Relasi Database (ER) |
Graf Arsitektur |
 |
 |
| FK database digambar solid, relasi ORM putus-putus — fakta dan deklarasi tidak disamarkan jadi satu. |
Alur endpoint → class → entity → tabel; relasi hasil tebakan nama digambar putus-putus. |
Setup (sekali, untuk semua fitur)
1. Generate API Token di FlazHost
- Login di flazhost.com
- Buka https://flazhost.com/client/api-tokens
- Klik Generate Token → kasih nama (mis. "VSCode laptop kerja")
- Copy token (hanya tampil sekali!) — format
flz_...
Token otomatis dapat scope xpose + runner + kube — bisa dipakai untuk ketiga fitur.
2. Sign In di Editor
- Command Palette (
Cmd/Ctrl+Shift+P) → FlazHost: Sign In
- Paste token (format
flz_...)
- Selesai — status bar bawah-kanan tampil 🌐 FlazHost
🧠 Workspace — Knowledge OS untuk Project Anda
Blueprint biasanya jadi dokumen basi: ditulis sekali, lalu kode bergerak sendiri. Workspace membaca project Anda dari kodenya, menyimpannya sebagai Knowledge Pack yang hidup, lalu menunjukkan selisih antara niat dan realisasi.
Analyze — dibaca, bukan ditebak
Command Palette → Workspace: Analyze Existing Project (atau klik kanan project di panel My Project → Analyze / Re-Analyze).
Yang dibaca: endpoint, tabel (hasil replay seluruh file migrasi, kolom demi kolom — bukan tebakan dari model), entity/ORM, class & method, modul, test, workflow, dan relasi antar semuanya. Semua deterministik: hasilnya sama tiap kali dijalankan, dan tidak butuh API key AI. Yang tidak bisa dipastikan ditandai eksplisit sebagai tebakan — bukan disamarkan jadi fakta.
Dashboard — Blueprint vs Realisasi
Workspace: Open Dashboard menampilkan:
- Knowledge Health & Completion
- Bidang Blueprint (niat) berdampingan dengan Realisasi (kode), dirinci per tipe
- Gap board — dua arah:
- Not built — direncanakan, belum ada kodenya
- Built, not requested — ada di kode, tak pernah diniatkan (sering jadi lubang keamanan)
- Drift — perubahan kode yang belum tercermin di knowledge (Check for Drift / Watch Project for Drift)
- Recent decisions & changes — tiap perubahan tersimpan bersama alasan & pelakunya
Gap dihitung ulang tiap Analyze, jadi ia menutup dirinya sendiri begitu kodenya benar-benar ada.
Melihat struktur project
| Command |
Untuk apa |
| Workspace: View Database Relations |
Diagram ER: tabel + kolomnya, kardinalitas di ujung garis. Foreign key database digambar solid (fakta), relasi ORM putus-putus (deklarasi) — keduanya tidak disamarkan jadi satu |
| Workspace: View Architecture Graph |
Alur endpoint → class → entity → tabel, dibaca kiri ke kanan. Relasi hasil tebakan nama digambar putus-putus |
| Workspace: Go to Table / Entity / Class |
Lompat dari knowledge langsung ke barisnya di kode |
| Workspace: Search Knowledge |
Cari endpoint/tabel/class lintas project |
| Workspace: Test Endpoint · Export Endpoints to Postman · Export SQL |
Pakai knowledge-nya, bukan cuma melihatnya |
| Describe (AI) |
Penjelasan bahasa manusia per method/function — opsional, butuh AI key |
Konteks siap-AI
Workspace: Sync Knowledge to Folder menulis knowledge ke AGENTS.md + folder .build/ di repo Anda. Commit sekali, dan asisten AI mana pun (Claude Code, Copilot, Cursor) langsung paham struktur, aturan, dan apa yang sedang dikerjakan — konteks jadi milik repo, bukan milik satu vendor.
Kolaborasi
- Workspace: Share with Team — bagikan project baca-saja atau baca-tulis, per project.
- Workspace: Assign to Member / My Tasks — gap ditugaskan ke anggota; beban tiap orang terlihat di dashboard.
- Workspace: Clone Repo to Local — pindah laptop,
clone langsung dari Workspace (tanpa login GitHub kedua); blueprint & status ikut termaterialisasi di folder.
Plan & kuota
Workspace: Plan & Usage menampilkan pemakaian Anda. Plan: Free (3 project, riwayat 30 hari) · Starter · Team · Business (project & team unlimited, riwayat selamanya). Detail: flazhost.com/workspace.
Knowledge tidak pernah dihapus. Retensi hanya memangkas isi versi lama; versi terakhir tiap item, gap board, dan audit trail tetap utuh — termasuk kalau Anda turun ke plan Free.
🌐 xPose — Tunnel Local Apps
Expose aplikasi local ke internet dalam 1 klik. Cocok untuk demo, webhook testing, dan kolaborasi.
Mode Tunnel
xPose punya 2 mode tunnel — extension tampilkan picker saat publish:
- FlazHost Tunnel — pakai binary
frpc. Hostname otomatis di *.xpose.flazhost.com; plan Developer ke atas bisa pakai custom subdomain. Tersedia di semua plan, termasuk Free.
- Cloudflare Tunnel — pakai binary
cloudflared + akun Cloudflare Anda sendiri (BYO). Hostname pakai domain Anda di Cloudflare. Perlu plan Pro atau Business. Connect akun Cloudflare dulu di /client/xpose.
Kalau Anda pilih mode Cloudflare saat publish, extension akan minta pilih akun Cloudflare + zone + subdomain.
⚠️ Prerequisites — Install binary
xPose memanggil binary external untuk membuat tunnel:
frpc — untuk FlazHost Tunnel
cloudflared — untuk Cloudflare Tunnel
Extension bisa auto-install keduanya saat dibutuhkan. Atau install manual sebagai berikut.
frpc — FlazHost Tunnel
Linux (1-liner)
cd /tmp && \
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz && \
tar xzf frp_0.58.1_linux_amd64.tar.gz && \
sudo cp frp_0.58.1_linux_amd64/frpc /usr/local/bin/ && \
sudo chmod +x /usr/local/bin/frpc && \
frpc --version
macOS (Homebrew)
brew install frpc
Windows
- Download
frp_0.58.1_windows_amd64.zip dari GitHub releases
- Extract ke folder (mis.
C:\frp)
- Tambah folder ke System PATH (Settings → Environment Variables)
- Verify di PowerShell:
frpc --version
cloudflared — Cloudflare Tunnel
Linux
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
cloudflared --version
macOS
brew install cloudflared
Windows
Download cloudflared-windows-amd64.exe dari GitHub releases, rename ke cloudflared.exe, tambahkan ke PATH.
Usage
Publish app
- Run aplikasi local kamu (e.g.
npm run dev, python manage.py runserver, php artisan serve)
- Klik 🌐 FlazHost: Publish di status bar — atau Command Palette → FlazHost: Publish App
- Konfirm port (auto-detected dari
package.json/.env/framework defaults) dan nama subdomain
- ~5 detik kemudian: notif ✓ Published: https://your-app.xpose.flazhost.com
xPose this App — klik kanan folder
Cara cepat tanpa menjalankan app manual lebih dulu: klik kanan folder project di Explorer → xPose this App. Extension akan:
- Mengecek plan & slot tunnel lebih dulu — kalau belum ada plan aktif atau slot sudah habis, app tidak dijalankan sama sekali
- Mendeteksi cara menjalankan app & port dari
package.json/isi folder (Node, static site, Python, Go, PHP, Ruby) — pilih dari daftar atau ketik sendiri
- Menjalankan app di integrated terminal
- Menunggu app benar-benar listening, lalu membuat tunnel xPose otomatis — kalau app gagal jalan atau tunnel gagal dibuat (mis. slot habis), xPose dibatalkan dan app dihentikan otomatis
Stop / manage tunnel
- Klik status bar saat tunnel active → buka di browser
- Command Palette → FlazHost: Stop Tunnel
- Copy Public URL / Open in Browser
- ❓ Need Help — tiap baris tunnel di sidebar punya tombol ini; klik untuk membuka halaman tiket support dengan form sudah ter-isi detail tunnel (URL, tier, status, target port, bandwidth) + diagnostik environment.
Auto Port Detection
Extension cek (urut prioritas):
package.json scripts — --port=N, -p N, PORT=N
.env file — variable PORT=N
- Framework defaults: Next.js (3000), Django (8000), Laravel (8000), Rails (9292)
flazhost.defaultPort setting (default 3000)
🚀 Runner — Deploy App ke Server FlazHost
Deploy aplikasi ke server FlazHost (cloud) langsung dari VS Code. Tidak perlu nulis Dockerfile manual, tidak perlu setup pipeline — extension auto-detect stack project dan generate semua file CI/CD untuk Anda. Cocok untuk Laravel, Node.js, Python, Go, dan static site.
Kenapa Runner?
Developer experience yang disederhanakan — dari kode ke production tanpa keluar dari editor:
- Tanpa nulis Dockerfile manual — extension membaca stack project dan generate Dockerfile yang tepat. Untuk PHP, versi PHP & extension diambil langsung dari
composer.json.
- Tanpa setup CI/CD ribet — workflow GitHub Actions + semua secrets (registry, deploy token) dikonfigurasi otomatis. Push berikutnya langsung auto-deploy.
- Tanpa pindah-pindah tab — isi satu form, klik deploy, pantau build log live — semua di dalam VS Code.
- Tanpa urus server — image di-build, di-push ke registry, lalu dijalankan di infrastruktur FlazHost. Anda fokus ke kode.
Auto-scaling — app menyesuaikan beban secara otomatis:
- Aktifkan Auto Scale lewat satu checkbox di form deploy (tersedia kalau plan Anda mendukung).
- Saat traffic naik, jumlah replica bertambah otomatis; saat sepi, turun lagi — tidak perlu scaling manual.
- Cukup pilih App Size awal; Runner yang urus penskalaan sesuai beban.
Fitur Runner
- 🔍 Auto-detect stack — kenali project Laravel, Node.js, Python, Go, atau static site otomatis.
- 🐳 Generate Dockerfile — spec-aware: untuk PHP, versi PHP & extension (
gd, redis, pdo_mysql, dll) di-parse langsung dari composer.json.
- ⚙️ CI/CD otomatis — generate GitHub Actions workflow; secrets repo (Harbor, CapRover) di-set otomatis saat provisioning.
- 📊 Live build monitoring — pantau progress build GitHub Actions per-step + full log, langsung di panel Output VS Code.
- 💾 Persistent volume — opsional; mount path auto sesuai framework (mis. Laravel →
/var/www/html/storage).
- 📈 Auto-scaling — aktifkan kalau plan Anda mendukung.
- 🔧 Laravel queue & scheduler — opsi sertakan
queue:work + schedule:work via supervisor dalam satu container.
- 🔐 Aman by default —
.env otomatis masuk .gitignore; env vars dikirim ke konfigurasi server, bukan di-commit ke repo.
- 🧩 Hormati file Anda — kalau repo sudah punya
Dockerfile/captain-definition sendiri, dipakai apa adanya (atau ditimpa kalau Anda pilih Override).
- 🖱️ Deploy lewat klik-kanan — klik kanan folder di Explorer → Deploy to Runner. Kalau folder ternyata sub-folder dari repo lain (mis. di dalam monorepo), extension menawarkan copy/move ke lokasi mandiri dulu supaya tidak salah meng-commit repo induk.
- ❓ Need Help 1-klik — tiap baris app di sidebar Runner punya tombol bantuan; klik → halaman tiket support terbuka dengan detail app (status, size, replica, domain, repo) & diagnostik environment sudah ter-isi otomatis.
Cara kerja
[FlazHost: Deploy App to Runner]
↓
Auto-detect stack → generate Dockerfile + captain-definition + workflow
↓
Review/edit → Commit & Push ke GitHub
↓
Daftar app di FlazHost → GitHub Actions build → Harbor → CapRover
↓
Live monitoring build di panel Output "FlazHost Runner"
Cara pakai
- Buka folder project di VS Code — atau klik kanan folder di Explorer → Deploy to Runner
- Command Palette → FlazHost: Deploy App to Runner (dilewati kalau masuk lewat klik-kanan)
- Pilih GitHub account untuk set CI/CD secrets di repo. Project belum punya repo GitHub? Extension membuatkannya otomatis (pilih akun → owner → nama repo).
- Isi form deploy:
- Nama App
- App Size — pilihan size sesuai plan aktif Anda, dengan harga per jam langsung dari server
- Volume — ukuran persistent storage (0 = tanpa volume); mount path auto sesuai framework
- Group — opsional; app dalam satu group bisa saling akses lewat jaringan privat (tidak menambah biaya)
- Auto Scale — kalau plan mendukung
- Link Resources — opsional: Database, Redis, Object Storage — pakai yang sudah ada atau buat baru
- Monitoring — opsional: aktifkan metrik + log untuk app ini (langganan sekali per akun, dipakai untuk semua app)
- Environment Variables — auto-terisi dari
.env lokal
- Estimasi Biaya — total per jam / per bulan / per tahun dihitung ulang tiap kali pilihan berubah, sebelum Anda menekan deploy
- Klik Generate & Deploy — file deploy di-generate lalu langsung di-commit & push ke GitHub (Runner selalu pay-as-you-go, ditagih per jam)
- Pantau build live di panel Output "FlazHost Runner"
Pembayaran
- Saldo cukup → invoice dibayar otomatis dari saldo dan provisioning langsung jalan. Tidak ada langkah manual.
- Saldo kurang → invoice dibuat, dan Anda diarahkan untuk membayarnya; provisioning mulai setelah lunas.
Target deploy
Kalau Anda punya Runner Cluster sendiri, form akan menanyakan tujuan deploy-nya. Kalau tidak, cluster milik provider dipakai otomatis — tanpa pertanyaan. Cluster yang berasal dari layanan SaaS tidak pernah muncul sebagai pilihan.
Di cluster milik Anda sendiri, app size dan volume tidak ditagih — VM & disk-nya sudah dibayar lewat order node. Database, Redis, dan Object Storage tetap ditagih. Form menampilkan biaya sesuai target yang Anda pilih.
Stack yang didukung
| Stack |
Detail |
| PHP / Laravel |
Dockerfile spec-aware — versi PHP & extension di-parse dari composer.json. Optional: queue worker + scheduler via supervisor |
| Node.js |
Versi Node dari package.json (engines.node) |
| Python |
gunicorn + requirements.txt |
| Go |
Multi-stage build |
| Static |
nginx |
Kalau repo sudah punya Dockerfile / captain-definition sendiri, extension memakai yang ada (atau menimpa kalau Anda centang Override).
Catatan penting
- GitHub account wajib terhubung di /settings/github-accounts — FlazHost memakai token-nya untuk set CI/CD secrets (Harbor, CapRover) di repo Anda.
.env aman — file .env otomatis ditambahkan ke .gitignore. Nilai env vars dikirim ke konfigurasi server (CapRover), tidak di-commit ke repo.
- Laravel scheduler/queue — centang "Sertakan queue worker & scheduler" untuk menjalankan
queue:work + schedule:work via supervisor dalam container.
- Deploy berjalan lewat GitHub Actions → Harbor registry → CapRover.
☸️ Kubernetes — Deploy App ke Kubernetes
Deploy aplikasi ke Kubernetes langsung dari VS Code — alur identik dengan Runner, target berbeda. Cocok untuk app yang butuh elasticity & HA.
- Kube Runner — deploy app ke Kubernetes cluster bersama (shared), billing per-app.
- Kube Cluster — deploy app ke Kubernetes cluster milik Anda sendiri (tenant), gratis per-app karena cluster sudah dibayar per-node.
Cara pakai
- Sidebar FlazHost → Kubernetes, atau Command Palette → FlazHost: Deploy App to Kubernetes.
- Atau klik-kanan folder di Explorer → Deploy to Kubernetes.
- Pilih target cluster (kalau punya lebih dari satu), App Size, env, dll.
- Extension auto-detect stack → generate Dockerfile + GitHub Actions → push → build → rollout otomatis ke Kubernetes.
App yang sudah jalan tampil di sidebar Kubernetes dengan tombol: Open, Redeploy, View Build Status, Open Repo, Open Console, Need Help.
Catatan penting
- Sama seperti Runner: GitHub account wajib terhubung,
.env auto masuk .gitignore, deploy lewat GitHub Actions → Harbor registry, lalu rollout ke Kubernetes.
- Tidak memakai
captain-definition (khas CapRover) — Kubernetes pakai manifest yang dikelola server.
- Token API butuh scope
kube (otomatis dicentang saat generate token baru).
🧩 New Project — Scaffold Starter Kit & Template
Mulai project baru dari katalog FlazHost tanpa keluar dari editor: pilih template, scaffold ke folder lokal, isi konfigurasi lewat form, lalu extension menjalankan install + migrasi + dev server dan membuka browser otomatis. Cocok buat langsung ngoding di atas admin panel siap pakai (NodeAdmin, GoAdmin, dll) atau boilerplate per-stack.
Panel New Project (di bawah Kubernetes)
Sidebar FlazHost → New Project menampilkan katalog dalam 3 kategori:
- 🚀 Starter Kit — admin panel lengkap siap pakai (RBAC, auth, multi-theme, multi-DB).
- 📦 Pre-built App — app siap deploy dari image (tanpa scaffold lokal → diarahkan ke halaman deploy web).
- 📁 From Template — boilerplate kode per-stack.
Klik salah satu template → terbuka form Create Project. Alternatif: Command Palette → FlazHost: Project Baru dari Katalog.
- Nama project + lokasi folder (pilih lewat dialog).
- Port aplikasi — default otomatis dibaca dari
.env.example template, bisa diubah.
- Database — pilih engine: SQLite (tanpa kredensial) atau MySQL / MariaDB / PostgreSQL / CockroachDB / SQL Server / Oracle. Untuk engine non-SQLite muncul field Host / Port / Username / Password / Database.
- 🔌 Test Koneksi Database — cek koneksi langsung dari mesin Anda (opsional, tidak memblokir). Didukung untuk MySQL/MariaDB/PostgreSQL/CockroachDB/MSSQL; Oracle bisa dipilih tapi test dinonaktifkan.
- Isian form otomatis ditulis ke
.env project (APP_PORT, DB_TYPE, DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_DATABASE).
Dua tombol:
- Create Project — scaffold lokal + auto-run (lihat bawah).
- Create & Deploy — scaffold lalu lanjut ke flow Deploy to Runner (buat repo GitHub + build + deploy ke FlazHost). Tidak menjalankan dev server lokal.
Auto-run (Create Project)
Setelah scaffold, extension membaca manifest .flazhost/project.json di template lalu:
- Menjalankan install → migrate → start berurutan di integrated terminal (mis.
npm install && npm run migration:run && npm run start:dev).
- Menunggu app siap (poll
http://localhost:<port>), lalu membuka browser otomatis.
Perintahnya sepenuhnya dari manifest per-template — jadi tiap stack (Node, Go, dll) menentukan install/migrate/start-nya sendiri.
Panel My Project (di bawah New Project)
Setiap project yang dibuat tersimpan lokal di extension dan muncul di panel My Project. Per project tersedia:
- ▶ Start / ⏹ Stop dev server (status running/stopped)
- Open this Project — buka project di window ini atau di window baru (Anda yang memilih saat diklik)
- Analyze / Re-Analyze — bangun/segarkan Knowledge Pack project ini
- Deploy to Runner · Deploy to Kubernetes · xPose this Project — langsung dari daftar
- Open in Browser · Explore (buka di file manager)
- Remove from List — hapus dari daftar saja; file tidak disentuh
- Delete Project — hapus folder + knowledge di cloud. Permanen, dan diminta konfirmasi dulu
Catatan: status "running" bersifat sesi — setelah VS Code direstart semua tampil berhenti; klik Start untuk menjalankan ulang.
Settings
| Setting |
Default |
Description |
flazhost.apiBase |
https://flazhost.com |
API base URL (ganti kalau pakai self-hosted) |
flazhost.frpcPath |
frpc |
Path ke binary frpc — untuk FlazHost Tunnel |
flazhost.cloudflaredPath |
cloudflared |
Path ke binary cloudflared — untuk Cloudflare Tunnel |
flazhost.defaultPort |
3000 |
Port default xPose kalau tidak ke-detect |
Troubleshooting
| Error |
Fix |
| "Sign In dulu" |
Run command FlazHost: Sign In + paste token |
| "token in login doesn't match" |
Token API expired/revoked — generate baru di /client/api-tokens |
| "frpc/cloudflared tidak ditemukan" |
Install binary (lihat Prerequisites) atau klik Install Otomatis saat publish |
| "Belum ada akun Cloudflare ter-connect" |
Mode Cloudflare Tunnel butuh akun Cloudflare (plan Pro/Business) — connect dulu di /client/xpose |
| "Belum ada GitHub account terhubung" |
Runner/Kubernetes butuh GitHub account — hubungkan di /settings/github-accounts |
| "Token requires scope: kube" |
Token belum punya scope kube — generate token baru di /client/api-tokens (centang kube) |
| "Folder ini belum punya git remote" |
Runner deploy butuh repo GitHub. Buat repo & set remote origin dulu |
| Build run pertama gagal |
Normal — run dari push pertama jalan sebelum CI/CD secrets ter-set; FlazHost otomatis re-trigger setelah app ter-provision |
License
MIT — see LICENSE file.