Run a Rocket App

Getting an application running on is essentially working out how to package it as a deployable image. Once packaged, it can be deployed to the platform.

In this guide we’ll learn how to deploy a Rocket application on

Rocket is a web framework for Rust that makes it simple to write fast, type-safe, secure web applications with incredible usability, productivity and performance.

Launching a Rocket app on is painless! With the help of the cargo chef, we get great build times and small images.


First, install flyctl, the CLI, and sign up to if you haven’t already.

The fastest way to get a basic Rocket server on is to use our rocket template:

git clone --single-branch --branch rocket rocket-app
cd rocket-app
fly launch --generate-name

Deploy a Rocket App from scratch

If you don’t already have an existing Axum application, you can create one with cargo:

cargo new rocket-on-fly
cd rocket-on-fly

Then we have to add the rocket dependency to the project:

cargo add rocket

Now, let’s create a simple app in src/

#[macro_use] extern crate rocket;

fn index() -> &'static str {
    "Hello from!"

fn rocket() -> _ {
    rocket::build().mount("/", routes![index])

This will display a “Hello from!” message when you visit the root URL. Take note that we serve the app on host and port 8000, these are the defaults for rocket. When deploying the app these defaults will be overridden using environment variables which you can find in the fly.toml.

We can confirm everything works fine by running cargo run and checking out http://localhost:8000.

And with that you can deploy the app!

fly launch
Scanning source code
Detected a Rocket app
Warning: This organization has no payment method, turning off high availability
Creating app in [redacted]/rocket-on-fly
We're about to launch your app on Here's what you're getting:

Organization: Your Name              (fly launch defaults to the personal org)
Name:         [app-name]             (derived from your directory name)
Region:       Amsterdam, Netherlands (this is the fastest region for you)
App Machines: shared-cpu-1x, 1GB RAM (most apps need about 1GB of RAM)
Postgres:     <none>                 (not requested)
Redis:        <none>                 (not requested)
Sentry:       false                  (not requested)


==> Building image
==> Building image with Docker

Watch your deployment at[app-name]/monitoring

Visit your newly deployed app at https://[app-name]

This will generate a fly.toml file with the configuration for your app and a Dockerfile that uses cargo chef. Refer to the fly.toml docs for more configuration options.

To deploy a new version of your app, simply run fly deploy in the project directory.

You can check out the full (yet minimal) example in this GitHub repository for a reference.