[1.4.0.0] - 2026-05-15
Slimarr v1.4 — "Containerised"
This release focuses on Linux-native operation, official Docker deployment, and
production-grade observability. Windows installs continue to work unchanged.
Full Linux & Docker Support
- Added official multi-stage
Dockerfiletargetinglinux/amd64andlinux/arm64. - Added
docker-compose.ymlfor basic self-hosted deployments and
docker-compose.traefik.ymlfor Traefik reverse proxy setups. - Added
.dockerignorefor lean images (no test artefacts, no secrets, no Windows
packaging files). - Added
.env.examplewith a full reference of all supported environment variables. - Container runs as a non-root user (
UID/GID 1000) by default;PUID/PGID
build args allow customisation. - Built-in
HEALTHCHECKhits the/api/v1/system/healthendpoint every 30 s. - Graceful shutdown is handled natively by uvicorn's SIGTERM/SIGINT handling.
Environment Variable Configuration
- Added
SLIMARR_*environment variable override layer so the container can be
configured entirely without aconfig.yaml. - Supported variables cover all service connections: Plex, SABnzbd, NZBGet,
Prowlarr, Radarr, Sonarr, TMDB, server port, log level/format, and timezone. - Config precedence:
SLIMARR_*env vars →config.yaml→ built-in defaults. TZandSLIMARR_TZboth map toschedule.timezone.- Type coercion handles booleans, integers, and floats from string env values.
Cross-Platform Filesystem Utilities
- Added
backend/utils/platform.pywith:- OS and Docker container detection (
is_docker(),container_id(),os_info()). - Cross-platform disk space helpers (
disk_free_bytes(),disk_total_bytes())
usingstatvfson Linux/macOS andGetDiskFreeSpaceExWon Windows. normalize_path()for portable path expansion.is_writable()permission check.safe_makedirs()respecting container umask.
- OS and Docker container detection (
- System info endpoint now returns
arch,in_docker, andcontainer_id.
Startup Validation
- Added
backend/core/startup.pythat runs once at application startup:- Detects OS, architecture, Python version, Docker status.
- Creates and validates all required data directories.
- Checks disk space; emits
warn(< 5 GB) orcritical(< 1 GB) alerts. - Logs a structured startup banner with provider summary and active env overrides.
- Exposes warnings via
GET /api/v1/system/startup(authenticated) and reflects
them in the/healthresponse.
- Startup validation results are included in the diagnostics bundle.
Observability & Logging
- Logger now auto-detects runtime environment:
- Docker / no-TTY → plain structured text (no ANSI codes), Docker-friendly.
SLIMARR_LOG_FORMAT=json→ newline-delimited JSON to stderr (Loki, ELK, Splunk).- Interactive terminal → existing colourised output unchanged.
- Added
SLIMARR_LOG_LEVELandSLIMARR_LOG_FILEenvironment variable overrides. - Added
GET /api/v1/system/metrics(unauthenticated) Prometheus-compatible
plain-text endpoint exposing:
slimarr_uptime_seconds,slimarr_movies_total,slimarr_downloads_active,
slimarr_db_size_bytes,slimarr_disk_free_bytes,slimarr_cycle_running,
slimarr_search_degraded,slimarr_info. /api/v1/system/healthnow returns{"status":"degraded","warnings":[…]}when
startup checks found actionable issues, instead of always returningok.
Container Diagnostics UI
- Added System → Container page (
/system/container) showing:- Runtime info: OS, architecture, Python version, Docker status, container ID.
- Data directory validation with per-path write-permission indicators.
- Disk space status with colour-coded warn/critical badges.
- Active config summary: providers, env overrides, download client, schedule mode.
- Copyable
docker-compose.ymlquick-start example. - Linux volume and permissions troubleshooting guidance.
- Added Container entry to the sidebar navigation.
GitHub Actions CI/CD
- Added
.github/workflows/ci.yml— runs pytest and ruff lint on Ubuntu and
Windows for Python 3.11 and 3.12 on every push and PR. - Added
.github/workflows/docker.yml— builds and publishes multi-arch Docker
images (linux/amd64,linux/arm64) to GHCR on push tomainand version tags,
with layer caching, Docker metadata tagging, and Trivy vulnerability scanning.
Documentation
- Added
docs/DOCKER.md— comprehensive Docker deployment guide covering:
quick start, environment variable reference, volume mapping, media path setup,
Traefik and nginx reverse proxy, Unraid, Synology, permissions, Prometheus metrics,
upgrading, troubleshooting, and migration from v1.3.
Compatibility
- All existing Windows installs,
config.yamlfiles, and v1.3 databases are fully
compatible with v1.4. No manual migration steps required. run.pyalready detected non-Windows platforms for headless mode; Docker uses
this path directly.