Deploy an app

Streamlit Community Cloud lets you deploy your apps in just one click, and most apps will deploy in only a few minutes. If you don't have an app ready to deploy, fork or clone one of our example apps — you can find apps for machine learning, data visualization, data exploration, A/B testing and more.



If you want to deploy your app on a different cloud service, check out the Deploy Streamlit apps article in our Knowledge Base.

Streamlit Community Cloud launches apps directly from your GitHub repo, so your app code and dependencies need to be on GitHub before you try to deploy the app. See App dependencies for more information.

Streamlit allows you to optionally set configuration options via four different methods. Among other things, you can use custom configs to customize your app's theme, enable logging, or set the port on which your app runs. For more information, see Configuration and Theming. On Streamlit Community Cloud, however, you can only set configuration options via a configuration file in your GitHub repo.

Specifically, you can add a configuration file to the root (top-level) directory of your repo: create a .streamlit folder, and then add a config.toml file to that folder. E.g., if your app is in a repo called my-app, you would add a file called my-app/.streamlit/config.toml. Say you want to set the theme of your app to "dark". You would add the following to your .streamlit/config.toml file:



There can be only one configuration file, regardless of the number of apps in the repo.

To deploy an app, click "New app" from the upper right corner of your workspace, then fill in your repo, branch, and file path, and click "Deploy". As a shortcut, you can also click "Paste GitHub URL".

Deploy an app

If you are connecting to a data source or want to select a Python version for your app, you can do that by clicking "Advanced settings" before you deploy the app.

Advanced settings

You can connect to private data sources either by using secrets management or with IP allowlisting. Read more on how to connect to data sources.



Streamlit Community Cloud supports Python 3.7 - Python 3.11, and defaults to version 3.9. You can select a version of your choice from the "Python version" dropdown in the "Advanced settings" modal.

Your app is now deploying and you can watch while it launches. Most apps take only a couple of minutes to deploy, but if your app has a lot of dependencies it may take some time to deploy the first time. After the initial deployment, any change that does not touch your dependencies should show up immediately.

Watch app launch


The Cloud logs on the right hand side are only viewable to the developer and is how you can grab logs and debug any issues with the app. Learn more about Cloud logs.

That's it — you're done! Your app now has a unique subdomain URL that you can share with others. Click here to read about how to share your app with viewers.

App subdomain URLs follow a structure based on your GitHub repo:

https://[user name]-[repo name]-[branch name]-[app path]-[short hash]

For example:

This subdomain is unique to your app and can be used to share your app with others. However, the default subdomain is not always the most memorable or easy to share. That's why you can also set a custom domain for your app.



Documentation for embedding apps has moved to Embed your app. Please update your bookmarks.

Subdomains are customizable! With this step you'll be able modify your app URLs to reflect your app content, personal branding, or whatever you’d like. The URL will appear as:


To customize your app subdomain from the dashboard:

  1. Click the "︙" overflow menu to the app's right and select "Settings".

    Custom subdomain settings
  2. View the "General" tab in the App settings modal. Your app's unique subdomain will appear here.

    Custom subdomain pick

  3. Pick a custom subdomain between 6 and 63 characters in length for your app's URL and hit "Save".

    Custom subdomain save

It's that simple! You can then access your app by visiting your custom subdomain URL 🎉.

If a custom subdomain is not available (e.g. because it's already taken), you'll see an error message like this:

Was this page helpful?

editSuggest edits

Still have questions?

Our forums are full of helpful information and Streamlit experts.