Ein Kurzlink-Dienst zum Selbsthosten. Reines PHP – keine Datenbank, keine Abhängigkeiten, kein Build-Schritt. Kopieren, konfigurieren, läuft.
Der Unterschied
Kein Versprechen, sondern der vollständige Datensatz, den flatlink pro Kurzlink speichert:
Ein einzelner Besucher lässt sich daraus nicht rekonstruieren – weil nie ein einzelner Besucher gespeichert wird. Der Weiterleitungspfad startet nicht einmal eine Sitzung, solange kein Passwortschutz auf dem Link liegt.
Und weil das als Behauptung wenig wert wäre, liegt der Code offen: Die Zählung steht
in inc/store.php
in etwa zehn Zeilen. Nachprüfen ausdrücklich erwünscht.
Funktionsumfang
Eigener Encoder nach ISO/IEC 18004. Formen, Farben, Logo in der Mitte, Rahmen mit freiem Text – als SVG, PNG und druckfertiges PDF.
Der gedruckte Code bleibt gültig, auch wenn die verlinkte Seite umzieht. Genau dafür lohnt sich ein Kurzlink auf Papier.
Statische Codes, deren Eingaben nirgends gespeichert werden – sie stecken im Code selbst und funktionieren unabhängig vom Dienst.
Keine Testphase, kein Scan-Limit, keine Zwischenseite. Das automatische Aufräumen ungenutzter Links ist standardmäßig aus.
Rate-Limits je IP – nur als Hash gespeichert –, Meldeformular, Sperrfunktion, optional Google Safe Browsing (standardmäßig aus).
Alles liegt als JSON unter data/, mit Sperren und atomarem
Schreiben. Ein Backup ist ein Kopiervorgang.
Für Organisationen
Für Hochschulen, Behörden und Unternehmen – beides optional und standardmäßig abgeschaltet.
Die Anmeldung übernimmt der Webserver (mod_shib und Verwandte),
flatlink liest nur, wen er authentifiziert hat. Fälschbare HTTP-Header werden
ohne konfigurierte Proxy-Allowlist verworfen.
Prüfung per Bind als der gefundene Nutzer, Eingaben escaped, leere Passwörter abgelehnt. Lokale Konten funktionieren parallel weiter.
Ein Link kann einer Gruppe gehören – dann verwaltet ihn das ganze Team. Der Aushang überlebt den Weggang der Kollegin, die ihn angelegt hat.
Wunsch-Namen, CSV-Import und Logo-Upload lassen sich einzeln freigeben – Verzeichnis-Gruppen können dabei nie neue Rechte erfinden.
Installation
Kein Composer, kein Build-Schritt, keine Datenbank. Vorausgesetzt wird PHP 8.1 und ein Webserver, der Pfade umschreiben kann.
Danach in den Webroot legen. Das Verzeichnis
data/ legt sich beim ersten Aufruf selbst an, das erste registrierte
Konto wird automatisch Administrator.
Herkunft
flatlink ist kein Nebenprojekt, sondern der Motor eines laufenden Dienstes: Unter 1337.kiwi läuft damit ein öffentlicher Kurzlink- und QR-Dienst. Was dort funktioniert, steht hier im Quelltext.
Marke und Marketing bleiben draußen. Wer flatlink installiert, bekommt kein 1337.kiwi-Imitat, sondern eine leere Instanz zum selbst Benennen und Einfärben.
| 1337.kiwi | flatlink | |
|---|---|---|
| Was es ist | die öffentliche Instanz | die Software dahinter |
| Aussehen | eigenes Design, Kiwi-Logo | neutrales Theme zum Überschreiben |
| Inhalte | Ratgeber, Rechtstexte, Tarife | nichts davon – nur das Werkzeug |
| Konten | Registrierung per E-Mail | zusätzlich LDAP, Shibboleth, Gruppen |
Fehlerberichte und Pull Requests sind willkommen – mit einer Bitte vorab: Die Abhängigkeitsfreiheit ist kein Zufall, sondern der Kern des Projekts. Ein Patch, der Composer, einen Build-Schritt oder eine Datenbank einführt, wird nicht übernommen, auch wenn er die Sache eleganter macht.