Erste Schritte

Systemanforderungen

Pflicht

Bereich Anforderung
PHP 8.3 oder neuer
PHP-Erweiterungen openssl, pdo, mbstring, fileinfo, json, zip, gd, intl, sodium
Datenbank MySQL 8 oder MariaDB 10.6 und neuer. Datenbank und Benutzer mit vollen Rechten legst du selbst an — Fileshare tut es nicht. SQLite und PostgreSQL laufen technisch, sind aber nicht geprüft
Webserver nginx oder Apache mit PHP-FPM, Document-Root auf public/
TLS Zertifikat für die Domain
Composer 2.x
Zugang SSH und Zugriff auf die Zeitsteuerung (Cron)
Schreibrechte storage/ und bootstrap/cache/ für den PHP-Prozess beschreibbar
Speicherplatz Summe der gleichzeitig gültigen Dateien plus Reserve, siehe unten

Nicht nötig

Node.js / npm Nur beim Weg über das Repository, und dort einmalig auf dem eigenen Rechner. Das Release-Paket bringt CSS und JavaScript fertig gebaut mit

Dringend empfohlen

  • HTTPS. Ohne TLS gehen Passwörter, Sitzungs-Cookies und Dateien im Klartext über die Leitung, und „In die Zwischenablage kopieren" funktioniert im Browser nicht.
  • Mail-Versand. Ohne ihn lassen sich keine Konten einrichten, keine Passwörter zurücksetzen und keine Adressen ändern.
  • Zwei Cron-Einträge. Siehe Cron einrichten. Der erste ersetzt den Queue-Worker: Prüfsummen und das Ver- und Entschlüsseln laufen im Hintergrund, und ohne ihn passiert das im Web-Request — bei großen Dateien läuft der in ein Zeitlimit.

Upload-Grenzen des Servers

Die Obergrenze im Programm (FILESHARE_MAX_UPLOAD_KB) hilft nichts, wenn PHP kleinere Pakete annimmt. Für den Weg ohne JavaScript gilt die PHP-Grenze pro Anfrage:

; php.ini
upload_max_filesize = 512M
post_max_size       = 512M
max_execution_time  = 300
memory_limit        = 256M

Mit JavaScript wird in Stücken von 5 MiB übertragen; dort spielt upload_max_filesize kaum eine Rolle. Zusätzlich braucht der Webserver ein passendes Limit:

# nginx
client_max_body_size 512M;
# Apache
LimitRequestBody 536870912

Passen Programm- und Server-Grenze nicht zusammen, steht der Hinweis oben in Einstellungen → Systemdaten.

Speicherplatz abschätzen

Anzahl gleichzeitig gültiger Dateien × durchschnittliche Größe, plus Reserve für abgebrochene Uploads (Chunk-Reste, werden aufgeräumt) und Datenbank-Backups. Der freie Platz steht in Einstellungen → Systemdaten.

Prüfen

php artisan fileshare:check

Prüft PHP-Version, Erweiterungen, ob die Betriebsverzeichnisse vorhanden und beschreibbar sind und ob die .env nicht für alle lesbar ist. Ändert nichts, braucht weder .env noch Datenbank — läuft also schon vor der Installation.

Beschreibbarkeit wird mit einem echten Schreibversuch geprüft, nicht über die Rechte-Bits: Bei ACLs, NFS-Freigaben oder SELinux sagen die etwas anderes als die Wirklichkeit.

Nach der Installation steht eine erweiterte Prüfung unter Einstellungen → Systemdaten → Ausführliche Diagnose.

Geteilte Datenbank

Die Datenbank muss nicht leer sein. Teilst du sie mit anderen Anwendungen, vergib bei der Installation ein Tabellen-Präfix.

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