Django - Einrichtung auf Managed Server

Wir möchten Ihnen hier aufzeigen, wie Sie das Web Framework Django auf Ihrem Managed Server installieren und als Dienst einrichten können. Die Einrichtung gestaltet sich dabei sehr einfach, so dass Sie innerhalb weniger Minuten eine lauffähige Instanz haben.

Installation von Django

Für die Installation von Django wird eine virtuelle Umgebung (virtual environment) für Python benötigt. Achten Sie bitte darauf welche Python Version auf dem Server installiert ist. Django 3.2 LTS benötigt mindestens Python 3.6. Django 4.0 benötigt mindestens Python 3.8. Beachten Sie dabei die Django FAQ <https://docs.djangoproject.com/en/4.0/faq/install/#what-python-version-can-i-use-with-django>.

Loggen Sie sich per SSH bei dem gewünschten Nutzer ein. Um zu schauen welche Python Version installiert ist reicht die Eingabe von python mit anschließend doppeltem Drücken der Tabulator Taste:

$ python
python2     python2.7   python3     python3.6   python3.9

Führen Sie für die Installation von Django nun folgende Befehle aus:

python3.9 -m venv --without-pip .virtenv
source .virtenv/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
python -m pip install Django
deactivate

Damit haben Sie das Web Framework Django installiert und Sie können beginnen, eigene Projekte anzulegen. Wichtig dabei ist, dass Sie zuvor immer in die virtuelle Umgebung wechseln. Dies erfolgt mit

source .virtenv/bin/activate

Verlassen können Sie die virtuelle Umgebung mit

deactivate

Anlegen eines Projekts

Das Anlegen eines neuen Projekts in Django erfolgt mit folgendem Befehl

source .virtenv/bin/activate
django-admin startproject mysite
deactivate

Projekt testen und starten

Um das neue Projekt zu testen und zu starten führen Sie folgenden Befehl aus

source .virtenv/bin/activate
python mysite/manage.py runserver
deactivate

Nun startet der Django-Server. Jedoch ist dieser nur lokal über Port 8000 aufrufbar und wird beendet, sobald auch die Ihre SSH Sitzung beendet wird. Daher sollte das Projekt als eigener Dienst eingerichtet werden.

Einrichtung als Dienst

Damit Endkunden eigene Dienste starten können, muss dies im Angebot des Endkunden aktiviert werden. Im Angebotsmenü können Sie angeben, wie viele Dienste ein Endkunde starten darf.

../../../_images/3.png

Um den Dienst einzurichten, gehen Sie ins Endkundenmenü und dort nach

Dienste => Übersicht

Dort kann ein entsprechender Dienst über den Button Neuer Dienst eingerichtet werden. Für die Ausführung empfiehlt es sich, ein Skript anzulegen. Für das Django Projekt sähe dies wie folgt aus:

#!/bin/bash
cd ~
source .virtenv/bin/activate && python mysite/manage.py runserver

Mit chmod +x <skript.sh> können Sie das Skript ausführbar machen.

Geben Sie für den Dienst nun einfach den Pfad zum Skript an.

../../../_images/1.png

Sobald Sie mit OK bestätigen wird der Dienst eingerichtet und gestartet. Dieser läuft weiterhin lokal auf Port 8000. Damit das Projekt von außen erreichbar wird, muss ein Proxy eingerichtet werden. Auch dies erfolgt über das Endkundenmenü.

../../../_images/43.jpg

Dienste werden mit softlimits ausgeführt. Es kann sein, dass Django mit zu geringen Limits nicht korrekt startet. Dies erkennt man daran, dass der Dienst immer nur für 0-1 Sekunde läuft. In dem Fall müssen Sie im Angebot des Endkunden das Speicherlimit anpassen. Wenn Sie -1 eintragen wird das Limit deaktiviert.

Einrichtung Proxy

Für die Einrichtung des Proxies gehen Sie nach

Subdomains => Übersicht

Dort legen Sie entweder eine neue Subdomain an oder wählen eine vorhandene Subdomain aus. Mit Klick auf die Aktion Ziel können Sie den Proxy Eintrag vornehmen. Als Ziel geben Sie http://127.0.0.1:8000/ an und setzen den Haken bei Proxy-Eintrag für URL-Ziel anstatt Redirect anlegen.

Optional können Sie auch direkt ein Passwortschutz mit einrichten.

../../../_images/2.png

Mit Klick auf OK ist die Einrichtung des Proxies abgeschlossen und Sie können Ihr Django Projekt über die gewählte Subdomain aufrufen.