LibreTime 4.0.0
This version was released the 2024-01-07.
Please report new issues and/or feature requests in the issue tracker.
For general discussion or if you need help, you can join the discourse forum or chat on #libretime:matrix.org.
The full tarball for the 4.0.0
release of LibreTime is available here.
💖 Contributors
The LibreTime project wants to thank the following contributors for authoring PRs to this release:
- @jooola
- @maxtimbo
- @mp3butcher
🚀 Features
- default system output is now
pulseaudio
(#2842) (083ee3f), closes #2542 - disable uvicorn worker lifespan (#2845) (8743c84)
- installer: add the
--storage-path
flag (#2865) (5b23852) - installer: change default listen port to 8080 (#2852) (f72b7f9)
- installer: remove the
--update-nginx
flag (#2851) (35d7eac) - playout: configure device for alsa and pulseaudio system outputs (#2654) (06af18b)
- rewrite cloud-init config (#2853) (8406d52)
- run python in optimized mode (#2874) (3f7fc99)
- the
general.secret_key
configuration field is now required (#2841) (0d2d1a2), closes #2426 - use nginx to serve media files (#2860) (4603c17)
🐛 Bug fixes
- add parent function name in setValue exception (#2777) (c764a5a)
- api: ensure non ascii paths are handled by X-Accel-Redirect (#2861) (0ce63f3)
- api: enum schema description (#2803) (976b70e)
- api: let nginx handle the media file content type (#2862) (72268ad)
- api: move gunicorn worker config to python file (#2854) (43221d9)
- api: paths with question marks chars are handled by X-Accel-Redirect (#2875) (b2c1ceb)
- deps: update dependency friendsofphp/php-cs-fixer to <3.42.1 (main) (#2765) (8ae4dce)
- deps: update dependency friendsofphp/php-cs-fixer to <3.43.2 (main) (#2848) (62e5f4d)
- deps: update dependency friendsofphp/php-cs-fixer to <3.45.1 (main) (#2855) (6f84328)
- deps: update dependency friendsofphp/php-cs-fixer to <3.46.1 (main) (#2868) (4827dbc)
- legacy: allow uploading opus files (#2804) (f252a16)
- legacy: declare previously undeclared variable (#2793) (e2cfbf4)
- legacy: ensure last played criteria works with never played files (#2840) (24ee383)
- playout: increase file download chunk size to 8192 bytes (#2863) (7ed1be1)
- playout: remove empty file when the download request failed (#2864) (2facbfa)
- worker: unbound variable when episode url returns HTTP 404 (#2844) (3f39689)
⬆️ Upgrading
Installer changes
The installer received a few breaking changes:
- The default listen port for the installer is now
8080
. We recommend that you put a reverse proxy in front of LibreTime with your customizations. - The
--update-nginx
flag was removed from the installer. The nginx configuration deployed by the installer will now always be overwritten. Again, we recommend that you put a reverse proxy in front of LibreTime with your customizations. - The media file serving is now handled by Nginx instead of the API service. The configuration
storage.path
field is now used in the Nginx configuration, so make sure that the Nginx configuration file has the right storage path. To update the Nginx configuration file with the installer, you can use the--storage-path
option to specify your custom storage path.
The general.secret_key
configuration field is required
The general.secret_key
field in the configuration file is now required, to prevent reusing the general.api_key
for cryptographic usage.
The stream.outputs.system[].kind
configuration field now defaults to pulseaudio
The stream.outputs.system[].kind
field in the configuration file default value changed from alsa
to pulseaudio
. Make sure to update your configuration file if you rely on the default system output.