Two fixes and a documentation sample.
- Dashboard: the storage card respects a stated capacity (#454). The storage page used the capacity-aware path from #415 but the dashboard card still ran plain
df, so a WebDAV or similar mount showed the cache disk's figures. The card now shows the stated capacity, with used being what BBS has written there; a mount that can't report its size and has no stated capacity says "Quota unavailable" instead of showing the wrong disk. - Schedules: one schedule per plan, enforced (#457). A duplicate schedule row left behind by an old bug showed a plan twice on the Schedules page, though the scheduler only ran it once. The migration removes the extra rows (keeping the oldest) and adds a constraint so it can't happen again.
.env.exampleanddocker-compose.ymlcarry a commentedTRUSTED_PROXIESsample for the reverse-proxy support added in 2.93.6 (#455 — thanks @kosli).