Find a file
soulis-1256 e9f356cffd
Initial commit
Assemblrr: Docker-based bootstrap and wiring for a self-hosted media stack.
2026-08-04 23:42:34 +03:00
.github Initial commit 2026-08-04 23:42:34 +03:00
bin Initial commit 2026-08-04 23:42:34 +03:00
compose Initial commit 2026-08-04 23:42:34 +03:00
docs Initial commit 2026-08-04 23:42:34 +03:00
lib Initial commit 2026-08-04 23:42:34 +03:00
platform Initial commit 2026-08-04 23:42:34 +03:00
scripts Initial commit 2026-08-04 23:42:34 +03:00
templates Initial commit 2026-08-04 23:42:34 +03:00
.env.example Initial commit 2026-08-04 23:42:34 +03:00
.gitignore Initial commit 2026-08-04 23:42:34 +03:00
branding.conf Initial commit 2026-08-04 23:42:34 +03:00
LICENSE Initial commit 2026-08-04 23:42:34 +03:00
README.md Initial commit 2026-08-04 23:42:34 +03:00
test_integration.sh Initial commit 2026-08-04 23:42:34 +03:00

assemblrr

Note

Developer’s note — vision & roadmap
Assemblrr is infrastructure for self-hosted media automation (install, wire services, operate the stack). It does not provide media, indexers, or content. What you request, download, and host is entirely your responsibility and must comply with the laws that apply to you.

Future directions and ideas shall be discussed with the community here

A lightweight media server stack via Docker. Cross-platform, VPN-aware, and built with failsafe shell scripting.

Features & Philosophy

  • 100% Docker Native: No messy host installations. Uses native Docker Compose overlays instead of finicky sed replacements.
  • Built for Stability: Bash scripts enforce strict safety (set -euo pipefail), active dependency checking, and shared VPN orchestration loops.
  • Fail-Safe Backups: Built-in CLI backup & restore features snapshot your configuration before merging to prevent data corruption.
  • Secure Networking: First-class Gluetun VPN integration. All traffic from download clients strictly routes through the VPN context.

The Stack

Core (included, auto-configured)

  • Media Server: Jellyfin (recommended), Emby, or Plex
  • Download Client: qBittorrent
  • Managers: Sonarr, Radarr
  • Indexing: Prowlarr
  • Request Management: Seerr
  • Quality Profiles: Recyclarr
  • Management: Portainer

Optional (via compose/custom.yaml)

  • Music Manager: Lidarr
  • Usenet Downloader: SABnzbd
  • Subtitles: Bazarr
  • Update Notifications: Watchtower

Installation

Linux / WSL2

bash / zsh:

bash <(curl -fsSL https://raw.githubusercontent.com/soulis-1256/assemblrr/main/platform/linux/bootstrap.sh)

fish (no <(...) process substitution — use psub instead):

bash (curl -fsSL https://raw.githubusercontent.com/soulis-1256/assemblrr/main/platform/linux/bootstrap.sh | psub)

Windows (PowerShell)

Ensure Docker Desktop is running before execution.

irm https://raw.githubusercontent.com/soulis-1256/assemblrr/main/platform/windows/bootstrap.ps1 | iex

Usage (Assemblrr CLI)

The assemblrr command is injected into your path locally to orchestrate the Docker containers seamlessly.

assemblrr start                # Start all services (with VPN verification)
assemblrr stop                 # Stop all services
assemblrr restart              # Restart all services
assemblrr status               # Show container status
assemblrr health               # Show healthcheck status of all services
assemblrr logs [service]       # Follow logs (all services, or one)
assemblrr config               # Show current configuration
assemblrr configure            # Auto-configure APIs (Radarr, Prowlarr) using jq
assemblrr reconfigure          # Re-run the setup wizard
assemblrr backup /target/dir   # Create a safe snapshot of the configuration
assemblrr restore /backup.tar.gz  # Non-destructive config wipe and restore
assemblrr update-containers    # Pull latest images and restart (offers a backup first)
assemblrr update-cli           # Update the CLI to the latest version
assemblrr check-vpn            # Actively poll VPN health
assemblrr uninstall            # Remove everything (asks before deleting data)

Uninstall

assemblrr uninstall stops and removes the containers, network, CLI, and installation directory. Your media is kept unless you explicitly delete it. If the CLI is missing or the installation is broken, you can still run the bundled CLI directly (bash ~/assemblrr/cli.sh uninstall) or remove everything by hand.

See docs/uninstall.md for the complete removal guide, including a full inventory of what an installation creates.

Configuration & Architecture

Configuration lives in your installation directory (default: ~/assemblrr).

  • .env: Environment overrides (ASSEMBLRR_HOST for remote proxying, PUID/PGID, API variables).
  • compose/base.yaml: Immutable core services.
  • compose/vpn.yaml: Gluetun routing overlays.
  • config/: Persistent data safe from container teardowns.

Development

Windows (powershell)

git clone https://github.com/soulis-1256/assemblrr.git
cd assemblrr
.\platform\windows\bootstrap-dev.ps1 -Full        # Full setup (copies files to WSL2 and runs setup.sh)
.\platform\windows\bootstrap-dev.ps1 -Full -Clean # Uninstalls the existing installation, then does a full setup
.\platform\windows\bootstrap-dev.ps1 -Update      # Sync changed files to WSL2 (no setup re-run, useful for cli changes)

Linux/WSL2

git clone https://github.com/soulis-1256/assemblrr.git
cd assemblrr
bash bin/setup.sh

Acknowledgments

Originally inspired by YAMS (rogsme/yams); Assemblrr has since been rewritten and expanded into its own project.

License

GNU General Public License v3.0