Self-hosted service
saltyorg/Saltbox avatar
saltyorg/Saltbox

Saltbox: An Ansible Media Stack for Ubuntu Cloud Servers

Ansible-based solution for rapidly deploying a Docker containerized cloud media server.

892 stars86 forksPythonGPL-3.0

At a glance

What is it?
Saltbox is a GPL-3.0-licensed Ansible solution that deploys and wires together Plex, Sonarr, Radarr, Rclone, and over a dozen supporting services as Docker containers on Ubuntu x64 LTS servers. It targets engineers who want automated media acquisition and remote playback without configuring each container by hand.
Who is it for?
Saltbox is a good fit for engineers who own an Ubuntu 24.04 or 26.04 LTS x64 server and want a reproducible, Ansible-managed media stack. It is not suitable for Windows, macOS, ARM hardware, non-LTS Ubuntu, or any Linux distribution other than Ubuntu.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Automated Cloud Media Acquisition and Playback on Ubuntu

Running Plex, Sonarr, Radarr, and cloud storage alongside each other requires coordinating Docker networking, mounts, environment variables, and reverse proxy configuration for each service. Saltbox handles all of that through Ansible playbooks that codify each step as a role.

The primary use cases, as the README states them, are: automatic media acquisition, playback from any device and location, and storing that media on cloud storage. Rclone handles the cloud storage mount so that a remote bucket appears as a local filesystem path that other containers can read and write. Media acquisition services such as Sonarr (TV), Radarr (movies), and Lidarr (music) run searches, manage downloads through SABnzbd, and organize files automatically.

Saltbox is built heavily on Cloudbox, a predecessor project that pioneered the same Ansible-plus-Docker approach for media servers.

Repository Layout: Playbooks, Roles, and Defaults

The repository follows standard Ansible structure. The main entry point is saltbox.yml. Each application or service is implemented as a role inside the roles/ directory. Configuration defaults live in defaults/. The inventories/ directory holds host configuration, and requirements.yml declares external Ansible role dependencies.

There are also dedicated playbooks for specific tasks: backup.yml handles backups, and announcements.yml manages in-app announcements. The schema/ directory validates configuration inputs. Custom Ansible filter plugins and lookup plugins extend the playbook logic without requiring upstream changes.

All Saltbox-specific setup and commands run in text editors and on the command line. The README states explicitly that Saltbox does not have a dashboard or GUI. This is a deliberate design choice: the Ansible playbooks are the configuration surface, not a web form.

Platform Requirements and Installation Starting Point

Saltbox supports only x64 machines running Ubuntu Server 24.04 LTS or 26.04 LTS for fresh installations. Existing Ubuntu Server 22.04 LTS installations remain supported. Non-LTS Ubuntu releases, Ubuntu Desktop installs, Linux distributions other than Ubuntu, and ARM processors are all explicitly unsupported.

The README does not document installation steps directly. All installation guidance is at docs.saltbox.dev. Before following those steps, confirm that the target machine meets the OS and architecture requirements, since an attempt on an unsupported configuration is not expected to succeed and is not something the project documents how to recover from.

The project uses uv for Python tooling, as indicated by the .uv-version file at the repository root. The .python-version file pins the Python interpreter version.

The Application Stack: What Saltbox Deploys and Wires Together

The README names the featured applications: Plex and Emby for media playback, Sonarr and Radarr and Lidarr for automated media acquisition, SABnzbd for Usenet downloads, Rclone for cloud storage, Jackett for indexer management, NZBHydra2 for aggregated Usenet and torrent searches, Autoscan for triggering library updates, Cloudplow for uploading media to cloud storage, Tautulli for Plex analytics, Overseer for media request management, Organizr for a unified tab-based web portal, Portainer for Docker container management, and Traktarr for syncing Trakt lists into Sonarr and Radarr.

Each application maps to a role in the roles/ directory. Installing a single application means running the relevant Ansible tags rather than the entire playbook, though the exact tag syntax is documented in the official docs rather than the README.

