Erste Schritte

Installation

Stehen Datenbank und Domain bereit, dauert es eine Viertelstunde.

1. Dateien auf den Server bringen

Auf dem Zielserver:

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

Das Skript holt das neueste Release, prüft die Prüfsumme, entpackt es, installiert die PHP-Abhängigkeiten und führt fileshare:check aus.

Sieh dir das Skript an, bevor du es ausführst.

Option Wirkung
--dry-run Zeigt nur, was passieren würde
--version vX.Y.Z Eine bestimmte Fassung statt der neuesten
--token-file <datei> Zugangs-Token für ein nicht öffentliches Projekt
--yes Ohne Rückfragen

sh fileshare-setup.sh --help listet alle.

Das Skript sieht sich das Zielverzeichnis an: leer heißt Erstinstallation, eine erkennbare Fileshare-Installation heißt Aktualisierung, alles andere heißt Abbruch ohne Download und ohne Überschreiben.

Andere Wege: Release-Paket von Hand · Repository klonen · GitLab CI/CD

Hier endet das Skript

Es richtet nicht ein. Die Dateien liegen, die Abhängigkeiten sind installiert — die .env, die Datenbank und der erste Administrator fehlen noch. Datenbank- und Administrator-Passwort stünden in einer Skript-Befehlszeile in der Prozessliste und in der Shell-Historie.

Für die Einrichtung gibt es zwei gleichwertige Wege, beide in Schritt 3:

Weg Aufruf Wann
Terminal cd /pfad/zur/installation && php artisan fileshare:install Du bist ohnehin per SSH da. Der einzige Weg, der sich automatisieren lässt (--no-interaction)
Browser Domain auf /pfad/zur/installation/public zeigen lassen, dann /install aufrufen Die Domain steht bereits. Vier Schritte mit Erklärungen an jedem Feld

Beide stellen dieselben Fragen und tun dasselbe.

Bei einer Aktualisierung entfällt das: Dort läuft das Skript vollständig durch, weil die .env schon steht und keine Geheimnisse abzufragen sind.

2. Verzeichnisse und Rechte prüfen

Das Setup-Skript hat diese Prüfung schon ausgeführt. Auf den anderen Wegen und um einen Befund zu beheben:

php artisan fileshare:check

Fehlen Verzeichnisse — der Regelfall nach einem rsync, das storage/ ausspart:

mkdir -p storage/framework/views storage/framework/cache/data \
         storage/framework/sessions storage/logs \
         storage/app/private storage/app/public bootstrap/cache

Fehlt das Schreibrecht — <web-user> ist der Nutzer, unter dem PHP läuft (www-data, nginx, bei Shared Hosting meist dein eigener):

chown -R <web-user>:<web-group> storage bootstrap/cache
chmod -R u+rwX storage bootstrap/cache

Der Befehl nennt in beiden Fällen die betroffenen Pfade und den passenden Aufruf.

3. Einrichten

Weg A: Kommandozeile

cd /pfad/zur/installation
php artisan fileshare:install

Prüft die Voraussetzungen, fragt Datenbank, Adresse und ersten Administrator ab und richtet ein. Werte aus einer vorhandenen .env sind vorbelegt; ein zweiter Lauf ist damit ein Bestätigen statt einer Neueingabe. Die Kommandozeile ist englisch.

Ohne Rückfragen, für automatisiertes Deployment:

php artisan fileshare:install --no-interaction \
    --db-database=fileshare --db-username=fileshare --db-password='…' \
    --url=https://example.org \
    --admin-name='Vorname Nachname' --admin-email=admin@example.org --admin-password='…' \
    --encryption-key --update-check=false
Option Wirkung
--db-host=…, --db-port=… Nötig, sobald die Datenbank nicht auf 127.0.0.1:3306 liegt
--encryption-key Erzeugt FILESHARE_ENCRYPTION_KEY. Ohne ihn steht die Verschlüsselung gespeicherter Dateien nicht zur Verfügung
--update-check=true|false Einmal täglich nach einem neueren Release sehen und einen Hinweis in den Systemdaten zeigen. Aktualisiert nichts. Vorgabe true. Baut eine Verbindung nach außen auf — in abgeschotteten Netzen false
--update-source=… Woher die Release-Liste kommt. Nur nötig, wenn du eine eigene Fassung pflegst

Beides landet als FILESHARE_UPDATE_CHECK und FILESHARE_UPDATE_SOURCE in der .env und ist dort änderbar.

Weg B: Browser

Lass die Domain auf /pfad/zur/installation/public zeigen, rufe https://example.org/install auf und folge den vier Schritten.

Im Schritt „Datenbank" steht neben den Zugangsdaten die vorbelegte Auswahl „Auf neue Fassungen prüfen". Die Quelle der Release-Liste lässt sich nur in der .env ändern (FILESHARE_UPDATE_SOURCE).

Diese Adresse ist ohne Anmeldung erreichbar, solange kein Administrator existiert. Sobald der erste angelegt ist, antwortet sie mit 404. Lass eine frisch hochgeladene Installation nicht tagelang offen stehen.

4. Cron einrichten

Zwei Einträge, beide nötig: Cron einrichten.

5. Nach der Installation

Neun Schritte in fester Reihenfolge, beginnend mit dem Mail-Versand: Nach der Installation.

Wenn etwas nicht läuft

Symptom Ursache
/install antwortet mit 404 Es existiert bereits ein Administrator
Weiße Seite, keine Gestaltung public/build/ fehlt. Assets bauen und hochladen
500er, failed to open stream: Permission denied Ein Verzeichnis unter storage/ fehlt oder ist nicht beschreibbar. php artisan fileshare:check nennt es
Logo wird nicht angezeigt public/storage fehlt: php artisan storage:link, oder von Hand verknüpfen
Zugangsdaten stimmen, werden aber abgewiesen Ein # im Passwort in der .env. Wert in doppelte Anführungszeichen setzen
Änderungen wirken nicht php artisan config:clear
.env ist für alle lesbar chmod 640 .env
composer install bricht mit Datenbankfehler ab Fassung älter als 1.1

Ausführlich: Störungssuche.

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