Eigene Webseiten
================
Lokal auf dem Node
------------------
Auf dem Freifunkrouter läuft ohnehin schon ein kleiner Webserver (``uhttpd``),
der verwendet werden kann um neben dem LuCI Webinterface auch eigene Inhalte per
HTTP zugänglich zu machen.
Seiten direkt über uhttpd ausliefern
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Es gibt die Möglichkeit direkt auf dem Node kleinere Seiten abzulegen, indem man
sie im Ordner /www unterbringt. Dies erfordert keine Änderung an der
Konfiguration des Nodes.
.. rubric:: Einfache statische Seite
*Beispiel:*
.. code-block:: html
Hallo Welt!
Den obigen Code als ``/www/hallowelt.html`` abspeichern und danach im Browser
unter der Adresse ``http:///hallowelt.html`` aufrufen.
.. rubric:: CGI-Scripte
Möchte man CGI-Scripte ausführen, dann muss man diese in ``/www/cgi-bin``
ablegen und ausführbar machen.
*Beispiel:*
.. code-block:: bash
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo '
Hallo Welt
Hallo Welt!
'
Den obigen Code als ``/www/cgi-bin/helloworld.cgi`` speichern und ausführbar
machen mit:
.. code-block:: bash
chmod +x /www/cgi-bin/helloworld.cgi
Dieses Testscript kann nun im Browser unter
``http:///cgi-bin/helloworld.cgi``
abgerufen werden.
Das selbe Script in Lua:
.. code-block:: lua
#!/usr/bin/lua
print("Content-type: text/html")
print("")
print ([[
Hello World
Hallo Welt!
]])
Verzeichnisinhalte
^^^^^^^^^^^^^^^^^^
In der Standardkonfiguration zeigt uhttpd auch Verzeichnisinhalte von
Verzeichnissen an, die keine index-Datei enthalten.
*Beispiel:*
.. code-block:: bash
mkdir /www/verzeichnis
echo "hallo" > /www/verzeichnis/hallo.txt
Öffnet man im Browser jetzt http:///verzeichnis, dann erhält man
folgende Ausgabe:
.. image:: ../images/directory-listing.jpg
Auf einem seperaten PC/Server
-----------------------------
Soll die Webseite von einem anderen PC bzw. Server ausgeliefert werden,
der per Netzwerk mit dem Node verbunden ist gibt es mehrere Möglichkeiten,
diese Inhalte im Freifunknetz verfügbar zu machen, siehe dazu:
:ref:`integrate_other_pcs`