selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
Ezarr logo

Self-host Ezarr

Docker Compose generator for a complete Servarr media stack

ReleaseOpen SourceMIT
Updated2 months ago
LanguagePython
Setup difficultyModerate
Stars
1 090
Requires
Docker, Docker-compose-v2, Python 3

What is Ezarr?

Ezarr simplifies deploying a full-featured media center by generating a customized Docker Compose stack and handling the underlying user, group, and directory permission setup. It includes the *arr applications (Sonarr, Radarr, Lidarr, Bazarr, Mylar3, Sportarr, Audiobookshelf), indexers (Prowlarr, Jackett, FlareSolverr), download clients (qBittorrent, SABnzbd), media servers (Plex, Jellyfin), request tools (Overseerr, Jellyseerr), monitoring (Tautulli), and a dashboard (Homarr). The CLI guides you through selecting services, then writes a docker-compose.yml and optionally runs a setup script that creates dedicated system users (UIDs 13001–13015), a shared mediacenter group, and the required directory tree under a configurable ROOT_DIR. It follows TRaSH guidelines for hardlink-friendly paths. The project targets Linux (tested on Ubuntu) and requires Python 3, Docker, and Docker Compose v2. No web UI of its own — it is a one-time setup helper, not a running service.

Should you self-host Ezarr?

Ezarr scores 55/100 on selfhost.directory (how scoring works) and ranks #42 of 118 in Media Server. It has 1 090 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Jellyfin (88/100, 58 733 stars). It scores higher overall, so compare the two before you pick. See Ezarr vs Jellyfin side by side.

Features

  • Automated user and permission setup
  • Container update script
  • NFS share support
  • Service selection via CLI
  • TRaSH guidelines compliance

Ezarr README

How to configure Ezarr

  • AUDIOBOOKSHELF_UID13014User ID for Audiobookshelf container

    User ID for Audiobookshelf container

    values: Any unused UID

  • BAZARR_UID13013User ID for Bazarr container

    User ID for Bazarr container

    values: Any unused UID

  • GID1000Group ID of the user running docker-compose

    Group ID of the user running docker-compose

    values: Your user's GID

  • JACKETT_UID13008User ID for Jackett container

    User ID for Jackett container

    values: Any unused UID

  • LIDARR_UID13003User ID for Lidarr container

    User ID for Lidarr container

    values: Any unused UID

  • MEDIACENTER_GID13000Group ID for the mediacenter group

    Group ID for the mediacenter group

    values: Any unused GID

  • MYLAR_UID13005User ID for Mylar3 container

    User ID for Mylar3 container

    values: Any unused UID

  • PLEX_CLAIMPlex claim token from https://www.plex.tv/claim/

    Plex claim token from https://www.plex.tv/claim/

    values: Valid Plex claim token

  • PLEX_UID13010User ID for Plex container

    User ID for Plex container

    values: Any unused UID

  • PROWLARR_UID13006User ID for Prowlarr container

    User ID for Prowlarr container

    values: Any unused UID

  • QBITTORRENT_UID13007User ID for qBittorrent container

    User ID for qBittorrent container

    values: Any unused UID

  • RADARR_UID13002User ID for Radarr container

    User ID for Radarr container

    values: Any unused UID

  • READARR_UID13004User ID for Readarr container (discontinued)

    User ID for Readarr container (discontinued)

    values: Any unused UID

  • ROOT_DIRRoot directory for all container configs and data (absolute path)

    Root directory for all container configs and data (absolute path)

    values: Absolute filesystem path

  • SABNZBD_UID13011User ID for SABnzbd container

    User ID for SABnzbd container

    values: Any unused UID

  • SONARR_UID13001User ID for Sonarr container

    User ID for Sonarr container

    values: Any unused UID

  • SPORTARR_UID13015User ID for Sportarr container

    User ID for Sportarr container

    values: Any unused UID

  • TIMEZONEEurope/AmsterdamTimezone for containers (TZ database name)

    Timezone for containers (TZ database name)

    values: Any valid TZ database name

  • UID1000User ID of the user running docker-compose

    User ID of the user running docker-compose

    values: Your user's UID (run `id -u`)

FAQ

How to update containers

Run the update_containers.sh script which pulls latest images, recreates containers, and prunes old images. Or manually run docker compose pull, docker compose up -d, and docker image prune.

More in Docker

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…