Skip to content

v1.5.0 — Multi-arch, VPN overlay, host-FFmpeg overlay

Choose a tag to compare

@RyDizz214 RyDizz214 released this 18 Apr 02:47
· 27 commits to main since this release
v1.5.0
508b1fe

First release that ships multi-arch images (linux/amd64 + linux/arm64)
plus two new optional overlays: gluetun VPN and host-FFmpeg. Upstream Snappier
CLI bumped from 1.3.4b → 1.5.0.


Upgrade

git pull
docker compose pull
docker compose up -d

Visit http://localhost:7429.


What's new in Snappier Server itself (upstream)

Snappier Server 1.5.0 (vs 1.3.4) adds:

  • Web dashboard. A browser UI served directly by Snappier — no external
    client needed. Includes System Overview, active-jobs tracking, and an
    interactive TV Guide (EPG grid) for scheduling recordings.
  • HLS live playback. Built-in HLS transcoding so channels play in any
    browser. This Docker image includes a wrapper that optimises the stream on
    the fly: H.264 sources remux with -c copy (near-zero CPU), higher-codec
    sources transcode with ultrafast and downscale only if needed.
  • API token authentication. Snappier auto-generates a token on first
    launch (data/config.json). Pass it as the X-API-Token header to hit any
    API endpoint. Visible in docker logs snappier-server on startup.

Full feature details: https://snappierserver.app


What's new in this Docker image

Multi-arch

Previous releases were amd64 only. v1.5.0 publishes for both linux/amd64 and
linux/arm64 in the same manifest, so Docker picks the right one automatically
whether you're on Intel/AMD, Raspberry Pi 4/5, AWS Graviton, Apple Silicon, or
anywhere else.

Published tags:

Tag What it tracks
:1.5.0 This exact release (pin for prod)
:1.5 Latest patch in the 1.5 line
:latest Latest tagged release

VPN (gluetun) overlay — NEW

Previous versions had no VPN support. v1.5.0 ships an optional overlay that
routes all Snappier traffic through gluetun,
supporting 40+ providers out of the box (NordVPN, Mullvad, ProtonVPN, PIA,
Surfshark, AirVPN, and more).

docker compose -f docker-compose.yml -f docker-compose.vpn.yml up -d

Every variable in .env passes through to the gluetun container, so any
gluetun knob works without editing the compose file. Provider-specific vars
are in the gluetun wiki.

Host-FFmpeg overlay — NEW

Optional overlay (docker-compose.host-ffmpeg.yml) that swaps the built-in
FFmpeg for the host's. Useful if you want hardware acceleration (NVENC /
QuickSync) or a vendor-patched FFmpeg. Linux x86-64 only.

docker compose -f docker-compose.yml -f docker-compose.host-ffmpeg.yml up -d

Most users should stick with the built-in FFmpeg — it's fully featured and
works on both arches.

FFmpeg stays current

The image still builds FFmpeg from source, but every release now ships with
the latest upstream stable FFmpeg (currently 8.1) — no more stale cached
binaries.

Portable volume paths

The base compose used to hardcode /data/recordings/snappier-server/.... It
now uses ${DATA_DIR:-./data}/..., defaulting to a data/ folder next to
docker-compose.yml. First-run users don't need to edit any paths.

Timezone no longer hardcoded

Previous images baked in TZ=America/New_York. It's now read from your .env
and defaults to UTC — set your own zone for local timestamps.

example.env fully rewritten

Every variable documented inline, provider-agnostic VPN section, nothing
required to boot.

End-user-focused README

Rewritten to lead with docker compose pull, with advanced topics folded into
collapsible <details> blocks.


Breaking changes / upgrade notes

1. Volume paths changed

The base compose file used to hardcode /data/recordings/snappier-server/....
It now uses ${DATA_DIR:-./data}/....

If you want to keep your existing recordings in place, add this to .env:

DATA_DIR=/data/recordings/snappier-server

Otherwise new data will land in ./data/ beside docker-compose.yml.

2. Timezone is no longer forced

If you relied on the implicit America/New_York default, set it explicitly:

TZ=America/New_York

Unset TZ now defaults to UTC.

3. schedules.json and server.log volume mounts consolidated

The old base compose mounted those two paths individually. They're now covered
by the broader Recordings/ and logs/ directory mounts. No action needed
for most users.


Removed

  • Dockerfile.minimal, docker-compose.minimal.yml, README-MINIMAL.md — the
    minimal variant is retired. The unified setup covers everything now.
  • scripts/https_watcher.py — superseded by the health watcher.

Known limitations

  • docker-compose.host-ffmpeg.yml is x86-64 only. The host-ffmpeg shim
    hardcodes ld-linux-x86-64.so.2 because it has to use the host's dynamic
    linker to bypass glibc mismatches. ARM hosts just use the built-in FFmpeg.
  • Remote access requires a reverse proxy. Ports are bound to 127.0.0.1
    by default. See the README for setup tips.

Under the hood

  • Upstream Snappier CLI v1.5.0 (from 1.3.4b)
  • FFmpeg 8.1
  • Base image: Ubuntu 25.04

Full changelog