· The Falak team

Introducing Falak: Railway-grade deploys on your own servers

Why we built Falak, a self-hosted, open-source platform that combines Forge-style server management, zero-downtime deploys and built-in observability.

Most teams end up choosing between two kinds of hosting. Managed platforms like Railway, Vercel or Heroku feel wonderful until the bill grows, a backend needs a long-running worker, or someone asks where the data actually lives. Running your own servers keeps you in control, but it means stitching together a server panel, a deploy tool, a monitoring product and a wiki page of shell commands.

Falak is our attempt to get both: the experience of a modern platform, on servers you own.

What Falak does

  • A project canvas. Projects contain environments, environments contain services: sites, databases and compose stacks. Open a service and its panel slides over the canvas. Variables can reference other services (${{ storefront_db.DATABASE_URL }}), and those references draw edges on the canvas.
  • Git push deploys, done carefully. Falak builds once, prepares every server, runs migrations on the leader only, switches every server to the new release at the same moment, health-checks, and rolls everything back if something fails.
  • Native runtimes. Laravel and PHP run on FrankenPHP or PHP-FPM (with Octane if you like), Node, Bun and Deno run as supervised processes, static sites get a proper 404 page or SPA fallback. Docker images, Dockerfiles and Compose stacks are there when you want containers.
  • Templates. Eighteen apps (n8n, Plausible, Umami, Ghost, WordPress, MinIO, Metabase and more) with pinned versions, health checks and generated secrets.
  • Domains that just work. Every new service gets an sslip.io name with a real certificate. Custom domains show the exact DNS records to add and a live check until they resolve.
  • Observability from day one. Logs, metrics and traces flow into your own Loki, Tempo and VictoriaMetrics (or Mimir) with Grafana dashboards. The falak/apm-laravel package records requests, queries, jobs and exceptions, the way Laravel Nightwatch does, and issues show up in Falak’s Insights.

How it is built

The control plane is a Laravel modular monolith: every domain (servers, sites, deployments, databases, telemetry and so on) is a module with a public contract, and architecture tests keep the boundaries honest. Servers run falak-agent, a single static Go binary of about 10 MB that uses about 17 MB of memory. The agent dials out to your Falak host over mTLS, so servers need no inbound SSH, and it replaces the usual pile of supervisord, crontab, node_exporter and promtail.

Installing Falak is one command on a fresh Ubuntu or Debian host:

curl -fsSL https://falak.sh/install.sh | sudo bash -s -- --domain falak.example.com --email you@example.com

Day-two operations go through falak-ctl: status, doctor, backup, restore, and update, which takes a backup first and rolls back on its own if anything goes wrong.

What it does not do yet

Falak is young. There are no pull-request preview environments yet, no autoscaling, and no global edge network. If those matter most to you, a managed platform is still the better fit, and our comparison pages say so.

Try it

Read the docs, browse the templates, and star or open issues on GitHub. We would love to hear what you deploy with it.

Your servers are waiting.

One command installs Falak on a fresh Ubuntu or Debian host. Connect servers, push code, watch it go live.

curl -fsSL https://falak.sh/install.sh | sudo bash -s -- --domain falak.example.com --email you@example.com