lehnert.cloud/files
File server infrastructure hosted on files.lehnert.cloud.
Komponenten
webserver(Apache) stellt das öffentliche Dateiverzeichnis bereitnextjsenthält die Next.js-App für Verwaltung und Authentifizierungtraefikübernimmt TLS und Routing
Management-UI
- Benutzer-Dashboard:
/manage/login - Admin-Dashboard:
/manage/admin - Datei-Downloads:
/_share/<datei> - Upload-Anfragen:
/_request/<id>
Upload-Anfragen akzeptieren Browser-Multipart und rohe PUT-Uploads auf /_request/<id>/upload.
Beispiel mit curl:
curl -T ./datei.pdf -H 'X-File-Name: datei.pdf' 'https://files.example.tld/_request/<id>/upload'
Admins können scoped Upload-Tokens unter /manage/admin/tokens erstellen. Diese Tokens erlauben
curl -T-Uploads in einen festen Dateimanager-Ordner. Pfade unterhalb des Tokens dürfen
Unterordner enthalten; .. und .php-Zieldateien werden abgelehnt.
curl -T ./file.txt -H 'Authorization: Bearer <token>' 'https://files.example.tld/_token-upload/subdir/file.txt'
Lokale Initialisierung
Dev-Vorschau ohne lokale Node/npm-Installation:
./scripts/dev
Admin-Benutzer: john.doe / 123456. Adminbereich: /manage/admin, Passwort 123456.
Dev-Container laufen mit --rm; Ctrl-C/SIGTERM entfernen den laufenden Container per rm -f.
./initialize.sh
Danach:
.envanpassen (SERVICE_FQDN,LETSENCRYPT_EMAIL,DATA_DIR,UPLOAD_TTL_SECONDS,MANAGEMENT_ADMIN_HASH, optionalUPLOAD_MAX_BYTESStandard: 25 GiB, undCOOKIE_SECURE)- Optional
PUBLIC_BASE_URLsetzen, falls absolute Links in E-Mails einen festen Host verwenden sollen - Für Upload-Anfragen mit E-Mail-Benachrichtigung SMTP setzen (
SMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASS,SMTP_MAIL,SMTP_NAME; Absender:SMTP_NAME <SMTP_MAIL>) - Stack starten:
docker compose up --build - Als Admin anmelden und Benutzer über die UI anlegen
Description
Languages
JavaScript
90.2%
CSS
5.2%
Shell
4%
Dockerfile
0.6%