Newv0.2.6 · Domains that just work

Your servers.Railway-grade deploys.

Falak is an open-source, self-hosted platform that turns any Linux server into a place to git push Laravel, Node, Bun and static sites, with databases, domains, logs and APM built in. Forge, Envoyer and Nightwatch, with a Railway-style canvas, on hardware you own.

Install Falak with one command

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

Free and open source (Apache 2.0) · Ubuntu 22.04/24.04 or Debian 12 · amd64 and arm64

Runs what you already build with, on the Linux servers you already rent

Logos are trademarks of their owners and show supported technologies. No endorsement is implied.

Project canvas

Think in projects, not servers

Every project is a canvas of services, sites and databases, per environment. Open a service and its panel slides in over the canvas; the canvas never navigates away.

  • Projects → environments → services, with production and staging duplicated in one click
  • Variable references like ${{ storefront_db.DATABASE_URL }} resolve at deploy time and draw edges between services
  • Groups, volumes and compose stacks on the canvas; ⌘K everywhere
Learn more: Project canvas

Git push deploys

Push to main. Live on every server.

Connect GitHub in one click and every push deploys. Falak builds once, prepares every server, runs migrations on the leader only, then switches all servers to the new release at the same moment.

  • Zero-downtime releases with health checks and automatic rollback when a release fails
  • Native builds for Laravel/PHP (FrankenPHP or PHP-FPM), Node, Bun, Deno and static sites; or Docker and Compose
  • Deploys wait for servers that are still provisioning; deploy hooks and the falak CLI for CI
Learn more: Git push deploys

Observability

Logs, traces and APM from day one

Every server ships logs, metrics and traces to your own LGTM stack. Add one package to a Laravel or Node app and get Nightwatch-style insights: requests, queries, jobs, exceptions.

  • Loki, Tempo, VictoriaMetrics or Mimir, and Grafana with dashboards provisioned per organization
  • Issues grouped from exceptions and threshold breaches, with missed scheduled runs caught by heartbeats
  • Access logs per release in Network Logs; alerts to email, Slack, Discord, Telegram or a webhook
Learn more: Observability

Templates

18 apps, one click each

n8n, Plausible, Umami, Ghost, WordPress, MinIO, Metabase and more. Secrets are generated once, domains are ready instantly, image versions are pinned.

  • Compose stacks rendered onto your servers, images pinned by digest for exact rollbacks
  • A policy blocks privileged containers, host networking and Docker socket mounts by default
  • Save any compose site as your own template, or import one from YAML
Browse the catalog: Templates

Domains

HTTPS on the first deploy

New services get a working address like storefront.63-182-218-247.sslip.io with a real certificate, no DNS needed. Add your own domain and Falak tells you exactly which records to create.

  • Live DNS check until the name points at your server, with Cloudflare proxying detected
  • Automatic Let’s Encrypt certificates, renewed by the edge
  • Redirects, basic auth, load balancers and Octane routing in the same place
Learn more: Domains

Servers

A 10 MB agent instead of a pile of scripts

Each server runs falak-agent: one static Go binary that dials out to your Falak host over mTLS. It provisions, deploys, supervises processes, runs cron, applies the firewall and ships telemetry.

  • Create servers on Hetzner, DigitalOcean, Vultr, Linode or AWS Lightsail, or bring any Ubuntu box
  • Queue workers, Horizon, daemons and the scheduler, supervised by the agent
  • Upgrade every agent from the panel in batches, verified by checksum
Learn more: Servers

And the rest of the platform

Everything a production app needs

The parts you would otherwise glue together from five tools and a wiki page.

Databases with backups

PostgreSQL, MySQL and MariaDB on your servers. Scheduled backups to S3, R2, B2 or local storage, one-click restore, connection strings and private-network access.

DATABASE_URL=${{ storefront_db.DATABASE_URL }}

Workers and scheduler

Queue workers, Horizon, daemons and cron, supervised by the agent. Heartbeats flag scheduled tasks that did not run.

Laravel Octane

FrankenPHP worker mode, Swoole or RoadRunner. Caddy serves public files and holds requests while Octane restarts.

Firewall and hardening

nftables rules applied by the agent, SSH hardening at provisioning, release directories closed to other users.

CLI, API and web terminal

A REST API with scoped tokens, the falak CLI, and a browser terminal to any server through its agent.

falak deploy shop --wait && falak logs shop --follow

Alerts where you are

Failed deploys and backups, rollbacks, crash loops and failed agent upgrades, sent to email, Slack, Discord, Telegram or a webhook.

Load balancers and private networks

Put a load balancer in front of several app servers and connect servers over WireGuard private networks.

falak-ctl for day two

status, doctor, backup and restore, and updates that back up first and roll back automatically if anything fails.

falak-ctl update # backup → pull → migrate → health-check, or roll back

The real thing

Not a mockup. This is Falak.

A calm, dark-first UI modelled on Railway, in dark and light.

Falak project canvas with the Storefront service panel open on its deploymentsFalak project canvas with the Storefront service panel open on its deployments
A Falak deployment with its per-server phase timeline and deploy logsA Falak deployment with its per-server phase timeline and deploy logs
Falak observability overview with requests, latency, exceptions, jobs, top issues and slow routesFalak observability overview with requests, latency, exceptions, jobs, top issues and slow routes
A PostgreSQL service in Falak with connection details and variable referencesA PostgreSQL service in Falak with connection details and variable references
The Falak create picker: git repository, database, Docker image, empty service or templateThe Falak create picker: git repository, database, Docker image, empty service or template

Real screenshots from Falak’s browser test suite (demo data).

