Shortlink betreiben

Von null auf eine laufende Installation. Alles Weitere steht in den Handbüchern — die sind ausführlich, und diese Seite ersetzt sie nicht.

Was du brauchst

Hosting SSH-Zugang, PHP 8.3 oder neuer, Composer, MySQL oder MariaDB, Apache oder nginx
Datenbank Eine Datenbank und ein Benutzer mit vollen Rechten darauf — beides legst du selbst an
Domain Auf das Verzeichnis public/ zeigend, mit TLS-Zertifikat
Cron Zugang zur Zeitsteuerung des Servers

Node und npm brauchst du nicht — das Paket bringt CSS und JavaScript fertig gebaut mit. Einen Queue-Worker auch nicht: Diese Anwendung hat keine Hintergrundarbeit.

In einer Viertelstunde eingerichtet

1. Dateien auf den Server.

curl -fLO https://gitlab.com/mankeldor/shortlink/-/raw/main/shortlink-setup.sh
sh shortlink-setup.sh /pfad/zur/installation

Lies das Skript, bevor du es ausführst — deshalb steht hier curl -fLO und kein curl … | sh. Ein Skript in die Shell zu pipen führt Code aus, den niemand gesehen hat.

2. Einrichten. Per Befehl:

php artisan shortlink:install

Oder im Browser unter /install. Gleiche Schritte, gleiche Logik — nimm den Weg, der zu dir passt.

3. Die zwei Cron-Einträge setzen. Siehe unten.

Ausführlich, mit Dateirechten und Fehlersuche: Installation.

Die zwei Cron-Einträge

Beide sind nötig, und sie tun Verschiedenes. Pfad anpassen:

0 3 * * * cd /pfad/zu/shortlink && php artisan shortlink:cleanup --force >> /dev/null 2>&1
15 * * * * cd /pfad/zu/shortlink && php artisan shortlink:check-targets >> /dev/null 2>&1

Ohne den ersten greift keine Aufbewahrungsfrist. Abgelaufene Links bleiben stehen, Klick- und Versandprotokolle werden nie gelöscht.

Ohne den zweiten wird kein Ziel je geprüft — auch nicht beim Anlegen. Das würde den Knopf bis zu fünf Sekunden an einem fremden Server hängen lassen, deshalb übernimmt ausschließlich dieser Lauf die Prüfung.

Beide Zeilen stehen nach der Installation auch unter Einstellungen → Systemdaten, mit dem Pfad dieser Installation und einem Knopf zum Kopieren. Dort steht ebenfalls, wann jeder Befehl zuletzt gelaufen ist.

Aktualisieren

Derselbe Aufruf wie bei der Installation:

sh shortlink-setup.sh /pfad/zur/installation

Das Skript erkennt eine vorhandene Installation und übergibt an das update.sh aus dem frisch geladenen Paket — kein Download von Hand, kein Entpacken, kein Nachdenken darüber, welches Skript das richtige ist.

Entpacke ein Archiv nie über eine laufende Installation. Entpacken fügt hinzu und überschreibt, es löscht nie: Ausgemusterte Dateien blieben liegen und würden weiter geladen.

Weiterlesen

Nach Aufgabe, nicht nach Dateiname:

  • Installation — der ganze Weg im Detail, Dateirechte, Fehlersuche
  • Betrieb — Konfiguration, Rollen, Sicherheit, Datenhaltung, Backup, Wartung
  • Barrierefreiheit — was geprüft wurde und was nicht
  • Release — Pipeline, Tags, Paketbau
  • Lizenz — wer was darf, kostenlos oder lizenzpflichtig
  • Änderungen — was sich zuletzt geändert hat

Für die Menschen, die täglich damit arbeiten, gibt es ein eigenes Benutzerhandbuch.

Quelle dieser Seite: site/content/docs.md im Repository. Sie wird beim Bauen daraus erzeugt — Änderungen gehören in die Markdown-Datei, nicht in diese Seite.