Highlights
Three substantial features following the v1.13.1 UI refresh.
1. Container detail page (/container/<name>)
The stub link from v1.13.1 now opens a full per-container view with four tabs:
| Tab | What's in it |
|---|---|
| Overview | Image, size, created/started timestamps, status badge, compose project/service, configured update window, all per-container badges in one place |
| History | Update history filtered to this single container (last 50 entries) |
| Logs | docker logs for this specific container, with configurable line count
|
| Settings | Per-container toggles (auto-update, ⚠ major-confirm, pin) plus the per-container update-window editor (HH:MM range + weekdays) |
Container names on the Status page link directly here. Tab state persists via localStorage. URL is stable so bookmarks and external links work.
2. Theme toggle 🌙 / ☀️
Sun/moon button in the header — flips between dark and light. On first visit the choice respects your OS prefers-color-scheme; after that, your preference is remembered in localStorage. The theme is applied before paint via a tiny inline script, so there's no dark-to-light flash on page load.
Light theme uses GitHub-inspired tokens. Every existing component picks it up because everything goes through CSS Custom Properties — there are no per-component overrides.
3. Weekly summary report
New env vars:
WEEKLY_REPORT_ENABLED=true
WEEKLY_REPORT_WEEKDAY=0 # 0=Mon..6=Sun, default Monday
WEEKLY_REPORT_HOUR=9 # 0-23, default 09:00Once a week, Docksentry sends a digest to all configured channels:
- Telegram: Markdown-formatted text
- Discord: rich embed with fields and color
- Generic webhook: JSON event
weekly_reportwith full stats payload
Report contents:
- Successful / failed / rolled-back updates over the last 7 days
- Current disk usage (% + free GB)
- Top 5 most-updated containers
Idempotent — a state file (/data/weekly_report_state.json) records the last send date, so a scheduler restart at the wrong moment can't trigger a duplicate. Editable via Web UI under Settings → Notifications.
Internal
ThreadingHTTPServerinstead ofHTTPServer— a slow request (e.g. the/api/cleanupbackground task) could previously deadlock the Web UI for everyone else. The threading variant handles each connection in its own thread.- New module
weekly_report.py(~150 lines, pure aggregation + format functions, easy to test). ContainerStoreexposesget_update_window(name)+is_ask_before_major(name)for the detail page.
i18n
43 new keys × 16 language files. EN + DE translated; other languages get the English fallback for the new keys.
Upgrade
docker pull amayer1983/docksentry:latest
docker compose up -dNo configuration changes required. Defaults preserve previous behaviour.