How it works

From bare server to live app in three steps

  1. 01

    Install Falak

    Point two DNS records at a fresh host and run the installer. It checks the host, installs Docker, starts the stack with Let’s Encrypt and prints your admin password.

    curl -fsSL …/install.sh | sudo bash -s -- \
      --domain falak.example.com --email you@example.com
  2. 02

    Connect servers

    Create servers on your cloud account from the panel, or paste the printed one-liner on any Ubuntu box. The agent enrolls over mTLS and provisions the server for its role.

    curl -fsSL https://falak.example.com/install/<token> | sh
  3. 03

    Deploy

    Create a service from a repository, a Docker image or a template. Push to your branch, or install the falak CLI on your machine in one line and deploy from your terminal or CI.

    git push origin main
    # or, from your laptop:
    curl -fsSL …/install-cli.sh | sh
    falak deploy shop --wait

Architecture

One host for Falak. Any number of servers.

A Laravel modular monolith runs the panel, queues and API on one Docker Compose host. Servers never need inbound SSH: their agent dials out, so a firewall can drop everything but your apps.

Architecture: you use the browser, the falak CLI or the REST API against one Falak host (edge, control plane, agent API, queues, Postgres, Valkey, builder, and an optional Loki, Tempo, VictoriaMetrics and Grafana stack). Each managed server runs falak-agent, which dials out to the Falak host over mTLS for commands and sends logs, metrics and traces over OTLP.

Lightweight by design

Small enough to forget it’s there

Falak is built to leave your servers’ resources to your apps. Numbers measured on the production images, as documented in the install guide.

falak-agent binary
~10 MB
One static Go binary per server, no CGO.
agent memory
~17 MB
Replaces node_exporter, promtail, supervisord and crontab juggling.
panel response
2.7–23 ms
Median TTFB with 50 agents connected, 2 CPUs.
idle core stack
0.6–0.8 GB
The whole control plane at rest, with three servers enrolled.

Compare

Where Falak fits

Managed platforms trade control for convenience. Falak gives you the convenience on your own servers. Checked against public docs, as of September 2026.

Falak compared with Railway, Vercel, Laravel Forge and Coolify
FeatureFalakRailwayVercelForgeCoolify
Apps run on servers you ownYesNoNoYesYes
Control panel you host yourselfYesNoNoNoYes
Open sourceYesNoNoNoYes
Long-running workers and queuesYesYesNoYesYes
Git push-to-deployYesYesYesYesYes
Nothing to host or patch yourselfNoYesYesPartlyPartly

Open source · self-hosted

Own the platform, not just the servers

Falak’s source is on GitHub. Read it, run it, fork it. Your apps, databases and telemetry stay on machines you control, and your bill is your server provider’s bill.

  • Your data stays yoursSecrets are encrypted in the database; agents trust only your own Fleet CA.
  • No usage meterFlat server prices. No per-seat, per-build or per-request charges from Falak.
  • Built to be readA modular monolith with boundaries enforced by tests, a Go agent, and JSON Schema contracts between them.

FAQ

Frequently asked questions

Something missing? Ask on GitHub.

What is Falak?

Falak is a self-hosted, open-source (Apache 2.0) platform for deploying and running apps on servers you own. It combines Forge-style server management, multi-server zero-downtime deploys, a Railway-style project canvas and Nightwatch-style observability in one control panel that you install yourself.

Is Falak free?

Yes. Falak costs nothing to use. You pay your server provider for the machines Falak runs on and the servers it manages, nothing per seat, per deploy or per request.

Is Falak a self-hosted alternative to Vercel, Railway or Heroku?

Yes. You get git push deploys, zero-downtime releases with rollback, databases, custom domains with automatic HTTPS, logs and APM, on your own servers. Managed platforms still do some things Falak does not, such as global edge networks, pull-request previews and autoscaling; the comparison pages go through the details.

What do I need to install Falak?

A Linux host with Ubuntu 22.04/24.04 or Debian 12 (amd64 or arm64), 2 GB RAM minimum (4 GB recommended, 8 GB with the observability stack), ports 80 and 443 reachable, and DNS records for the panel and its agents host. The installer checks all of this before it starts.

Which servers can Falak manage?

Fresh Ubuntu servers from any provider, or created for you on Hetzner, DigitalOcean, Vultr, Linode or AWS Lightsail. Each server runs falak-agent, a small Go binary that connects to your Falak host over mTLS, and is provisioned for its role: app, web, database, cache, worker, load balancer or builder.

What can I deploy?

Laravel, Symfony, Statamic, WordPress and plain PHP (FrankenPHP or PHP-FPM), Next, Nuxt and Node apps, Bun and Deno, static sites with SPA fallback, Docker images and Dockerfiles, Docker Compose stacks, and 18 one-click templates such as n8n, Plausible, Umami, Ghost and MinIO.

Where does my data live?

On machines you control. The control plane and its Postgres database run on your Falak host, your apps and databases on your servers, and logs, metrics and traces go from the agents to your own Loki, Tempo and VictoriaMetrics or Mimir.

Is Falak ready for production?

Falak is young (v0.2). Its end-to-end suite drives the whole product against Ubuntu 24.04 servers in a simulation (provisioning, deploys, rollbacks, Octane, observability), and it has been run on real AWS servers. Some parts, such as provider APIs, S3 backups and alert delivery, are covered by unit and feature tests only so far. Updates take a backup first and roll back automatically if they fail.

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://raw.githubusercontent.com/OthmanHaba/falak/main/deploy/install.sh | sudo bash -s -- --domain falak.example.com --email you@example.com