Get started

From bare Ubuntu to first deploy

Operators install the cluster once. After that, every developer on the team gets the same short loop: create an app, push, open the URL.

Operators

Stand up the cluster

  1. Prepare Ubuntu hosts

    One machine to evaluate; three or more for production. Ubuntu 24.04 LTS, 2 GB RAM, 40 GB disk, and two cores each is the floor. Open 80 and 443 to the world and everything between the nodes.

  2. Run the installer and bootstrap

    A one-line installer puts the host agent, images, and a system service on each node. Join the nodes to one another, point your domain's DNS at them, and bootstrap.

  3. Turn on HTTPS and add plugins

    Register a Let's Encrypt account, enable it for platform routes, then install the dashboard, this homepage, and whichever datastores your teams need.

Developers

Ship the first app

  1. Install the CLI

    One binary for macOS (Intel and Apple Silicon), Linux, and Windows. It updates itself from GitHub Releases.

    curl -fsSL https://github.com/randy-girard/flynn/releases/latest/download/install-flynn-cli | sudo bash
  2. Sign in to your cluster

    Log in through the dashboard, or add the cluster with the command your operator gives you.

    $ flynn login
  3. Create, push, open

    Flynn adds a git remote to your repository. Push to it, attach a database if you need one, and open the URL it prints.

    $ flynn create myapp
    $ flynn resource:add postgres
    $ git push # to the remote Flynn added
    $ flynn scale web=2

Requirements

What you need

Hosts

Ubuntu 24.04 LTS on 64-bit x86. Bare metal, VMs, or a private cloud. Nodes should sit on one low-latency network.

Resources per node

At least 2 GB RAM, 40 GB disk, and two CPU cores. Give database appliances and builds more. A dedicated disk for storage is recommended in production.

Network

Ports 80 and 443 open to the internet, an optional range for TCP services, and unrestricted traffic between cluster members behind your firewall.

DNS

A domain for the cluster with records pointing at every host and a wildcard for app subdomains. Public DNS is required for Let's Encrypt.

Resources

Documentation and community

Technical documentation lives with the code so it stays current. This site is the overview; the repository is the reference.

Documentation

Installation, apps, Docker, databases, production, security, and the CLI. Browse the docs →

Releases

Platform, CLI, and plugin builds are published as GitHub Releases with grouped release notes. See releases →

Community

Questions, bugs, and contributions go through GitHub issues and Discord. Join the Discord →