Runner
Cloud Application Platform — Deploy your apps in minutes. Auto-scale, custom domain, automatic SSL — no server management needed.
How Does It Work?
Runner uses container orchestration technology (CapRover) on top of FlazHost's server cluster. Each application runs in an isolated container with horizontally scalable resources.
Deploy flow: Push code to GitHub → GitHub Actions builds image → image is pushed to FlazHost registry → cluster deploys new container → app goes live in seconds.
- Connect your GitHub account
- Select the repository to deploy
- Choose a plan and app size
- System automatically injects Dockerfile + GitHub Actions workflow
- Push code → auto-deploy
Deploy Methods
Runner supports three deploy methods:
1. From GitHub (Custom Code)
Connect your GitHub repository. FlazHost automatically:
- Injects Dockerfile into your repository (if not exists)
- Injects GitHub Actions workflow (
.github/workflows/deploy.yml) - Builds image on GitHub Actions, pushes to FlazHost registry
- Deploys to Runner cluster — app goes live instantly
2. From Docker Image
Deploy directly from public or private image registries. Just enter the image name (e.g. nginx:latest, ghcr.io/username/app:v1) and the system will run it.
3. From Template (Starter)
Choose a ready-to-use template (WordPress, Strapi, n8n, Ghost, etc.) and deploy in one click. Templates include optimized Dockerfiles and configuration.
App Sizes (Replica)
Each application runs on one or more replicas. The replica size determines resource allocation per replica:
| Size | vCPU | RAM | Price/Replica/hr |
|---|---|---|---|
| Nano | 0.128 vCPU | 128 MB | Rp — |
| Micro | 0.256 vCPU | 256 MB | Rp — |
| Small | 0.512 vCPU | 512 MB | Rp — |
| Medium | 1.000 vCPU | 1024 MB | Rp — |
| Large | 2.000 vCPU | 2048 MB | Rp — |
Replicas are billed per hour (PAYG). Replica costs are additional to the monthly plan fee. Sleeping replicas (after 15-30 min idle) are not charged.
Plans & Pricing
Runner offers several subscription plans. Replica costs (PAYG) are billed separately from the plan fee.
Hobby
- Max apps: 1
- Max replicas per app: 1
- Sizes tersedia: nano
- Custom domain: 1
- Bandwidth 10 GB/bulan
- Sleep idle 30 menit
- Target: Belajar
Personal
Rp 194.000/year
- Max apps: 2
- Max replicas per app: 1
- Sizes tersedia: nano, micro
- Custom domain: 2
- Bandwidth 20 GB/bulan
- Sleep idle 15 menit
- Target: Blog/Portofolio
Developer
Rp 602.000/year
- Max apps: 5
- Max replicas per app: 5
- Semua app sizes tersedia
- Autoscale enabled
- Custom domain: 5
- Bandwidth 50 GB/bulan
- Backup mingguan
- Target: Freelancer
Start Up
Rp 1.316.000/year
- Max apps: 15
- Max replicas per app: 20
- Semua app sizes tersedia
- Autoscale enabled
- Custom domain: 10
- Bandwidth 200 GB/bulan
- Backup harian
- Support email
- SLA uptime 99%
- Target: UMKM
Pro
Rp 2.540.000/year
- Max apps: 30
- Max replicas per app: 50
- Semua app sizes tersedia
- Autoscale enabled
- Custom domain: 30
- Bandwidth 500 GB/bulan
- Backup harian
- Support WA
- SLA uptime 99.5%
- Target: SaaS
Business
Rp 8.150.000/year
- Max apps: 100
- Max replicas per app: 100
- Semua app sizes tersedia
- Autoscale enabled
- Custom domain: unlimited
- Bandwidth 2000 GB/bulan
- Backup harian
- Support WA prioritas
- Dedicated cluster option
- SLA uptime 99.9%
- Target: Perusahaan
Enterprise
Rp 20.390.000/year
- Max apps: unlimited
- Max replicas per app: unlimited
- Semua app sizes tersedia
- Autoscale enabled
- Custom domain: unlimited
- Bandwidth 10000 GB/bulan
- Backup harian + retensi
- Support WA + emergency
- Dedicated cluster option
- SLA uptime 99.95%
- Target: Enterprise
Auto-scale
Runner has two autoscale layers working together:
Layer 1: Replica Autoscale
For each app with autoscale enabled, the system monitors container CPU via CapRover API every ~1 minute:
- Scale Up — If CPU > high threshold (e.g. 80%) sustained → add +step replicas (capped at max_replicas)
- Scale Down — If CPU < low threshold (e.g. 20%) sustained → remove -step replicas (floored at min_replicas)
- Cooldown — Wait time between scales to prevent flapping
- Audit — All scale decisions are logged to
paas_scale_events
Layer 2: Node Autoscale
The system also monitors average CPU across all cluster nodes every ~5 minutes via SSH (reads /proc/stat from host):
- Add Node — If cluster avg CPU > threshold → add new worker node (capped at max_workers)
- Remove Node — If avg CPU low for sustained period → drain + terminate idle workers (master never terminated)
- Hard Cap — Maximum worker limit prevents runaway costs from misconfiguration
Safety & Reliability
- If CapRover stats endpoint fails, autoscaler skips the tick (does NOT scale)
- Cooldown prevents flapping
- All decisions are logged to audit trail
Auto-scale
Developer plan and above support autoscaling. The system automatically adjusts replica count based on CPU load (80% scale up threshold, 20% scale down threshold). Configurable settings:
- Min/Max Replicas — Minimum and maximum replica count
- CPU Threshold — CPU percentage to trigger scale up/down
- Cooldown — Wait time before next scale event (default 120s)
- Step Size — Number of replicas to add/remove per scale event
Custom Domain + Automatic SSL
Each app gets a default subdomain *.runner.flazhost.com. You can add your own custom domain — SSL (SSL otomatis) is issued and renewed automatically.
Custom domain limits: Personal (2 domains), Developer (5), Start Up (10), Pro (30), Business/Enterprise (unlimited).
GitHub Actions CI/CD
When you connect a GitHub repository, the system will:
- Add a Dockerfile to your repository (if not present)
- Add a workflow file
.github/workflows/deploy.yml - Push to your repository
Every push to the branch triggers automatic build + deploy.
Link Resources
Attach a database or Object Storage to your app. Environment variables are automatically injected into the container.
- Database: Choose existing MySQL/PostgreSQL or create new (PAYG)
- Object Storage: Link S3-compatible bucket for files/assets
- Auto-inject:
DATABASE_URL,S3_ACCESS_KEY, etc. are available in the container
Monitoring
Monitor app resources in real-time through the built-in monitoring dashboard. Available metrics:
- CPU Usage (%)
- Memory Usage (MB)
- Network I/O
- Container status & logs
Starter Templates
Deploy popular apps in one click: WordPress, Strapi CMS, n8n (automation), Activepieces, Ghost, Coolify, Dokploy, and more. Templates include optimized Dockerfiles.
Environment Variables & Secrets
Manage environment variables and secrets through the dashboard. Variables like DATABASE_URL, API keys, and other configuration can be set without hardcoding in the repository.
Backup & Restore
Runner has a multi-layered automatic backup system:
App Backup (User)
Per-app backups are stored to the customer OSS bucket. Backups cover app data volumes and configuration.
- Automatic Backup — Weekly/daily backups depending on plan
- Cluster Backup (Admin) — Full cluster backup for DR/migration
- Failed App Auto-Retry — If provision fails, system auto-retries
Backup & Restore
Automatic backups based on plan:
- Developer — Weekly backup
- Start Up, Pro, Business, Enterprise — Daily backup
Backups cover app volume data and can be restored through support.
Persistent Storage
Each app gets a persistent volume for data storage. Default size equals RAM allocation. Volumes can be upgraded for an additional fee.
Cron Jobs & Worker Apps
Runner supports background workers and cron jobs. You can deploy worker apps that run continuously, or scheduled periodic tasks.
Quota Enforcement
The system automatically enforces plan limits daily:
- Downgrade Violations — If user downgrades but still has apps exceeding new limits, apps are scaled to 0 or suspended
- App Limit — Maximum apps per plan are enforced on creation
- Resource Limit — Total CPU/RAM limited according to plan
SLA Uptime
| Plan | SLA | Support |
|---|---|---|
| Hobby - Developer | Best effort | Email + documentation |
| Start Up | 99% | Email support |
| Pro | 99.5% | WhatsApp + email |
| Business | 99.9% | Priority WA + dedicated cluster |
| Enterprise | 99.95% | WA + emergency + dedicated cluster |
Get Started with Runner
You can start using Runner from the Apps page in your FlazHost dashboard. Click "Create New App" and follow the wizard. The free Hobby plan is available for learning and experimentation without a credit card.