Guides - Deploying Flask through the Linode Marketplace
Quickly deploy a Compute Instance with many various software applications pre-installed and ready to use.
Flask is a quick and light-weight web framework for Python that includes several utilities and libraries you can use to create a web application. It is designed to make getting started quick and easy, with the ability to scale up to support more complex applications.
Deploying a Marketplace App
The Linode Marketplace allows you to easily deploy software on a Compute Instance using the Cloud Manager. See Get Started with Marketplace Apps for complete steps.
Log in to the Cloud Manager and select the Marketplace link from the left navigation menu. This displays the Linode Create page with the Marketplace tab pre-selected.
Under the Select App section, select the app you would like to deploy.
Complete the form by following the steps and advice within the Creating a Compute Instance guide. Depending on the Marketplace App you selected, there may be additional configuration options available. See the Configuration Options section below for compatible distributions, recommended plans, and any additional configuration options available for this Marketplace App.
Click the Create Linode button. Once the Compute Instance has been provisioned and has fully powered on, wait for the software installation to complete. If the instance is powered off or restarted before this time, the software installation will likely fail.
To verify that the app has been fully installed, see Get Started with Marketplace Apps > Verify Installation. Once installed, follow the instructions within the Getting Started After Deployment section to access the application and start using it.
NoteEstimated deployment time: Flask should be fully installed within 2-5 minutes after the Compute Instance has finished provisioning.
Configuration Options
- Supported distributions: Debian 10
- Recommended minimum plan: All plan types and sizes can be used.
Getting Started after Deployment
Installed Software
In addition to installing Flask, this Marketplace app installs and configures software to support running Flask in a production environment. Below is a list of the installed software:
- The
NGINX web server is installed with a basic NGINX configuration, located in
/etc/nginx/sites-enabled/flask_app
, and listening on your Linode’s IP address. - An example Flask application is downloaded to your Linode’s
/home/flask_app_project
directory. If you visit your Linode’s IP address, you will see the example Flask application running and serving boiler plate blog content. - Your example Flask application’s environment will be configured with basic settings located in the
/etc/config.json
file. - Gunicorn, a Python WSGI (web server gateway interface) HTTP Server for UNIX, is installed and running. It is used to forward requests from your NGINX web server to your Flask application.
- Supervisor, a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems, is installed and running on your Linode. Its configuration file can be found in the following location,
/etc/supervisor/conf.d/flask_app.conf
. - The example Flask app’s logs can be found in the following locations,
var/log/flask_app/flask_app.out.log
and/var/log/flask_app/flask_app.err.log
Removing Default Application
Users may find that they need to remove access to the default Flask application on port 80 to free up space for another application, or to otherwise remove components. The following steps can help to disable and decouple various aspects of the default Flask application included with the Flask Marketplace App:
Unlink the default NGINX site for the Flask app:
sudo unlink /etc/nginx/sites-enabled/flask_app
Stop the application from being monitored and maintained by supervisorctl:
sudo supervisorctl stop all
Remove configuration files for the Flask application:
sudo rm -rf /home/flask_app_project sudo rm /etc/config.json
Remove the Supervisor configuration files:
sudo rm /etc/supervisor/conf.d/flask_app.conf
NoteMany configuration files can be overwritten to support a new configuration instead of deleted outright. For more information on the default configuration, see our Flask Installation Guide and the Installed Software Section of this guide.
Next Steps
NoteCurrently, Linode does not manage software and systems updates for Marketplace Apps. It is up to the user to perform routine maintenance on software deployed in this fashion.
Now that you are familiar with all the software installed on your Linode with the Flask Marketplace app, you can explore the following steps:
- Connect to your Linode via SSH. You will need your Linode’s root password to proceed. You can explore the installed programs and update any configurations as needed. Consider following the steps in the Setting Up and Securing a Compute Instance guide to continue hardening your Linode’s security.
- Read through our Deploy a Flask Application on Ubuntu guide, which takes a deeper dive into the example Flask app that is deployed by the Marketplace app.
- Visit our Create a GIS Application using Flask, Stadia Maps, and MongoDB guide to learn how to create your own GIS application.
- Consult our How To Create an OAuth App with the Linode Python API Library to learn how to develop a Flask app using Linode’s API to automate creating Linode resources.
More Information
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
This page was originally published on