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.
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.
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 / workerThe 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.