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.