github SeaweedbrainCY/jellyfin-newsletter v1.0.0-dev.10
v1.0.0 - Beta 1

pre-release14 hours ago

Important

This is a beta release. Use it with care.
This is a major improvement for Jellyfin Newsletter, but bugs could have been introduced during the rewrite.

❤️ Your help is highly appreciated to test this new engine

Caution

This version includes breaking changes. Make sure to review it and adapt your configuration file before running it.

🐳 New docker images

This release is available in the following tags : v1.0.0-dev.10
Exact tag :

  • ghcr.io/seaweedbraincy/jellyfin-newsletter:1.0.0-dev.10

Major change

This version brings a full rewrite of the jellyfin-newsletter engine from python to Go. The full explanation is listed here.

The main impact for the user is about the performance that are tremendously improved.

Comparison of the 2 engine

Python Engine (version <1.0.0) Go engine (version >= 1.0.0) Improvement
Docker image size 810 Mo 29 Mo 27x lighter
Memory usage 35 Mo 3.5 Mo Consume 10x less

Overall, the Go engine brings a much cleaner architecture, more efficient and ready to have more features or plugin easily plugged.

Breaking changes

Placeholders

Placeholders in config file

Placeholders are now parsed using Go built-in template package (pkg.go.dev/text/template). Therefore the old placeholders {variable_name} will not be recognized anymore and need to be replaced with the new synthax: {{.VariableName}}. Variables names also changed.
Here is a complete list of the old and new available placeholders :

Description Old placeholder (version <1.0.0) New placeholder (version >=1.0.0)
Date of the day. Format Y-m-d. {date} {{.Date}}
Today's day name, localized. {day_name} {{.DayName}}
Today's day number of the month. {day_number} {{DayNumber}}
Current month name, localized. {month_name} {{.MonthName}}
Current month number. {month_number} {{MonthNumber}}
Current year. {year} {{.Year}}
First date new addition are taken into account. Depends on observed_period_days config parameter. Format Y-m-d. {start_date} {{.StartDate}}
Day name of the first observed date. {start_day_name} {{.StartDayName}}
Day number of the first observed date. {start_day_number} {{.StartDayNumber}}
Month name of the first observed date. {start_month_name} {{.StartMonthName}}
Month number of the first observed date. {start_month_number} {{.StartMonthNumber}}
Year the first observed date. {start_year} {{.StartYear}}

Placeholders in template

Template have been entirely re-built to use the go template synthax. Please refer to themes for more informations

Dry run

When dry run is enabled, the key dry-run.output_directory is now mandatory.

Docker compose - User passed as environment variables

Due to a simplification of the entrypoint and filesystem management, the user which will run the newsletter cannot be supplied anymore as environment variables. Those variables will be ignored.
By default, the user 1000:1000 will run the script, even if no user if provided. To change to user/groups, use the docker user configuration. Example :

services:
  jellyfin-newsletter:
    container_name: jellyfin-newsletter
    image: "ghcr.io/seaweedbraincy/jellyfin-newsletter:latest"
    environment:
-      USER_UID: 1000
-      USER_GID: 1000
+   user: "1000:1000"

✨ What's new

Don't miss a new jellyfin-newsletter release

NewReleases is sending notifications on new releases.