Domino Apps let you share interactive web tools built with frameworks like Streamlit, Dash, Shiny, and Flask. Apps run in containerized environments with automatic routing, authentication, and resource management.
Apps in Domino are built for flexibility, letting you run custom web-based tools and expose them to others while Domino manages infrastructure, permissions, and routing. Each App follows a lifecycle, from setup and execution to its interaction with datasets, environments, and user identity.

This guide covers how Apps are defined, executed, and secured, and includes lifecycle details, access controls, and examples.
Domino Apps are defined at the project level, and each project can contain multiple apps. Every app uses the project’s files but can be configured with its own environment, hardware tier, and code branch.
This section explains how each app is structured and how its runtime settings are kept separate from other project workflows and jobs.
Key elements of an App’s definition include:
-
Launch File: The core entry point. It must start a process that runs a web server on
0.0.0.0
, exposed on port8888
. Shell scripts such asapp.sh
are commonly used as launch files. -
Compute Environment: Defines the runtime environment, including installed packages, libraries, and system dependencies.
-
Hardware Tier: Specifies the resources allocated to run the App. Resources include CPU, memory, GPU, etc.
-
Code Branch: Allows the App to run from a specific branch in the project’s Git-based file repository.
Together, these elements give you full control over how the App runs without affecting the development environment or job execution settings used elsewhere in the project.
Domino manages the entire lifecycle of your App, from infrastructure provisioning to request routing, so that you can stay focused on your app logic, not backend operations.
Start an App
When you start an App:
-
Container Provisioning: Domino launches a Kubernetes pod using:
-
The Compute Environment you selected (as a Docker image)
-
The Hardware Tier you specified
-
-
Launch File Execution: Domino runs the launch file you configured. This file must start a process that serves web traffic on port
8888
fromlocalhost
. -
Monitoring and Uptime: Domino monitors the App to ensure it stays available. If the App exits or crashes, Domino may automatically restart it based on platform settings.
-
Secure Proxying: All incoming web requests are routed through Domino’s proxy layer. This allows Domino to:
-
Authenticate users
-
Apply access controls
-
Log requests
-
Inject HTTP headers (like user identity or path prefix)
-
Stop an App
When you stop an App:
-
Domino shuts down the container and releases any allocated compute resources.
-
Any changes made inside the container, such as new files or edits, are not saved back to your project’s file repository.
Note
| This is different from Jobs or Workspaces, where output files can be persisted automatically. |
Apps can integrate with many of Domino’s core platform features, but not all features behave the same way in the context of an App. Use the table below to understand what is supported, what is limited, and what to watch out for when building Apps that need access to datasets, data sources, clusters, volumes, and more.
Feature | Supported in Apps | Notes |
---|---|---|
Datasets | Yes | Accessible via file API; use the Dataset API + user identity for per-user control. |
Data Sources | Yes | App inherits the starter’s permissions. |
Compute Clusters | Partially | Requires manual configuration and uses the App starter’s permissions for access. |
NetApp Volumes | Yes (Read/Write) | Mounted volumes are available inside the App container. |
Environment Variables | Yes | Project-level and user-level variables from the App starter are injected at runtime. |
Version Control (Git) | Yes | App runs code from the selected Git branch and commit. |
App Output Persistence | No | File changes inside the App are not saved to the project. |
-
Use Best Practices for Apps to make your apps easier to find and maintain.
-
Create and Publish an App has instructions on creating and publishing your Apps, customizing the App’s URL, and sharing Apps with authorized users.