Skip to content

Installation

Jellyfin Newsletter ships as a Docker image.

Docker

Requirements

There are two ways to run it, depending on how you want scheduling handled.

Container stays runningSchedule defined inRecommended for
Using built-in cronYesconfig.ymlMost setups
Using external cronNo — runs once, sends, exitsYour own crontab / task schedulerSetups that already centralize cron/systemd timers

The container stays up and sends on the schedule defined in config/config.yml.

  1. Download the docker-compose.yml file:

    bash
    curl -o docker-compose.yml https://raw.githubusercontent.com/SeaweedbrainCY/jellyfin-newsletter/refs/heads/main/docker-compose.yml
  2. (Optional) Edit docker-compose.yml to change the default user or timezone.

  3. Create a config folder next to it:

    bash
    mkdir config
  4. Download the example config into that folder:

    bash
    curl -o config/config.yml https://raw.githubusercontent.com/SeaweedbrainCY/jellyfin-newsletter/refs/heads/main/config/config-example.yml
  5. Edit config/config.yml and fill in the required fields. Every non-commented field is required. See the full Configuration reference.

  6. Start it:

    bash
    docker compose up -d

TIP

Pin a static version instead of latest, and upgrade manually. See the releases page for the latest tag.

Option B: External cron job

Use this if you'd rather trigger the send yourself — the container runs once and exits after sending.

  1. Create a config folder:

    bash
    mkdir config
  2. Download the example config into it:

    bash
    curl -o config/config.yml https://raw.githubusercontent.com/SeaweedbrainCY/jellyfin-newsletter/refs/heads/main/config/config-example.yml
  3. Edit config/config.yml and fill in the required fields. Every non-commented field is required.

  4. Run it once, to send immediately:

    bash
    docker run --rm \
        -v ./config:/app/config \
        ghcr.io/seaweedbraincy/jellyfin-newsletter:1.2.0
  5. Schedule it to run regularly. For example, with cron, to send on the 1st of every month at 8am:

    bash
    crontab -e
    # then add:
    0 8 1 * * root docker run --rm -v PATH_TO_CONFIG_FOLDER/config:/app/config/ ghcr.io/seaweedbraincy/jellyfin-newsletter:1.2.0

WARNING

Replace PATH_TO_CONFIG_FOLDER with the absolute path to your config folder, and pin a real version tag instead of latest.

Next steps

Released under the AGPL-3.0 license License.