Skip to main content

Installation

upbrr ships as a single binary with the Web UI embedded. Release automation builds these targets:

Operating systemArchitectures
Windowsamd64, arm64
Linuxamd64, arm64, armv7
macOSamd64, arm64

Release Docker images are published for Linux amd64 and arm64.

Intel Xeon Phi processors without AVX-512DQ, including Knights Landing and Knights Mill, are unsupported for audio spectrogram generation. The FFT dependency can select unsupported instructions on these CPUs and terminate upbrr with an illegal-instruction error.

Release binary​

  1. Open GitHub Releases.

  2. Download the archive matching your operating system and CPU.

  3. Extract it into a directory owned by your user.

  4. Verify the executable starts:

    .\upbrr.exe --version
  5. Start the Web UI:

    .\upbrr.exe serve

On Linux or macOS, use ./upbrr instead of .\upbrr.exe. If required, make it executable with chmod +x ./upbrr.

FFmpeg​

FFmpeg is required for screenshot generation.

  • Windows: install FFmpeg and add its executable directory to PATH before starting upbrr.
  • Linux: install FFmpeg through your distribution package manager.
  • macOS: install with Homebrew using brew install ffmpeg, then start upbrr from an environment that includes Homebrew's binary directory.

Screenshots from supported decrypted 3D Blu-ray ISOs require FFmpeg with the bluray: input protocol provided by libbluray. Ordinary FFmpeg availability does not prove that capability.

Automatic DVD menu capture has stricter requirements. The selected FFmpeg must expose the dvdvideo demuxer and its menu-coordinate options. upbrr checks this at runtime; a version number alone does not prove support.

Docker Compose​

The repository includes a maintained Compose example. Save it as docker-compose.yml, replace both host paths, then start it:

docker compose up -d

The image:

  • serves the Web UI on 0.0.0.0:7480;
  • stores application state below the /config volume;
  • expects release data below mounted paths such as /data;
  • runs as uid and gid 1000:1000 by default;
  • includes FFmpeg and the fonts needed by screenshot overlays.

On Linux, create bind-mount directories before starting and give the container user read/write access:

mkdir -p /path/to/config /path/to/torrents
sudo chown -R 1000:1000 /path/to/config /path/to/torrents

For production, replace latest with a specific release tag. If you publish port 7480 on all interfaces, finish first-run account setup promptly. Bind to 127.0.0.1:7480:7480 or use a reverse proxy when LAN access is not required.

Test a pull request image​

After the Docker workflow succeeds, same-repository pull requests publish a Linux amd64 image tagged ghcr.io/autobrr/upbrr:pr<number>. For example:

docker pull ghcr.io/autobrr/upbrr:pr123

Replace 123 with the pull request number and use that image in your test Compose configuration. The tag updates when the pull request is updated and the workflow succeeds. It contains the pull request merged with its target branch for testing, not a release. Use a separate configuration/data directory rather than your production installation.

Fork and Dependabot pull requests build without publishing an image. The .dockerbuild artifact on a workflow run is a build record, not an image you can run.

Next step​

Complete the quick start. For subdomain or path-prefix proxying, see Web server and reverse proxy.