Automatic Video Library Manager for TV Shows.
5M+
⁠
⁠
⁠
⁠
⁠
⁠
To run Medusa from source you will need one of these Python versions:
Start here⁠ to read the installation guides for different setups.
There's a direct build available on Dockerhub⁠ which is updated directly from this repo on every commit to master and the develop branch. Use the tag master for the master branch (releases) and develop for the develop branch.
Images are available for the three main architectures amd64, arm and arm64.
Here are some example snippets to help you get started creating a container.
docker-compose (recommended, click here for more info⁠)
---
version: "2.1"
services:
medusa:
image: pymedusa/medusa
container_name: medusa
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- <path to data>:/config
- <path to downloads>:/downloads
- <path to tv shows>:/tv
ports:
- 8081:8081
restart: unless-stopped
docker cli (click here for more info)⁠
docker run -d \
--name=medusa \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 8081:8081 \
-v <path to data>:/config \
-v <path to downloads>:/downloads \
-v <path to tv shows>:/tv \
--restart unless-stopped \
pymedusa/medusa
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.
| Parameter | Function |
|---|---|
| -p 8081 | The port for the Medusa webui |
| -e PUID=1000 | for UserID - see below for explanation |
| -e PGID=1000 | for GroupID - see below for explanation |
| -e TZ=Europe/London | Specify a timezone to use e.g. Europe/London |
| -v /config | Medusa config |
| -v /downloads | Download location |
| -v /tv | TV Shows location |
When using volumes (-v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance PUID=1000 and PGID=1000, to find yours use id user as below:
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
Our images support multiple architectures such as x86-64, arm64 and armhf.
Simply pulling pymedusa/medusa should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
Web interface is at <your ip>:8081.
Set paths for downloads, tv-shows to match docker mappings via the webui, for more information check out Medusa⁠.
We do not recommend or support updating apps inside the container. For each Medusa update pull a new docker image.
Below are the instructions for updating containers:
Update all images: docker-compose pull
docker-compose pull medusaLet compose update all containers as necessary: docker-compose up -d
docker-compose up -d medusaYou can also remove the old dangling images: docker image prune
docker pull pymedusa/medusadocker stop medusadocker rm medusadocker image prunedocker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once medusa
Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose.

Before using this with your existing database (sickbeard.db) please make a backup copy of it and delete any other database files such as cache.db and failed.db if present
We HIGHLY recommend starting out with no database files at all to make this a fresh start but the choice is at your own risk.
A partial list can be found here⁠. Jackett is supported, however it must be configured as follows⁠.
RARBG⁠
·
NZB.cat⁠
·
NZBGeek⁠
·
DOGnzb⁠
·
DanishBits⁠
·

news.md has moved to a separate repo, click here⁠
The changelog can be found here⁠ The changelog for versions prior to v0.2.7 can be found here⁠
This product uses MediaInfo⁠ library, Copyright (c) 2002-2016 MediaArea.net SARL⁠
Binaries for Windows and MacOS are included. Linux distributions need to manually install MediaInfo. MediaInfo is optional, but highly recommended since it increases the number of supported formats for video metadata extraction. Basic MKV metadata is supported when MediaInfo is not installed.
Content type
Image
Digest
sha256:db7af901d…
Size
94.1 MB
Last updated
5 days ago
Requires Docker Desktop 4.37.1 or later.