Posted on Sa 19 Oktober 2013

bottle.py auf Uberspace installieren

bottle.py ist ein einfaches, in Python geschriebenes, Mikro-Framework für Webanwendungen, ähnlich wie Flask (Python) oder Sinatra (Ruby). Freiesmagazin.de erklärt hier kurz und bündig wie bottle.py genutzt werden kann. In den folgenden Zeilen möchte ich erläutern wie man bottle.py auf Uberspace installieren kann.

bottle.py installieren

Nach dem Einloggen (per ssh) wechselt man ins Verzeichnis \~/bin um dort ein neues Projekt-Verzeichnis zu erstellen. (z.B. bottlepy) Anschließend wird bottle.py mittels Kommando wget heruntergeladen und man schreibt sein erstes Skript, z.B. in die Datei index.py. In diesem Beispiel wird in der run-Zeile ein Webserver gestartet der auf Port 8787 läuft.

cd bin

# ins Verzeichnis bin wechseln

mkdir bottlepy

# ein neues Verzeichnis mit dem Namen bottlepy erstellen

cd bottlepy

# in das neue Verzeichnis bottlepy wechseln

wget https://github.com/defnull/bottle/raw/master/bottle.py

# bottle.py herunterladen

cat <<__EOF__ > ./index.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from bottle import route, run, debug

@route('/')
def hallo():
    return 'Hallo Welt!'

debug(True)
run(reloader=True, host='127.0.0.1', port=8787)
__EOF__

# Python-Skript mit bottle.py erstellen, im Verzeichnis \~/bin/bottlepy

Daemon erstellen

Was es mit dem Daemon auf sich hat und wie man einen erstellt wird im Wiki von Uberspace genaustens erklärt.

test -d ~/service || uberspace-setup-svscan

mkdir ~/etc/run-my-daemon
cat <<__EOF__ > ~/etc/run-my-daemon/run
#!/bin/sh
cd ~/bin/bottlepy 
/usr/bin/env python ~/bin/bottlepy/index.py
__EOF__
chmod +x ~/etc/run-my-daemon/run
mkdir ~/etc/run-my-daemon/log
cat <<__EOF__ > ~/etc/run-my-daemon/log/run
#!/bin/sh
exec multilog t ./main
__EOF__
chmod +x ~/etc/run-my-daemon/log/run
ln -s ~/etc/run-my-daemon ~/service/my-daemon

.htaccess konfigurieren

Am Ende wird die .htaccess-Datei für den Apache-Webserver im Verzeichnis \~/html so konfiguriert, dass die an den Webserver gerichteten Anfragen an den lokalen Port 8787 weitergeleitet werden, also an den laufenden Webserver der mit dem index.py-Skript und bottle.py gestartet wurde.

cat <<__EOF__ > ~/html/.htaccess
RewriteEngine On
RewriteRule (.*) http://127.0.0.1:8787/$1 [P]
__EOF__

Nun sollte alles funktionieren und bei einer Anfrage an den Webserver (http://www.beispieldomain.de/) wird man nun mit einem Hallo Welt! begrüßt.

[Artikel steht unter der Lizenz: http://creativecommons.org/licenses/by/3.0/
(by datenpaul.de)]

Comments


There are no comments yet.

Add a Comment

You can use the Markdown syntax to format your comment.

Comment Atom Feed

© heiko. Built using Pelican. Theme by Giulio Fidente on github. .