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\" />" IndexStyleSheet "/~oj14ozun/listing.css" 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 MDN „Introduction 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:
- Brutalist Web Design
- Die motherf***ing-tetralogie (der Name ist vulgär, die Punkte aber Valide):
- Web Design in 4 minutes (empfehlenswert!)
- Web Development Manifesto
- Sammlungen kleiner Webseiten:
- 1kB Club (Seiten unter einem Kilobyte)
- 10kb Club (Seiten unter 10 Kilobyte)
- 250kb Club (Seiten unter 250 Kilobyte)
- 512kB Club (Seiten unter 512 Kilobyte)
- 1MB Club (Seiten unter einem Megabyte)
- Weitere Shared-Hosting Seiten:
- Neocities
- Districts auf Neocities
- Tilde Town (siehe auch Tildeverse)
- SDF
- Geocities Archiv
- Codeberg Pages
- Neocities
- Web Hosts (nicht „shared“, kostenpflichtig):
- Website Carbon Calculator, falls man sich dafür interessiert
- Wiby, eine Suchmachine für einfache Seiten (siehe auch Alexandria und Marginalia)
- Google Search Is Dying
- Ressourcen vom W3C (World-Wide-Web Consortium, zuständig für Web
Standards)
- W3C HTML Validator
- W3C Anleitung zu Web Design
- Living HTML Specification (nicht ganz vom W3C, siehe)
- W3C Core Style Samplern
- A simple guide to HTML
<head>
elements - The leanternet principles
- HTML-Einführung (1996)
- Building a resilient frontend using progressive enhancement
- HTML is for people
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).
Bei Interesse, kann man auch dem CIP Webring beitreten!