# Create applications
URL: https://docs.datarobot.com/en/docs/wb-apps/custom-apps/upload-custom-app.html

> Create applications in DataRobot to share machine learning projects using web applications like Streamlit and Dash.

# Create applications

> [!NOTE] Premium
> Application upload from a pre-built image is a premium feature. Contact your DataRobot representative or administrator for information on enabling the feature.

Create applications in DataRobot to share machine learning projects using web applications—including Streamlit, Dash, and Plotly—from an image created in Docker. Once you create a custom machine learning app in Docker, you can upload it as an application in Registry > Application sources and deploy it with secure data access and controls. Alternatively, you can [use the DRApps command line tool](https://docs.datarobot.com/en/docs/classic-ui/app-builder/custom-apps/custom-apps-hosting.html) to create your app code and push it to DataRobot, building the image automatically.

The table below describes each method for creating an application:

| Method | Description |
| --- | --- |
| Upload an app | Upload an application saved as a tar, gz, or tgz archive. |
| Create an app from an application source | Build an application from an existing application source. |
| Create an app from a template | Build an application from a template provided by DataRobot. These are end-to-end recipes designed to accelerate the development and operation of generative and predictive AI use cases. |

> [!NOTE] Persistent storage in applications
> DataRobot uses the key-value store API and file storage to provide persistent storage in applications. This can include user settings, preferences, and permissions to specific resources, as well as chat history, monitoring usage, and data caching for large data frames.

> [!NOTE] Paused applications
> Applications are paused after a period of inactivity. The first time you access a paused application, a loading screen appears while it restarts.

## Supported frameworks

The following application frameworks are currently supported in DataRobot when creating an application from a Docker image:

- Streamlit
- Dash
- Aiohttp
- Plotly
- Flask

## Upload an application

To upload a custom application to DataRobot, first, you must create an app image in Docker:

1. InstallDocker.
2. Create an app (see examples forStreamlit,Flask, andAiohttp).
3. Exposeport8080in your Dockerfile for HTTP requests.
4. Build your image withdocker build [PATH] | [URL] --tag [IMAGE NAME].
5. Test your app image locally withdocker run --publish 8080:8080 [IMAGE NAME].

When you are ready to upload your app image to DataRobot, create a new build and then export it with `docker save [IMAGE NAME] --output [PATH]`. Once you have your app (exported as a `tar`, `gz`, or `tgz` archive), upload the image to the [Applications](https://docs.datarobot.com/en/docs/classic-ui/app-builder/create-app.html) page.

Once you have an application `tar`, `gz`, or `tgz` archive, you can upload the image in the DataRobot Registry:

1. InRegistry, go to theApplication sourcestile. Then, click the+ Add new application sourcedropdown and selectUpload application.
2. In theCreate new custom applicationpanel, configure the following:
3. Once the application is uploaded, clickCreate application. The application is added to theApplicationspage with a status ofInitializing. After it builds, clickOpento view the application. NoteClick theActions menunext to an application toShareorDeletethe application.

## Build an app from an application source

> [!NOTE] Note
> The storage component of applications is not persistent. You can only write to the `/tmp` directory, and the directory's contents won't be persisted across sessions.

If you have configured an [application source](https://docs.datarobot.com/en/docs/wb-apps/custom-apps/manage-custom-app.html#application-sources), you can use it to build an application:

1. InRegistry > Application sources, click on the application source you want to use, and then clickBuild application. Allow time for DataRobot to initialize the app.
2. The application is added to the list of apps built from that source. After it builds, clickOpento view the application. NoteOn theApplicationspage, click theActions menunext to an application toShareorDeletethe app.

## Build an app from a template

You can build an application using one of the out-of-the box, front-end templates provided by DataRobot. These templates contain all necessary assets with customizable components, allowing teams to quickly implement tailored AI solutions.

The following templates are available:

| Application template | Description |
| --- | --- |
| Flask app base template | A code template used to build a Flask application, a flexible web framework for Python. Flask allows you to map URLs to specific Python functions, which define the behavior of the app. |
| Node.js & React base template | A code template used to build a React frontend application with Node.js server functionality. |
| Q&A Chat Generation app template | A code template used to build a Q&A application powered by Streamlit and supported by the styling library streamlit-sal. |
| Slack Bot app template | A code template used to create a Slack application to configure Slack bot messages and events. |
| Streamlit app base template | A code template used to build a Streamlit application. Streamlit is an open-source Python framework designed for quickly building and deploying data-driven applications. |

To create an application from a template:

1. InRegistry, go to theApplication sourcestile. Then, click the+ Add new application sourcedropdown and selectCreate new application from template.
2. Browse the application templates to review the use cases that each template supports.
3. Click on a template to expand and review the supporting documentation, including more information about the use case.
4. Select a template and clickCreate application sourcein the top-right corner.
5. DataRobot brings you to theApplication sourcestile inRegistry, and populates a new app source with the template's contents. Review any application dependencies and the application source's files, then clickBuild application. Allow time for DataRobot to initialize the app.
6. The application is added to the list of apps built from that source. After it builds, clickOpento view the application.

---
