Skip to main content
The following guide sets up your Domino project more as a proper website powered by Flask. This isn’t difficult; you just need to make sure all the folders and files are in place to ensure the app runs correctly.

Create the App structure

First, you’ll need to create the app structure. The following is what we’ll end up with, and we discuss each area in turn. Note that /mnt is your Files directory on Domino. Also, the following names matter: __init__.py, /static, /templates. Besides those, everything can be customized to your liking in this topic.

Create the folders

In the Files section of Domino make a new folder called flask_app. This is a Python package that contains the web app. In the flask_app folder put two other folders, one called static the other templates. In the static folder you put your static files and in the templates folder you put your template files. The static and templates folders are recognized by Flask to know from where to fetch the appropriate files. It’s possible to change which folder is noticed as the static folder, but common practice is to just leave it as static.

Create the files

Create an __init__.py file in the flask_app folder. This file makes flask_app a Python package. In that file put the following:
Back in your Files section of Domino create a new file called run.py. In run.py add the following:
Also in your Files section of Domino, create a new file with the following content:
The purpose of this file is to provide the configuration including the host and port for your flask app when starting the web hosting process. You select this file as your app file, which Domino then runs within the container that contains your project files.
Domino requires the host configuration for app service to be 0.0.0.0. However, port selection is flexible and port 8888 is no longer required. If your hosting network uses a different default, you can specify that default in your app file or some alternate configuration.

Customization

Now we’re going to add a views.py file. This file is where you place all your app logic and should be created in the flask_app directory. We’ll make a simple app that just returns “Hello World!” Add the following to views.py:
If you have a template in the templates folder, you would add:

Publish the App

  1. Click Deployments > *Apps & Agents from the project sidebar.
  2. Give your app an informative title and description, and set permissions to Anyone can access. This allows anyone with a network connection to your Domino deployment to access the app if they have the URL.
    Select Make globally discoverable to make your app easily discoverable. You can always change this later.
  3. Select your app file.
  4. Click Publish Domino App.
  5. After the App status says “Running”, click View App to load your app.

Share and consume

Now, you can set the permissions on your app to Anyone can access to share it with colleagues who have access to your Domino instance. You can try this out yourself by opening a private or incognito browser, or logging out of Domino, and navigating to the Deployments > App > Copy App Link. To browse more apps, click Deploy > Apps in the top navigation menu.