Back to Reflex

Reflex Cloud - Quick Start

docs/hosting/deploy-quick-start.md

0.9.8a14.0 KB
Original Source

Reflex Cloud - Quick Start

python
import reflex as rx

So far, we have been running our apps locally on our own machines. But what if we want to share our apps with the world? This is where the hosting service comes in.

Quick Start

Reflex’s hosting service makes it easy to deploy your apps without worrying about configuring the infrastructure.

Prerequisites

  1. Hosting service requires reflex>=0.6.6.
  2. This tutorial assumes you have successfully reflex init and reflex run your app.
  3. Also make sure you have a requirements.txt file at the top level app directory that contains all your python dependencies! (To create a requirements.txt file, run pip freeze > requirements.txt.)

Authentication

First run the command below to login / signup to your Reflex Cloud account: (command line)

bash
reflex login

You will be redirected to your browser where you can authenticate through Github or Gmail.

Find the Deploy Command

Open Deployments in the project sidebar. If the project has no deployments yet, select How to deploy. This page shows the available workflows: one-click deployment from the Builder, deployment from the CLI, and deployment to a cloud provider.

For the CLI workflow, copy the project-specific reflex deploy --project ... command.

python
rx.image(
    src="https://web.reflex-assets.dev/docs-preview/hosting/how_to_deploy.webp",
    alt="How to deploy page with Deployments selected and a project-specific Reflex CLI command",
    class_name="rounded-md h-auto mb-4",
    border=f"0.81px solid {rx.color('slate', 5)}",
)

Deployment

Now you can start deploying your app.

From your project directory, where you normally run reflex run, run the command copied from the dashboard. It looks similar to:

bash
reflex deploy --project 2a432b8f-2605-4753-####-####0cd1####

The command is by default interactive. It asks you a few questions for information required for the deployment.

  1. The first question will compare your requirements.txt to your python environment and if they are different then it will ask you if you want to update your requirements.txt or to continue with the current one. If they are identical this question will not appear. To create a requirements.txt file, run pip freeze > requirements.txt.
  2. The second question will search for a deployed app with the name of your current app, if it does not find one then it will ask if you wish to proceed in deploying your new app.
  3. The third question is optional and will ask you for an app description.

That’s it! You should receive some feedback on the progress of your deployment and in a few minutes your app should be up. 🎉

For detailed information about the deploy command and its options, see the Deploy API Reference and the CLI Reference.

md
# Once your code is uploaded, the hosting service will start the deployment. After a complete upload, exiting from the command **does not** affect the deployment process. The command prints a message when you can safely close it without affecting the deployment.

If you go back to the Cloud UI you should be able to see your deployed app and other useful app information.

md
# Setup a Cloud Config File
To create a `config.yml` file for your app to set your app configuration check out the [Cloud Config Docs](/docs/hosting/config-file/).
md
# Moving around the Cloud UI
To go back, i.e. from an app to a project or from a project to your list of projects you just click the `REFLEX logo` in the top left corner of the page.
md
# All flag values are saved between runs
All your flag values, i.e. environment variables or regions or tokens, are saved between runs. This means that if you run a command and you pass a flag value, the next time you run the same command the flag value will be the same as the last time you ran it. This means you should only set the flag values again if you want to change them.