Jellyswarrm

Jellyswarrm

Docker app from LubricantJam's Repository

Overview

Combine all your Jellyfin Servers into one.

Jellyswarrm

Many servers. Single experience.

Logo Banner

MIT License Current Release

Jellyswarrm is a reverse proxy that lets you combine multiple Jellyfin servers into one place. If you’ve got libraries spread across different locations or just want everything together, Jellyswarrm makes it easy to access all your media from a single interface.


Library

Server Selection User Mappings Settings

Features

[!WARNING] Jellyswarrm is still in early development. It works, but some features are incomplete or missing. If you run into issues, please report them on the GitHub Issues page.

✅ Working

  • Unified Library Access – Browse media from multiple Jellyfin servers in one place.
  • Direct Playback – Play content straight from the original server without extra overhead.
  • User Mapping – Link accounts across servers for a consistent user experience.
  • API Compatibility – Appears as a normal Jellyfin server, so existing apps and tools still work.
  • Server Federation – Automatically sync users across connected servers.
  • User Page – Personal dashboard for managing credentials and libraries.

⚠️ In Progress

  • QuickConnect – Sign in on one device by approving the code from another authenticated device.
  • Websocket Support – Needed for real-time features like SyncPlay (not fully reliable yet).
  • Audio Streaming – May not function correctly (still untested in many cases).
  • Automatic Bitrate Adjustment – Stream quality based on network conditions isn’t supported yet.
  • Media Management – Features like adding or deleting media libraries through Jellyswarrm are not implemented yet.

Deployment

The easiest way to run Jellyswarrm is with the prebuilt Docker images. Here’s a minimal docker-compose.yml example to get started:

services:
  jellyswarrm:
    image: ghcr.io/llukas22/jellyswarrm:latest
    container_name: jellyswarrm
    restart: unless-stopped
    ports:
      - 3000:3000
    volumes:
      - ./data:/app/data
    environment:
      - JELLYSWARRM_USERNAME=admin
      - JELLYSWARRM_PASSWORD=jellyswarrm # ⚠️ Change this in production!

Once the container is running, open:

  • Web UI (setup & management): http://[JELLYSWARRM_HOST]:[JELLYSWARRM_PORT]/ui – Log in with the username and password you set in the environment variables. – From here, you can add your Jellyfin servers and configure user mappings.

  • Bundled Jellyfin Web Client: http://[JELLYSWARRM_HOST]:[JELLYSWARRM_PORT]

For advanced configuration options, check out the ui and configuration documentation.


Local Development

Getting Started

To get started with development, you'll need to clone the repository along with its submodules. This ensures you have all the necessary components for a complete build:

git clone --recurse-submodules https://github.com/LLukas22/Jellyswarrm.git

If you've already cloned the repository, you can initialize the submodules separately:

git submodule init
git submodule update
Docker

The quickest way to get Jellyswarrm up and running is with Docker. Simply use the provided docker-compose configuration:

docker compose up -d

This will build and start the application with all necessary dependencies, perfect for both development and production deployments.

Native Build

For a native development setup, ensure you have both Rust and Node.js installed on your system.

First, install the UI dependencies. You can use the convenient VS Code task Install UI Dependencies from the tasks.json file, or run it manually:

cd ui
npm install
cd ..

Once the dependencies are installed, build the entire project with:

cargo build --release

The build process is streamlined thanks to the included build.rs script, which automatically compiles the web UI and embeds it into the final binary for a truly self-contained application.

FAQ

  1. Why not just add multiple servers directly in the Jellyfin app?
    Some Jellyfin apps do support multiple servers, but switching between them can be inconvenient. Jellyswarrm brings everything together in one place and also merges features like Next Up and Recently Added across all servers. This way, you can easily see what’s new in your own libraries or what your friends have added.

  2. Will Jellyswarrm work with my existing Jellyfin apps?
    Most likely! Jellyswarrm presents itself as a standard Jellyfin server, so most clients should work out of the box. That said, not every Jellyfin client has been tested, so a few may have issues.

  3. Why use Jellyswarrm instead of mounting a remote library via e.g. SMB?
    Jellyswarrm is built to connect your servers with your friends’ servers across different networks. Setting up SMB in these cases can be complicated, and performance is often worse. With Jellyswarrm, content is streamed directly from the original server, so all the heavy lifting (like transcoding) happens where the media actually lives.

Install Jellyswarrm on Unraid in a few clicks.

Find Jellyswarrm in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Jellyswarrm Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/llukas22/jellyswarrm:latest
Last Updated2026-07-18
First Seen2025-10-16

Runtime arguments

Web UI
http://[IP]:[PORT:3000]
Network
host
Shell
bash
Privileged
false

Template configuration

Web UI PortPorttcp
Target
3000
Value
3000
Data PathPathrw

Specify the path to the data directory.

Target
/app/data
Value
/mnt/user/appdata/jellyswarrm
Jellyswarrm UsernameVariable

The username for the Jellyswarrm server.

Target
JELLYSWARRM_USERNAME
Jellyswarrm PasswordVariable

The password for the Jellyswarrm server.

Target
JELLYSWARRM_PASSWORD