FlazHost | xPose, Runner & Kubernetes, Project
Empat tools dalam satu extension — powered by FlazHost:
- 🌐 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.
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
🌐 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
- Volume — ukuran persistent storage (0 = tanpa volume); mount path auto sesuai framework
- Auto Scale — kalau plan mendukung
- Link Resources — opsional: hubungkan database/bucket existing atau buat yang baru
- Environment Variables — auto-terisi dari
.env lokal
- 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"
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 Folder (buka di VS Code) · Open Browser · Remove (hapus dari daftar — file tidak dihapus)
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.