UP | HOME

CIP-Seiten: Was, Wie und Wieso?

Inhaltsverzeichnis

In diesem Text will ich erklären wie jeder mit einem CIP Konto eine Webseite (wie diese) erstellen kann, und wieso man das machen will. Ich nenne diese „CIP-Seiten“.

„Disclaimer“: Ich bin kein CIP Admin und habe nur selbst eine kleine Seite. Alles was ich sage, sage ich nur als Student ohne jegliche Authoritiät.

1. Eine CIP-Seite Erstellen

Zum minimalen Aufsetzen einer Website braucht man nur zwei Befehle auszuführen:

mkdir ~/.www/
setfacl -m u:www:rx ~ ~/.www

Der erste (mkdir) erstellt im Homeverzeichniss das Unterverzeichnis .www. In diesem werden alle Dateien aufbewahrt die auf deiner Webseite gehostet werden. Vermerke, dass dieses alles nur „statische“ Inhalte sind, d.h. nicht vom Anrufer abhängen können.

Der zweite Befehl (setfacl, zu lesen als „Set File ACL (Access-control list)“) erlaubt es dem www Nutzer, d.h. dem Web Server verantwortlich für wwwcip.cs.fau.de, auf deine Dateien und nur diese Dateien zuzugreifen. Die spezifische Implementierung des Web Servers ist Apache HTTPD in Kombination mit dem userdir Modul. Dieses leitet alle Pfad-Aufrufe beginnend mit ~USERNAME an das ~$USERNAME/.www Verzeichnis weiter.

Erstellt man nun in ~/.www eine Datei, sollte diese im directory listing erscheinen. Eine besondere Datei die in diesem Verzeichnis platzieren kann nennt sich .htaccess, da diese das Verhalten des Web Servers Konfigurieren kann.

Hier eine Variation eines Fragments meiner ~/.www/.htaccess Datei:

Header set X-Robots-Tag noindex
IndexHeadInsert "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />"
ReadmeName readme.html
IndexIgnore readme.html style.css nonpub *.png
AddDefaultCharset UTF-8
AddType text/plain .sh
AddType text/plain .mk
AddType text/plain Makefile
AddType application/pdf .pdf
AddDescription "Notizen, Mitschriften und Texte" notizen

Noch ein Tipp: Wenn man verhindern will, dass Dateien im Verzeichnis aufgezählt werden, kann man diesen einfach das „Execute“-Recht entziehen:

mkdir ~/.www/nonpub/
chmod 711 ~/.www/nonpub/

In meinem Fall habe ich unter ~/.www/nonpub Dateien gelagert von denen ich nur will, dass man darauf Zugriff hat wenn man den Namen hat (schwach vergleichbar zum Object-capability-Konzept).

2. Füllen einer CIP-Seite

Wie bereits erwähnt, sind CIP Seiten nur öffentlich gehostet Verzeichnisse. Wer keine Kenntnisse hat zu Web Entwickelung kann sich das MDNIntroduction to HTML“ durchstöbern.

2.1. HTML kann mehr als gut genug sein

Auch wenn manche meinen, dass eine Seite alt oder hässlich sei, ist es ein individuelles Audrucksmedium. Es ist interessant zu beobachten, dass am Ende handgeschriebene Webseiten schneller und leichter zu bedienen sind als 90% aller Kommerziellen Seiten (inklusive der offiziellen fau.de-Webseiten).

Das ist weil dieses das echte Internet hätte sein sollen, ohne Werbung, Tracker, Megabyte an Javascript und Schicht über Schicht von Abstraktionen die alle versuchen die Fehler der Vorgänger auszubessern.

2.2. Statische Generatoren

Ein anderer Ansatz ist es „statische webseite generatoren“ zu benutzen. Es handelt sich hierbei um Programme die meist nicht-HTML eingaben verarbeiten und diese zu konsistenten Webseiten übersetzen. Damit ist es auch möglich einfachere Dateiformate wie Markdown (bzw.) zu verwenden.

Von diesen gibt es viele – nur eine von vielen unvollständigen Listen kann man hier finden. Populäre Programme sind bspw. Hugo oder Jekyll, für die es viele Templates gibt. Auch interessant finde ich Hakyll, wo man eine Seite in Haskell „programmiert“, Haunt wo man das gleiche macht nur für Guile Scheme oder ssg was nur aus einem kleinem Shell Script besteht. Ich selbst benutze oft org-mode für Emacs für diese Seite.

Man sollte aber auch darauf achten, dass viele dieser Programme darauf ausgelegt sind Blogs zu schreiben, was nicht unbedingt das ist was man machen will.

Allgemein kann man aber auch empfehlen den Versuch zu wagen selbst ein Generator zu schreiben. Es ist eigentlich ganz einfach und zugleich eine gute Übung um Systemkentnisse zu Trainieren oder eine neue Programmiersprache zu lernen.

2.3. Weitere Verweise

Hier noch ein paar Links zu diesen Themen:

3. Themen für eine CIP-Seite

Man kann sich nun Fragen, was will ich mit so einer Seite anfangen? Was habe ich schon zu erzählen? Hier sind ein paar Vorschläge die zum Uni-Kontext passen:

  • Veröffentlichen von digitalen Vorlesungsnotizen
  • Öffentliche Rezensionen/Empfehlungen zu Vorlesungen
  • Hosten von Übungs-Webseiten als Tutor
  • File-Dump für kleine Skripte oder Programme die man teilen will
  • Sammlungen von interessanten Links
  • Teilen von eigens-erstellten Klausurlösungen
  • Veröffentlichen von Artikeln zu Hochschulpolitik
  • Berichte für eigene Projekte schreiben.

Am Ende ist es nicht so wichtig was man macht, oder wie ernst man dabei ist. Es kann auch einfach als eine Möglichkeit angesehen werden Schreiben zu üben oder Spaß beim Hacken zu haben, ganz egal ob es irgendjemand, irgendwann lesen wird oder nicht.

Wenn man Inspiration braucht, habe ich auch eine Liste an allen mir bekannten CIP-Seiten die ich gerne mit neugierigen Leuten teile – aber lieber nicht öffentlich zugänglich machen will.

Es gab früher eine Seite namens „Richtlinien zum Erstellen eigener HTML-Seiten“.


Ich hoffe dieser Artikel konnte helfen oder zumindest Interesse für das Thema regen. Bei beliebigen Fragen oder Ideen schickt mir gerne eine Nachricht (IRC oder Email).

Datum: 2022-09-28 Wed 21:25

Autor: Philip Kaludercic

Email: philip.kaludercic@fau.de

Created: 2024-03-15 Fri 10:53

Emacs 30.0.50 (Org mode 9.6.15)

Validate