mkdir python_apps
Now change into python_apps folder
cd python_apps
**Step 6 :** From within this folder add/create your python project as you would normally do. Below we illustrate with specific examples for Flask, Django and Generic modes
**Flask**
mkdir flask-project
cd flask-project
python3 -m venv .venv
source .venv/bin/activate
Running the last command with activate the virtual environment, proceeding further
pip install flask
pip install gunicorn
You you can upload/write your Flask app and fire it up using gunicorn, but here I will showcase an example using the hello world app - refer https://flask.palletsprojects.com/en/2.3.x/quickstart/
Below code is saved to hello.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "Hello, World!
"
Now to fire our flash app, we use gunicorn
gunicorn -b 0.0.0.0:8000 -w 4 --forwarded-allow-ips='172.16.26.1' hello:app
To run it in background, we append & to the above command
gunicorn -b 0.0.0.0:8000 -w 4 --forwarded-allow-ips='172.16.26.1' hello:app &
To exit virtual environment use the command
deactivate
**Django**
mkdir django-project
cd django-project
python3 -m venv .venv
source .venv/bin/activate
Running the last command with activate the virtual environment, proceeding further
pip install django
pip install gunicorn
Here we can refer to https://docs.djangoproject.com/en/5.1/intro/tutorial01/ to run a hello world Django application
django-admin startproject mysite
cd mysite
When you change into //mysite// folder, it contains //manage.py// along with a //mysite// child folder
W.r.t. Django, please refer to these important links \\
* https://docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts - Please add your VHost name as mentioned in the linked article \\
* https://docs.djangoproject.com/en/3.0/ref/settings/#secure-proxy-ssl-header - Tt concerns the prefixing of http or https to your URLs/Assets
Now to fire our Django app, we use gunicorn
gunicorn -b 0.0.0.0:8000 -w 4 --forwarded-allow-ips='172.16.26.1' mysite.wsgi
To run it in background, we append & to the above command
gunicorn -b 0.0.0.0:8000 -w 4 --forwarded-allow-ips='172.16.26.1' mysite.wsgi &
To exit virtual environment use the command
deactivate
**Generic Python App**
mkdir generic-project
cd geneic-project
python3 -m venv .venv
source .venv/bin/activate
Running the last command with activate the virtual environment, proceeding further
pip install gunicorn
Here is a small hello world example of our generic app
Below code is saved to hello.py
def app(environ, start_response):
data = b"Hello, World!\n"
start_response("200 OK", [
("Content-Type", "text/plain"),
("Content-Length", str(len(data)))
])
return iter([data])
Now to fire our flash app, we use gunicorn
gunicorn -b 0.0.0.0:8000 -w 4 --forwarded-allow-ips='172.16.26.1' hello:app
To run it in background, we append & to the above command
gunicorn -b 0.0.0.0:8000 -w 4 --forwarded-allow-ips='172.16.26.1' hello:app &
To exit virtual environment use the command
deactivate
\\
**With this our SSH Console aspect of our python project is covered. Now we will link our app to our VHost/Website URL**
**Step 6 :** Log into N99panel and click on 'Python'
{{:python:screenshot_capture_-_2024-10-01_-_06-05-15.png?direct&400|}}
**Step 7 :** Now click on 'Python Apps via SSH'
{{:python:screenshot_capture_-_2024-10-01_-_06-06-40.png?direct&400|}}
**Step 8 :** Now further click on 'Map a Python Dev Port'
{{:python:screenshot_capture_-_2024-10-01_-_06-08-21.png?direct&400|}}
**Step 9 :** Fill the form with the requisite details
{{:python:screenshot_capture_-_2024-10-01_-_06-33-16.png?direct&600|}}
With these above mentioned steps, you can showcase your python apps to the world very easily.