The list ends with 'and more', indicating additional roles beyond those listed.

Constraints: No GUI, Ubuntu Only, and No GitHub Releases

The hardest constraints for new adopters are the platform requirements and the interface model. Saltbox requires a dedicated Ubuntu LTS x64 server. It will not run on a desktop, a NAS OS, a Raspberry Pi, or any non-Ubuntu Linux variant. Attempting to adapt it to another platform means rewriting Ansible tasks that assume Ubuntu's package manager, service manager, and filesystem layout.

The absence of a GUI is intentional but affects the audience. All configuration happens through YAML files and command-line Ansible runs. There is no clickable onboarding, no health dashboard, and no centralized settings panel. Teams accustomed to tools like Portainer's UI for Docker management must understand that Portainer is one of the applications Saltbox deploys, not the interface for managing Saltbox itself.

The repository has no GitHub releases. Updates are tracked through commits to the master branch.

Saltbox vs Unraid for a Home or Cloud Media Server

Unraid is a well-known alternative for home media server builds. It ships as its own Linux-based NAS and virtualization OS, runs community plugins for Plex and the arr applications through its Community Applications store, and provides a web-based GUI for managing containers, VMs, and storage. The trade-off is that Unraid requires dedicated hardware running its own OS, carries a commercial license, and is designed primarily for local physical drives rather than cloud storage.

Saltbox runs on top of an existing Ubuntu server, requires no separate OS purchase, and is built from the start around cloud storage via Rclone. Its Ansible-driven configuration is reproducible and version-controlled, which suits cloud VPS deployments where infrastructure-as-code matters. The trade-off is the steeper command-line requirement and the Ubuntu-only constraint.

For a local NAS box with drives, Unraid's GUI and hardware integration are practical advantages. For a cloud VPS or a dedicated Ubuntu server, Saltbox's Ansible model gives more consistent, repeatable deployments.

GPL-3.0 License and Active Maintenance

Saltbox is licensed under GPL-3.0. This means any modifications you distribute must also be released under GPL-3.0. For private deployments where you only run the stack on your own machines, the copyleft clause does not require releasing your changes. For organizations that fork Saltbox and distribute it as part of a commercial service, the GPL-3.0 terms apply.

The project shows active maintenance. The last push was on 2026-09-24. The repository is not archived. Multiple contributors are listed, and the Discord community is linked from the README for support.

The .ansible-lint and .saltbox-lint files at the repository root indicate that the project enforces linting rules on its Ansible code, which is a sign of deliberate code quality practices rather than ad hoc playbook authoring.

Editorial conclusion

Saltbox is a good fit for engineers who own an Ubuntu 24.04 or 26.04 LTS x64 server and want a reproducible, Ansible-managed media stack. It is not suitable for Windows, macOS, ARM hardware, non-LTS Ubuntu, or any Linux distribution other than Ubuntu. Verify before installing that you have a dedicated Ubuntu LTS x64 machine and are comfortable working entirely from the command line, as Saltbox has no dashboard of its own.

Frequently asked questions

What operating system does Saltbox require?

Saltbox supports fresh installations only on x64 machines running Ubuntu Server 24.04 LTS or 26.04 LTS. Existing Ubuntu Server 22.04 LTS installations remain supported. Non-LTS Ubuntu releases, Ubuntu Desktop, ARM processors, and all other Linux distributions are explicitly not supported.

Does Saltbox have a web dashboard for managing services?

No. The README states that Saltbox does not have a dashboard or GUI of its own; all setup and commands are done in text editors and on the command line. Organizr and Portainer are among the applications Saltbox can deploy, but they are not interfaces for managing Saltbox itself.

Where is the Saltbox installation guide?

The README does not include installation steps. All installation documentation is at docs.saltbox.dev.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. Project website
  4. README
  5. saltyorg/Saltbox on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/saltyorg-saltbox.svg)](https://hysenlabs.com/projects/saltyorg-saltbox)