Hosting a Flask Website via Apache Server in Selfmade Ninja Lab

Hosting a Flask Website via Apache Server [WSGI]: A Step-by-Step Guide

A Step-by-Step Guide for Aspiring IT Students Welcome, students! If you’re eager to learn how to host a Flask website using an Apache server with WSGI, you’re in the right place. This comprehensive guide simplifies the deployment process, helping you showcase your projects to the world with ease. Let’s dive into the details and make your Flask application live!

Introduction

Flask is a powerful web framework in Python that allows rapid development and deployment of web applications. Using Apache server with WSGI (Web Server Gateway Interface) is a reliable method for production-ready hosting. This combination ensures your app runs smoothly in a secure and scalable environment.

Why Choose Selfmade Ninja Lab Cloud Lab Training for Aspiring IT Students?

Selfmade Ninja Lab is an excellent platform for hosting your applications. Here’s why it stands out for aspiring IT students:

  • High-Speed Connectivity

First and foremost, Selfmade Ninja Labs offers a blazing-fast internet connection, ensuring quick access and interaction with your web applications.

  • Robust Security

In addition to speed, SNA Labs provides robust Denial-of-Service (DoS) protection. This security measure keeps your applications safe from malicious attacks, maintaining their integrity and availability.

  • Ease of Use

Moreover, the setup process is user-friendly, making it easy for you to understand and implement. This simplicity helps you focus more on your development and less on troubleshooting deployment issues.

  • Continuous Availability

Another significant benefit is the 24/7 availability of your applications. With SNA Labs, your web applications are always online, ensuring that users can access them at any time.

  • Enhanced Functionality

Furthermore, SNA Labs offers free services such as MongoDB and Memcache, adding extra functionality to your applications without additional costs. These services help you build more robust and dynamic web applications.

  • Real-Time Learning

Finally, hosting your applications in SNA Labs provides a real-time learning experience. This hands-on approach allows you to apply your knowledge practically, helping you gain valuable skills in web development and deployment.

By leveraging these benefits, you can ensure your Flask applications are not only well-hosted but also optimized for performance and security.

Ready to start? Visit Selfmade Ninja Lab(click here) to activate your lab environment and explore the possibilities.

Obtaining a Domain for Your Website

To give your website its own unique identity, follow these steps to obtain a domain:

  1. Visit the Labs: Start by going to SNA Labs (click here)

  2. Navigate to Connectivity -> My Domains -> Add New Domains.

  3. Enter your desired domain name in the input field.

    Domain Input

  4. Return to https://labs.selfmade.ninja/labs.

  5. Select Essential Lab and initiate a Redeploy.

  6. From the "Choose Domains" dropdown, pick your new domain.

    Choose Domain

  7. Confirm the redeployment by clicking Confirm Redeploy.

With these steps completed, your website now has its own domain. 🌐 It’s all set to shine on the internet stage! 🚀

2. Install Python and Flask

To begin, execute these commands in your terminal to install Python and Flask:

sudo apt install python3.10-venv
sudo apt-get install libapache2-mod-wsgi-py3
sudo a2enmod wsgi

3. Create a Virtual Environment

Next, create and activate a virtual environment for your Flask application with the following commands:

python -m venv flaskEnev
source flaskEnev/bin/activate
pip install flask

Alt text for the image

4. Create a Flask App

You can use your existing project or follow these steps to create a simple "Hello World" application:

1.Set Up the Project Directory: Create a new directory and navigate into it:

mkdir helloworld
cd helloworld

2.Create the Application File: Open a new Python file named app.py:

nano app.py

3.Write the Flask Application: Add the following code to app.py:

from flask import Flask

application = app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello, World!'

if __name__ == '__main__':
app.run(debug=False)

5 Configure Apache to Serve Your Flask App

To configure Apache to serve your Flask application, follow these steps:

Create a Virtual Host Configuration

1.Navigate to the Sites-Available Directory: Create a new virtual host configuration file:

cd /etc/apache2/sites-available
nano testingSite.conf

2. Edit the Configuration File: Replace the placeholders in the configuration file with your specific details:

<VirtualHost *:80>
    ServerName [Your domain name]

    WSGIDaemonProcess [project_name] user=[your username] group=[your username] threads=5 python-home=[env dir ex=/home/john/flaskEnev]
    WSGIScriptAlias / [application folder ex=/home/john/helloworld/app.py]

    <Directory [project_folder]>
        WSGIProcessGroup [project_name]
        WSGIApplicationGroup [project_name]
        Order deny,allow
        Allow from all
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/[project_name]-error.log
    CustomLog ${APACHE_LOG_DIR}/[project_name]-access.log combined
</VirtualHost>

Alt text for the image

Test and Enable Your Site

3. Verify and Activate Your Configuration: Test and enable your new site configuration:

sudo apachectl configtest
sudo a2ensite testingSite.conf
sudo systemctl reload apache2

Alt text for the image

At this point, your Flask application should be accessible via your domain.

Alt text for the image

Conclusion

Congratulations on successfully hosting your Flask website via an Apache Server using WSGI! If you have followed the steps correctly, your Flask app should now be live. Feel free to explore and expand your Flask application. If you have any questions or run into issues, don’t hesitate to seek help or refer to the documentation. Happy coding!

For more tutorials and tech insights, visit http://blog.selfmade.ninja/

Happy Coding! Author :‎ ‎ ‎ [Jawahar.s] GITHUB :‎ ‎ ‎ https://github.com/jawa77

Leave a Comment

Realted Blog >>

MQTT Service
Hosting MQTT Service in Selfmade Ninja Labs
Welcome to the Guide on Setting Up and Using MQTT in Selfmade Ninja Labs Welcome to your comprehensive...
wireguard window
How to Connect to Selfmade Ninja Lab with WireGuard (Windows)
Prerequisites A Selfmade Ninja Lab account (If you don’t have an account, create one here). A working...
Ubuntu
How to Connect to Selfmade Ninja Labs with WireGuard (Ubuntu)
Welcome to our step-by-step guide on connecting to Selfmade Ninja Labs using SSH and WireGuard and configuring...
1 2
Scroll to Top