callum027/buildarr

By callum027

Updated 8 months ago

Configuration management of *Arr stacks

Image
API Management

1M+

Docker container for Buildarr

Docker VersionDocker PullsGitHub

This is the Docker container for Buildarr, a solution to automating deployment and configuration of your *Arr stack.

The following plugins are bundled with the latest Docker container:

For more information on configuring Buildarr and its plugins, refer to the full documentation for Buildarr.

Supported platforms

The Buildarr Docker container is currently built for the following platforms:

  • linux/amd64 - AMD64 (x86-64)
  • linux/arm/v7 - ARMv7 (32-bit ARM)
  • linux/arm64/v8 - ARMv8 (64-bit ARM)

The Buildarr Docker images can be run on macOS (Intel or Apple Silicon) using Docker Desktop. On Windows, Docker Desktop or Docker under the Windows Subsystem for Linux can be used.

If support for a Docker platform that is not on the above list is required, please make a ticket on GitHub.

Supported tags

Note that as the Buildarr container is a bundle consisting of Buildarr itself and some of the available plugins, it has a separate version number from the Buildarr core package.

The release notes for the Buildarr container are available in the Buildarr Docker container documentation.

Installation

A standalone container for Buildarr can be started using the following command.

This command starts a container with the name buildarr in daemon mode, sets it to start automatically, and mounts the config directory in the current directory as the Buildarr configuration directory. The UID and GID of the current user are mapped to the container, to give the correct permissions for accessing the configuration folder.

Make sure the config folder exists with the buildarr.yml file placed in it.

docker run -d \
           --name buildarr \
           --restart=always \
           --mount "type=bind,source=$(pwd)/config,target=/config,readonly" \
           -e PUID=$(id -u) \
           -e PGID=$(id -g) \
           callum027/buildarr:latest

For more information, including installing additional plugins within the container, see the Docker container installation instructions.

Docker Compose

Buildarr is intended to run alongside your *Arr applications as an integrated stack, where Buildarr takes the role of automatically configuring the instances, and updating them if the configuration files have changed.

Here is a sample Docker Compose file for managing one Sonarr, one Radarr, and one Prowlarr instance, with a Transmission service for downloading torrents, and FlareSolverr for solving CloudFlare challenges:

---

version: "3.7"

services:
  transmission:
    image: lscr.io/linuxserver/transmission:version-3.00-r8
    hostname: transmission
    restart: always
    ports:
      - 127.0.0.1:9091:9091
    volumes:
      - ./transmission:/config
      - type: bind
        source: "/opt/arrstack/data/torrents"
        target: /data/torrents
    environment:
      TZ: "Pacific/Auckland"
      PUID: "1000"
      PGID: "1000"
      TRANSMISSION_WEB_HOME: "/flood-for-transmission/"
      WHITELIST: "*.*.*.*"

  flaresolverr:
    image: ghcr.io/flaresolverr/flaresolverr:v3.3.4
    hostname: flaresolverr
    restart: always
    ports:
      - 127.0.0.1:8191:8191
    environment:
      TZ: "Pacific/Auckland"
      LOG_LEVEL: "info"

  sonarr:
    image: lscr.io/linuxserver/sonarr:3.0.10
    hostname: sonarr
    restart: always
    ports:
      - 127.0.0.1:8989:8989
    volumes:
      - "./sonarr:/config"
      - type: bind
        source: "/opt/arrstack/data"
        target: /data
    environment:
      TZ: "Pacific/Auckland"
      PUID: "1000"
      PGID: "1000"
    depends_on:
      - transmission

  radarr:
    image: lscr.io/linuxserver/radarr:4.7.5
    hostname: radarr
    restart: always
    ports:
      - 127.0.0.1:7878:7878
    volumes:
      - "./radarr:/config"
      - type: bind
        source: "/opt/arrstack/data"
        target: /data
    environment:
      TZ: "Pacific/Auckland"
      PUID: "1000"
      PGID: "1000"
    depends_on:
      - transmission

  prowlarr:
    image: lscr.io/linuxserver/prowlarr:1.7.4
    hostname: prowlarr
    restart: always
    ports:
      - 127.0.0.1:9696:9696
    volumes:
      - "./prowlarr:/config"
      - type: bind
        source: "/opt/arrstack/data"
        target: /data
    environment:
      TZ: "Pacific/Auckland"
      PUID: "1000"
      PGID: "1000"
    depends_on:
      - transmission
      - flaresolverr
      - sonarr
      - radarr

  buildarr:
    image: callum027/buildarr:latest
    hostname: buildarr
    restart: always
    volumes:
      - type: bind
        source: ./buildarr
        target: /config
        read_only: true
    environment:
      TZ: "Pacific/Auckland"
      PUID: "1000"
      PGID: "1000"
    depends_on:
      - sonarr
      - radarr
      - prowlarr

For an example on how to use Buildarr with Ansible and Docker Compose to automatically deploy and configure an *Arr stack, have a look at the example Ansible playbooks available on GitHub.

Docker Pull Command

docker pull callum027/buildarr