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.

Buildarr logo

Self-host Buildarr

v0.7.1

Configuration manager for Arr PVR stacks

BetaOpen SourceGPL-3.0
Updated2 years ago
LanguagePython
Setup difficultyModerate
Stars
378
Docker
callum027/buildarr
Install with Docker

What is Buildarr?

Buildarr is a configuration-as-code tool for managing *Arr stack applications including Sonarr (TV shows), Radarr (movies), Prowlarr (indexer manager), and Jellyseerr (media requests). Users define their desired state in a YAML file (buildarr.yml), and Buildarr idempotently applies those settings to remote instances via their APIs. It can run once as an ad-hoc command or as a long-running daemon that periodically syncs configuration on a schedule. Buildarr also automatically fetches and applies optimal quality definitions and release profiles from TRaSH-Guides. It supports multiple instances of each application type, includes a plugin architecture for extensibility, and can generate Docker Compose files from the configuration. Buildarr is available as a Docker image (callum027/buildarr), Python packages (pip/pipx), and a Windows installer. It requires Python 3.8+ and the *Arr applications it manages must be running separately.

Should you self-host Buildarr?

Buildarr scores 48/100 on selfhost.directory (how scoring works) and ranks #7 of 8 in Configuration Management. It has 378 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. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is zookeeper (73/100, 12 826 stars). It scores higher overall, so compare the two before you pick. See Buildarr vs zookeeper side by side.

Features

  • Configuration as Code
  • Configuration Dump
  • Configuration Includes
  • Cross-platform
  • Docker Compose generation
  • Idempotent Updates
  • Multi-Instance Support
  • Plugin Architecture
  • Scheduled Daemon Mode
  • TRaSH Guides sync

Buildarr README

How to install Buildarr

Install Buildarr with Docker

Docker Engine
Environment variables
PUID, PGID, BUILDARR_INSTALL_PACKAGES, BUILDARR_VERSION, BUILDARR_SONARR_VERSION, BUILDARR_RADARR_VERSION, BUILDARR_PROWLARR_VERSION, BUILDARR_JELLYSEERR_VERSION

docker pull callum027/buildarr:latest

docker run -d --name buildarr --restart=always --mount "source=/path/to/config,destination=/config,type=bind,readonly" -e PUID= -e PGID= callum027/buildarr:latest

Official Docker image bundles all first-party plugins. Configuration directory must be mounted at /config with PUID/PGID set.

How to configure Buildarr

  • BUILDARR_INSTALL_PACKAGESSpace-separated list of packages to install via pip on container startup for additional plugins.

    Space-separated list of packages to install via pip on container startup for additional plugins.

    values: package names

  • BUILDARR_LOG_LEVELINFOBuildarr logging system log level. Can also be set using the --log-level command line argument.

    Buildarr logging system log level. Can also be set using the --log-level command line argument.

    values: ERROR, WARNING, INFO, DEBUG

  • docker_image_uricallum027/buildarrDefault image URI to use for the Buildarr service when generating Docker Compose files. Can be overridden by BUILDARR_DOCKER_IMAGE_URI environment variable.

    Default image URI to use for the Buildarr service when generating Docker Compose files. Can be overridden by BUILDARR_DOCKER_IMAGE_URI environment variable.

    values: Docker image reference

  • PGIDProcess group ID for file permissions in Docker container.

    Process group ID for file permissions in Docker container.

    values: numeric group ID

  • PUIDProcess user ID for file permissions in Docker container.

    Process user ID for file permissions in Docker container.

    values: numeric user ID

  • request_timeout30The timeout for any API requests Buildarr makes (in seconds). If the timeout is reached, an error will occur and Buildarr will stop the update process.

    The timeout for any API requests Buildarr makes (in seconds). If the timeout is reached, an error will occur and Buildarr will stop the update process.

    values: positive float

  • trash_metadata_dir_prefixGuides-masterMetadata directory name within the downloaded ZIP file.

    Metadata directory name within the downloaded ZIP file.

    values: Path

  • trash_metadata_download_urlhttps://github.com/TRaSH-/Guides/archive/refs/heads/master.zipURL to download the latest TRaSH-Guides metadata from.

    URL to download the latest TRaSH-Guides metadata from.

    values: Any HTTP URL

  • update_daysall daysThe days Buildarr daemon will run update operations on. By default, updates are scheduled to run every day.

    The days Buildarr daemon will run update operations on. By default, updates are scheduled to run every day.

    values: monday, tuesday, wednesday, thursday, friday, saturday, sunday

  • update_times03:00The times Buildarr daemon will run update operations on each scheduled day. By default, updates are scheduled to run at 3:00am local time.

    The times Buildarr daemon will run update operations on each scheduled day. By default, updates are scheduled to run at 3:00am local time.

    values: HH:MM format (24-hour)

  • watch_configfalseWhen set to true, the Buildarr daemon will watch the loaded configuration files for changes and reload them and update remote instances if they are changed.

    When set to true, the Buildarr daemon will watch the loaded configuration files for changes and reload them and update remote instances if they are changed.

    values: true, false

Buildarr releases & version history

More in Configuration Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…