Backfill progress
“Run now” processes the whole library for all enabled presets and ignores the maintenance window. Progress refreshes every 3 seconds.
{{ status?.enabled ? 'enabled' : 'disabled' }} · {{ status?.run?.paused ? 'paused (window closed)' : status?.inWindow ? 'inside maintenance window' : 'outside maintenance window' }} · next window {{ status?.nextWindowHuman ?? '—' }}
Storage
| size | files | |
|---|---|---|
| Preview assets | {{ disk.previews.bytesHuman }} | {{ disk.previews.count }} |
| Original assets | {{ disk.originals.bytesHuman }} | {{ disk.originals.count }} |
| Total | {{ disk.total.bytesHuman }} | {{ disk.total.count }} |
Loading…
Preview assets are the generated transforms (<id>__<hash>.avif|webp). Originals are the uploaded files.
Configuration
Presets
System presets are always generated with their built-in sizes (64 / 300 / 800 px, cover/contain). Custom presets from Settings → File Storage are added automatically; “Run now” also generates them for existing images.
| key | format | generated formats | source |
|---|---|---|---|
| {{ preset.key }} | {{ preset.format ?? 'original' }} | {{ preset.effectiveFormats.map((f) => f ?? 'original').join(', ') }} | {{ preset.system ? 'system' : 'custom' }} |
Diagnostics
“Resolve plan” predicts the exact cache filename without writing anything — use it to verify a custom preset maps to the file the browser will request.
{{ JSON.stringify(plan, null, 2) }}
Recent operations
| time | file | key | format | ok | duration | error |
|---|---|---|---|---|---|---|
| {{ op.tsHuman }} | {{ op.fileId.slice(0, 8) }} | {{ op.key }} | {{ op.format ?? 'original' }} | {{ op.ok ? '✓' : '✗' }} | {{ op.msHuman }} | {{ op.error ?? '' }} |
API reference
Base path /image-previews. Every endpoint requires an admin session or an
admin token: -H "Authorization: Bearer <token>".
{{ endpoint.method }} {{ endpoint.path }} — {{ endpoint.summary }}
{{ endpoint.description }}
{{ endpoint.example }}