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:installDu bist ohnehin per SSH da. Der einzige Weg, der sich automatisieren lässt ( --no-interaction)Browser Domain auf /pfad/zur/installation/publiczeigen lassen, dann/installaufrufenDie 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
.envschon 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.