Erste Schritte
Aktualisieren
Entpacke ein Archiv nie über eine laufende Installation. Entpacken fügt hinzu und überschreibt, es löscht nicht: Ausgemusterte Dateien blieben liegen und würden weiter geladen,
storage/undbootstrap/cache/bekämen die Rechte aus dem Archiv, und der alte Config-Cache überlebte.
Paket in der Oberfläche bereitstellen
Einstellungen → Systemdaten zeigt die installierte Fassung und, sofern die Prüfung
eingeschaltet ist, ob es eine neuere gibt. Der Knopf Paket bereitstellen lädt das
Release-Archiv, hält es gegen die veröffentlichte SHA256-Prüfsumme und entpackt es nach
storage/app/private/updates/. Eingespielt wird dabei nichts — der Austausch bleibt
ein Befehl auf der Kommandozeile.
Danach steht dieser Befehl auf der Seite, mit dem Pfad dieser Installation schon eingesetzt:
sh storage/app/private/updates/<fassung>/update.sh /pfad/zu/deiner/installation --dry-run
sh storage/app/private/updates/<fassung>/update.sh /pfad/zu/deiner/installation
Es ist dasselbe update.sh wie unten, nur aus einem bereits entpackten Paket.
Ist die Versionsprüfung abgeschaltet, erscheint der Knopf nicht — dann führen die folgenden Wege zum Ziel. Schalter und Vorgabewert: Systemeinstellungen.
Der Weg: Setup-Skript
Derselbe Aufruf wie bei der Installation. Das Skript erkennt die vorhandene Installation
und übergibt an das update.sh aus dem neu geladenen Paket:
curl -fLO https://gitlab.com/mankeldor/shortlink/-/raw/main/shortlink-setup.sh
sh shortlink-setup.sh /pfad/zu/deiner/installation --dry-run
sh shortlink-setup.sh /pfad/zu/deiner/installation
Hier läuft das Skript vollständig durch — anders als bei der
Erstinstallation, wo es vor der Einrichtung endet. Die .env steht
bereits, es sind keine Passwörter abzufragen und nichts nachzuholen.
Mit einem vorhandenen Paket: update.sh
tar -xzf shortlink-v5.0.2.tar.gz
cd shortlink-v5.0.2
sh update.sh /pfad/zu/deiner/installation --dry-run
sh update.sh /pfad/zu/deiner/installation
Was es tut, in dieser Reihenfolge:
- Prüft, dass das Ziel eine Shortlink-Installation ist (
artisan,composer.json,app/Support/Installer.php,.env). - Sichert Datenbank,
.envund Programmstand nach../shortlink-backup-<zeitstempel>/. Scheitert die Sicherung, bricht es ab, bevor etwas angefasst wurde.--skip-backupüberstimmt das,--yesüberspringt die Rückfragen. - Schaltet den Wartungsmodus ein.
- Ersetzt die Dateien und entfernt die, die es in der neuen Fassung nicht mehr gibt —
mit
rsync, wenn vorhanden, sonst mit einem Kopiervorgang und anschließendem Aufräumen anhand der Dateiliste des Pakets. Unangetastet bleiben.env,storage/,public/storage,bootstrap/cache/undvendor/. composer install,shortlink:check,migrate --force, Caches, Wartungsmodus aus.
Scheitert etwas nach Schritt 4, bleibt die Installation im Wartungsmodus. Das Skript schreibt dann hin, wie du zurückkommst.
Von Hand
mysqldump --single-transaction --quick -u <user> -p <db> | gzip > db-$(date +%F).sql.gz
cp .env ~/env-$(date +%F).bak
cd /pfad/zu/deiner/installation
php artisan down --retry=60
rsync --archive --delete \
--exclude='/.env' --exclude='/storage/' \
--exclude='/public/storage' --exclude='/bootstrap/cache/' --exclude='/vendor/' \
~/shortlink-v5.0.2/ ./
composer install --no-dev --optimize-autoloader
php artisan shortlink:check
php artisan migrate --force
php artisan config:cache && php artisan route:cache && php artisan view:cache
php artisan up
Migrationen laufen vorwärts. Es gibt keinen Weg zurück außer der Sicherung aus der ersten Zeile.
Danach
Die .env bleibt unangetastet. Neue Schlüssel stehen in der mitgelieferten .env.example:
diff <(grep -oE '^[A-Z0-9_]+' .env | sort -u) \
<(grep -oE '^[A-Z0-9_]+' .env.example | sort -u)
Fehlt ein Schlüssel in deiner .env, gilt der Vorgabewert aus config/.
Quelle dieser Seite:
docs/aktualisieren.md
im Repository. Sie wird beim Bauen daraus erzeugt — Änderungen gehören in die
Markdown-Datei, nicht in diese Seite.