Skip to content

What is Falak?

Falak is a self-hosted platform for deploying and running web apps on your own servers. You install one control plane, connect any number of Linux servers, and deploy from Git, a Docker image, a Compose file or a template. Falak builds your code, ships it to every server, switches traffic without downtime, and shows you logs, metrics, traces and errors afterwards.

It covers what you would otherwise assemble from several products:

You would use For In Falak
Laravel Forge Provisioning servers, PHP versions, firewalls, SSH keys, databases, workers, cron Servers, Databases, Processes
Laravel Envoyer Zero-downtime deploys to several servers, rollbacks, deploy hooks Deployments, Rollbacks
Railway, Render, Vercel Project canvas, services, variables with references, templates, generated domains Projects, Templates, Domains
Coolify Native and Docker builds, Docker Compose stacks Build modes, Compose
Laravel Nightwatch, Sentry Request, query and job traces, grouped exceptions, slow routes, missed scheduled tasks Insights, APM for Laravel
Grafana stack Logs, metrics, traces and dashboards Observability

A project canvas

Services (sites and databases) sit on a canvas per environment. Arrows show which service references which. Click a service to deploy it, edit variables, read logs or change settings.

Real servers, managed for you

A small Go agent (falak-agent, about 10 MB) runs on each server. It provisions PHP, FrankenPHP, Node, databases and the firewall, then runs deployments and processes.

Safe multi-server deploys

Build once, fetch on every server, migrate on the leader only, switch together, health-check, and roll back automatically if anything fails.

Observability included

Access logs, app logs, host and container metrics, OpenTelemetry traces, grouped issues and alerts to email, Slack, Discord, Telegram or webhooks.

Falak at a glance
you ──► control plane (Laravel, one Docker Compose stack on its own host)
│ UI · REST API · falak CLI · builder · Grafana (optional)
│
│ agents dial out over HTTPS with mutual TLS (no inbound SSH needed)
▼
server 1 ─ falak-agent ─ Caddy/FrankenPHP ─ your apps, workers, cron
server 2 ─ falak-agent ─ PostgreSQL/MySQL/MariaDB
server N ─ falak-agent ─ load balancer / builder / worker
  • The control plane is where you work. It runs on a separate host, installed with one command. See Install Falak.
  • Servers are the machines that run your apps. Falak never builds on them; builds run on a builder. See Servers and agents.
  • Agents connect out to the control plane, so your servers need no open management ports beyond SSH.

The full picture, with every component and port, is in Architecture.

Kind Options
Framework presets Laravel, Symfony, Statamic, WordPress, plain PHP, Next.js, Nuxt, generic Node, static site, Docker
Runtimes FrankenPHP (default for PHP), PHP-FPM + Caddy, Node.js, Bun, Deno, static, Docker, Docker Compose
PHP versions 8.1 to 8.5 on servers (sites can pin 7.4 to 8.5 if installed)
Node.js 20, 22 (default), 24 on servers; 18 to 24 selectable on sites
Databases PostgreSQL, MySQL, MariaDB
Server OS Ubuntu LTS (24.04 recommended)
Cloud providers Hetzner, DigitalOcean, Vultr, Akamai/Linode, AWS Lightsail, or any server you bring

Falak is open source under the Apache License 2.0 (github.com/OthmanHaba/falak). Everything, including your code, secrets, logs and metrics, stays on machines you control. There is no hosted Falak service that your servers talk to.

Falak is young. Every page lists what is not supported yet, and Limits collects them in one place.