Was 3 tiers (phone/tablet/desktop at 640/1280/1920px). Renamed the 1920px tier to laptop and added a new desktop tier at 2560px for 5K-iMac-class screens, matching the launcher's own top breakpoint. docs/photo-pipeline.md writes down the whole path from upload (Tailscale or SMB) through resizing to the pictures/<motiv>/<device>/ naming convention, since it wasn't documented anywhere before.
2.5 KiB
Foto-Pipeline
Wie Fotos von einem Gerät bis zu einer öffentlichen, für jede
Bildschirmgröße passenden URL unter data.0ff.space kommen.
1. Upload nach blunix
Zwei Wege, beide landen als rohe Originaldateien (HEIC/JPEG, volle Kameraauflösung) auf blunix:
- Tailscale (Taildrop): vom Absender-Gerät aus per Tailscale-Share
verschickt, auf blunix abgeholt mit
tailscale file get --verbose <zielordner>— leert die Ablage (Dateien verschwinden aus der Warteschlange, sobald sie abgeholt wurden). - SMB: über die Samba-Freigabe aus
hosts/pinix/localServices/webdav.nix.
2. Verkleinern
scripts/resize-image.sh (ImageMagick, magick-Befehl):
scripts/resize-image.sh INPUT [BASENAME] [OUTPUT_ROOT]
Erzeugt aus einer Eingabedatei vier Größenstufen als WebP
(-auto-orient -strip -quality 82, jeweils nur verkleinert, nie
hochskaliert):
| Ordner | Suffix | Breite | Zielgerät |
|---|---|---|---|
phone |
_s |
640px | Handy |
tablet |
_m |
1280px | Tablet |
laptop |
_l |
1920px | Laptop / normaler Desktop |
desktop |
_xl |
2560px | 5K-iMac-Klasse (selbe Breite wie der oberste Breakpoint im Launcher, siehe launcher/style.css) |
BASENAME fehlt → Dateiname ohne Endung. OUTPUT_ROOT fehlt →
/var/www/data/external/pictures.
3. Ablage-Schema
Ein Ordner pro Motiv/Anlass unter pictures/, darin die vier
Geräte-Unterordner:
/var/www/data/external/pictures/<motiv>/phone/<name>_s.webp
/var/www/data/external/pictures/<motiv>/tablet/<name>_m.webp
/var/www/data/external/pictures/<motiv>/laptop/<name>_l.webp
/var/www/data/external/pictures/<motiv>/desktop/<name>_xl.webp
Beispiel (bestehend): pictures/nog26/{phone,tablet,laptop,desktop}/….
Öffentlich erreichbar unter
https://data.0ff.space/pictures/<motiv>/<gerät>/<name>_<suffix>.webp
(Traefik-Route data, siehe hosts/blunix/localServices/traefik/routes-external.nix,
Server läuft lokal auf blunix per hosts/blunix/localServices/fileserver-external.nix).
Namensschema: kein striktes globales Schema, aber durchgängig kurze,
beschreibende Kleinbuchstaben-Slugs ohne Leerzeichen (cyber, wolfen1,
apolda, …). Nummern nur, wenn mehrere Bilder zum selben Motiv gehören
(wolfen1/wolfen2) — <motiv> und <name> folgen demselben Muster.
Ältere Bilder direkt in pictures/ (ohne Motiv-Unterordner, ohne
Größenstufen) sind Fotos von vor dieser Pipeline und keine Vorlage für
neue Uploads.