2026-06-18 19:17:51 +00:00
2026-06-18 19:17:51 +00:00
2026-06-18 17:09:07 +00:00
2026-01-12 17:14:01 +01:00
2026-03-28 09:10:40 +01:00
2026-06-18 19:17:51 +00:00

lehnert.cloud/files

File server infrastructure hosted on files.lehnert.cloud.

Komponenten

  • webserver (Apache) stellt das öffentliche Dateiverzeichnis bereit
  • nextjs enthält die Next.js-App für Verwaltung und Authentifizierung
  • traefik ü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:

  1. .env anpassen (SERVICE_FQDN, LETSENCRYPT_EMAIL, DATA_DIR, UPLOAD_TTL_SECONDS, MANAGEMENT_ADMIN_HASH, optional UPLOAD_MAX_BYTES Standard: 25 GiB, und COOKIE_SECURE)
  2. Optional PUBLIC_BASE_URL setzen, falls absolute Links in E-Mails einen festen Host verwenden sollen
  3. 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>)
  4. Stack starten: docker compose up --build
  5. Als Admin anmelden und Benutzer über die UI anlegen
Description
File server infrastructure hosted on files.lehnert.cloud
Readme 643 KiB
Languages
JavaScript 90.2%
CSS 5.2%
Shell 4%
Dockerfile 0.6%