diff --git a/README.md b/README.md index c804fb5..6a47bcc 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,7 @@ Same settings as IIS, just as environment variables in `docker-compose.yml` (nes ```yaml environment: - DataDirectory=/data + - TimeZone=UTC - Admin__Username=admin - Admin__Password=ScratchingPost2026! - MaxUploadSizeMB=20 @@ -162,7 +163,11 @@ Any Meow can be given an **Expires** date/time in its editor (under **Scheduling - It stays fully intact in **Meows** (with a red **Expired** badge) so it can be re-used or have its expiry pushed back later - Nothing is deleted — expiry only affects playback, not the stored slide -Leave it blank for a Meow that should run indefinitely. This is checked using the server's local clock, so make sure the server's time zone is set correctly. +Leave it blank for a Meow that should run indefinitely. + +**Time zone:** expiry is checked against the `TimeZone` setting, not the raw OS clock: +- **IIS** — `appsettings.json` ships with `"TimeZone": ""`, which falls back to the Windows Server's own local time zone (the original behaviour — no change needed on upgrade). +- **Docker** — `docker-compose.yml` sets `TimeZone=UTC` by default, since containers are otherwise timezone-ambiguous. Override it to an IANA id (e.g. `Australia/Melbourne`) if you'd rather enter expiry times in local time than UTC; the image includes `tzdata` so real zone names resolve correctly. ## Display Controls @@ -197,6 +202,7 @@ ScratchingPost/ │ ├── DisplayController # Device display + playlist API │ └── ApiController # Image upload, ICS parsing ├── Data/ # EF Core DbContext + seed data +├── Infrastructure/ # Clock (time-zone-aware "now" for Meow expiry) ├── Models/ # Slide, Device, DeviceSlide ├── Routing/ # DeviceSlugConstraint ├── Views/ # Razor views (Admin, Slides, Devices, Display) @@ -214,5 +220,6 @@ ScratchingPost/ ## Version History +- **v1.1.1** — Meow expiry now checked against a configurable `TimeZone` setting instead of the raw OS clock: IIS keeps its existing local-time behaviour by default, Docker defaults to UTC (overridable to any IANA zone; the image ships with `tzdata`) - **v1.1.0** — Docker deployment (`Dockerfile` + `docker-compose.yml`, configurable data directory, volume-backed DB/uploads), Meow expiration (`ExpiresAt` field, automatic playback filtering, auto-migrating column for existing databases) - **v1.0.0** — Initial release: WYSIWYG slides, embed, ICS calendar, device playlists, drag-and-drop ordering, live polling, IIS-ready deployment