Skip to main content
Getting an application running on Fly.io is essentially working out how to package it as a deployable image. Once packaged, it can be deployed to the Fly.io platform. In this guide we’ll learn how to deploy a .NET application on Fly.io.

Generate the .NET Application

For our example, we will create a simple “hello world” application using the default web template in .NET. We assume that you have already installed .NET. Once .NET is installed, we can create a new project by running the following command:

Running the Application

In the new application folder, execute the command dotnet run to initiate the application:
This command will start the “hellodotnet” application, and you will be able to access it locally using the address provided in the output. Now, let’s proceed to deploy this application to Fly.

Install Flyctl and Login

We are ready to start working with Fly.io, and that means we need flyctl, our CLI app for managing apps on Fly.io. If you’ve already installed it, carry on. If not, hop over to our installation guide. Once that’s installed you’ll want to log in to Fly.io.

Launch the app on Fly

Each Fly App needs a fly.toml file to tell the system how we’d like to deploy it. That file can be automatically generated with the command flyctl launch command. This command will also generate a Dockerfile for deployment.
That’s it! Run fly apps open to see your deployed app in action. Try a few other commands:
  • fly logs - Tail your application logs
  • fly status - App deployment details
  • fly deploy - Deploy the application after making changes

Inside fly.toml

The fly.toml file now contains a default configuration for deploying your app. In the process of creating that file, flyctl has also created a Fly-side application slot of the same name, “hellodotnet”. If we look at the fly.toml configuration file we can see the name in there:
The flyctl command will always refer to this file in the current directory if it exists, specifically for the app name/value at the start. That name will be used to identify the application to the Fly.io platform. The rest of the file contains settings to be applied to the application when it deploys.

Deploying to Fly.io

To deploy changes to your app, just run just run:
This will lookup our fly.toml file and get the app name hellodotnet from there. Then flyctl will start the process of deploying our application to Fly.io using the Dockerfile. Flyctl will return you to the command line when it’s done.

Viewing the Deployed App

If you want to find out more about the deployment. The command fly status will give you all the essential details.

Connecting to the App

The quickest way to browse your newly deployed application is with the flyctl apps open command.
Your browser will be sent to the displayed URL.

Bonus Points

If you want to know what IP addresses the app is using, try fly ips list:

Arrived at Destination

You have successfully built, deployed, and connected to your first .NET web application on Fly.io.