The biggest change in this release is the new look and feel of the frontend, done by @kaburagisec. There are no radical changes, but they still make a big difference.
I urge you to browse around in the UI and see for yourself, but here are a few highlights of these changes:
- First of all, the font has been updated to use
IBM Plex Sans IBM Carbon Iconsis used for icons- The
Recordingspage has gotten new filtering options for date and detection type:
- Each camera card on the frontpage now shows the cameras uptime
- You can now zoom and pan in the Live view, as well as changing the order of cameras:
Live.view.zoom.and.pan.mp4
- Changing between a number of layouts is now also possible, allowing you to focus on specific cameras:
Live.view.layout.mp4
- You can also save layouts and camera selection in order to quickly recall them:
Live.view.custom.layouts.mp4
Changes were also made to the docs frontpage and the components explorer, giving them a more modern look.
New features
- Adds support for public image URL's for the
webservercomponents. This system can be used by any notification component that needs to share images externally. - Adds public image support to
gotify - New config option
drainfor storage tiers. When enabled, all files in the tier are moved when a limit is reached, reducing stress on disks - Subpath/base path support. You can now host Viseron using a base path in a reverse proxy. See the docs for more information
Changes
- When clicking on the timeline, the HLS player will now load the stream starting one hour before the requested time.
This allows you to seek backwards a bit to get some context before the requested timestamp. - When using multiple tiers, files in HLS playlists will now always point to the first tier in order to not break HLS specifications.
A hint that points to the correct tier is provided to the backend via query parameters. - Hailo component now runs in shared mode, meaning other applications can use the device at the same time as Viseron.
- Upgrade to React 19
- React Compiler is now used, resulting in better performance of the frontend
- Upgrade Eslint to v9
- Upgrade MUI to v7
- Migrate from onvif-zeep to onvif-python library
- The Telegram component has been refactored in order to further decouple it from the PTZ component.
Fixes
- Fix link to configuration from a failed cameras card
- Better handling of color mode selection resulting in fewer re-renders
- Improve performance on the Events timeline view by doing 2 things:
- Only load thumbnails when scrolling stops
- Avoid rerenders of all items when available timespans changes
- When using the Export button on the Events page, the selected start date wont be overridden when selecting a new end date and vice versa.
Docker images will be on Docker Hub shortly
All Changes
- build gpac in separate container by @roflcoopter in #1119
- allow multiple processes to share hailo device by @roflcoopter in #1120
- remove unused tenacity dep in requirements.txt by @roflcoopter in #1121
- ignore error in UniversalPackages by @roflcoopter in #1122
- upgrade hls.js to 1.6.13 by @roflcoopter in #1124
- Frontend dependency upgrades by @roflcoopter in #1127
- enable react compiler by @roflcoopter in #1128
- Timeline performance improvements by @roflcoopter in #1129
- HLS playback improvements by @roflcoopter in #1131
- feat(webserver): Add public image URL system with token-based access by @InterN0te in #1125
- Migrate from onvif-zeep to onvif-python library by @kaburagisec in #1135
- upgrade node to 22.20.0 by @roflcoopter in #1141
- feat(storage): add 'drain' option to tier configuration by @roflcoopter in #1140
- get libhailort from docker instead of azure in ci by @roflcoopter in #1143
- pin hls files to first tier by @roflcoopter in #1142
- Update launch.json to use debugpy instead of python for debugging configurations by @kaburagisec in #1145
- feat: reverse proxy subpath support by @neagix in #1136
- update webserver config.json by @roflcoopter in #1148
- frontend: dont override selected dates in export dialog by @roflcoopter in #1149
- Add database readiness check and retry mechanism by @kaburagisec in #1146
- Several UI/UX Improvements by @kaburagisec in #1150
- feat(gotify): Add public URL support and configurable image quality by @InterN0te in #1126
- Refactor of Telegram component by @roflcoopter in #1160
- fix: use reverse proxy subpath also on 404 page by @neagix in #1161
- Several Docs Improvements by @kaburagisec in #1159
- Fix login form not showing when session expires by @roflcoopter in #1173
- make sure players in grid are always centered by @roflcoopter in #1175
- 3.4.0 by @roflcoopter in #1176
New Contributors
- @kaburagisec made their first contribution in #1135
- @neagix made their first contribution in #1136
Full Changelog: v3.3.1...v3.4.0