/seedbox

A Docker-powered seedbox with persistent data and more cool stuff.

Primary LanguageShellMIT LicenseMIT

Seedbox

An extensive and hackable collection of containerized services to set up a seedbox and personal media server.


✨ Features

  • Easy to configure personal media server without needing too much technical skills
  • Compatible with multiple systems (Linux servers, desktops, Synology NAS...)
  • Automatic HTTPS ceritificates management and renewal
    • Support for HTTP only too if required for your use-case
  • Everything is hackable
    • Add your own services
    • Disable the ones you do not want
    • Customize or add your own routing rules to integrate with existing services
    • Tweak any service to your need by using custom file parameter on any service
  • VPN support with multiple providers
    • Hide the service(s) of your choice behind a VPN tunnel
    • Non mandatory
  • Declarative configuration
  • Persistent data for your media
  • Install & update using the same script
  • Start with the Configuration Guide

⚠️ News

Version 2 is released, please make sure you read this V2 Migration Guide as there are breaking changes!

📦 Included Applications

Application Web Interface Docker image Version (image tag) Notes
Plex plex.yourdomain.com linuxserver/plex latest Media Streaming
Deluge deluge.yourdomain.com linuxserver/deluge latest Torrents downloader
Flood flood.yourdomain.com jesec/flood latest Web client for Deluge (experimental)
Sonarr sonarr.yourdomain.com linuxserver/sonarr develop TV Shows monitor
Radarr radarr.yourdomain.com linuxserver/radarr develop Movies monitor
Bazarr bazarr.yourdomain.com linuxserver/bazarr latest Subtitles monitor
Lidarr lidarr.yourdomain.com linuxserver/lidarr develop Music monitor
Readarr readarr.yourdomain.com linuxserver/readarr nightly Ebook and comic monitor
Calibre calibre-admin.yourdomain.com linuxserver/calibre latest eBook management
Calibre-web calibre.yourdomain.com linuxserver/calibre-web nightly Book management UI
Komga komga.yourdomain.com gotson/komga latest Comic Book Manager
Kavita Kavita.yourdomain.com gotson/komga latest Comic Book Manager
Ombi ombi.yourdomain.com linuxserver/ombi latest Plex content requests
Overseerr overseerr.yourdomain.com linuxserver/overseerr latest Plex content requests
Jackett jackett.yourdomain.com linuxserver/jackett latest Tracker indexer
Prowlarr prowlarr.yourdomain.com linuxserver/prowlarr develop Tracker indexer
JDownloader jdownloader.yourdomain.com jlesage/jdownloader-2 latest Direct downloader
Tautulli (plexPy) tautulli.yourdomain.com linuxserver/tautulli latest Plex stats and admin
Tdarr tdarr.yourdomain.com haveagitgat/tdarr latest Re-encode files
NextCloud nextcloud.yourdomain.com linuxserver/nextcloud latest Files management
NextCloud-db (MariaDB) not reachable mariadb 10 DB for Nextcloud
Portainer portainer.yourdomain.com portainer/portainer latest Container management
Netdata netdata.yourdomain.com netdata/netdata latest Server monitoring
Duplicati duplicati.yourdomain.com linuxserver/duplicati latest Backups
Heimdall yourdomain.com linuxserver/heimdall latest Main dashboard
Syncthing syncthing.yourdomain.com linuxserver/syncthing latest P2P files sharing
Traefik traefik.yourdomain.com traefik latest Traefik reverse proxy (access to admin dashboard)
Gluetun - qmcgaw/gluetun latest VPN client
Any application you want! whatever.yourdomain.com Any image Any tag Any service - See the Configuration Guide

🌐 Traefik

The front-end reverse proxy (Traefik - check this guide if you still have the seedbox with Traefik v1) routes based on the lowest level subdomain (e.g. deluge.example.com would route to deluge). Since this is how the router works, it is recommended for you to get a top level domain. If you do not have one, you can edit your domains locally by changing your hosts file or use a browser plugin that changes the host header.

Traefik takes care of valid Let's Encrypt certificates and auto-renewal.

Note: Plex is also available directly through the 32400 port without going through the reverse proxy.

You can also add your own Traefik rules to integrate with other services (deployed wihthin docker or somewhere else on your LAN, or even on the Internet). Check the Configuration Guide.

⚙️ Installation

Dependencies

  • Docker >= 20.10
  • Docker Compose >= 2.2 (2.16+ recommended)
  • local-persist Docker plugin: installed directly on host (not in container). This is a volume plugin that extends the default local driver’s functionality by allowing you specify a mountpoint anywhere on the host, which enables the files to always persist, even if the volume is removed via docker volume rm. Use systemd install for Ubuntu.
  • jq >= 1.5
  • yq >= 4

Prepare your host

Before running, please create the volumes which will be statically mapped to the ones on the host: For example:

sudo su -c "mkdir /data && mkdir /data/config && mkdir /data/torrents"
./init.sh

Edit the .env file and change the variables as desired. The variables are all self-explanatory.

Review the configuration

The configuration lives in the config.yaml file.

All you need to know is located in the Configuration Guide.

Running & updating

./run-seedbox.sh

All services and synamic configuration will be automatically created without further action from your part.

Make sure you install the dependencies and finish configuration before doing this.

Where is my data?

All data is saved in the docker volumes seedbox_config or seedbox_torrents. These volumes are mapped to the config and torrents folders located in /data on the host. You can change these static paths in the docker-compose.yml file. Thanks to the local-persist Docker plugin, the data located in these volumes is persistent, meaning that volumes are not deleted, even when using the docker-compose down command. It would be a shame to loose everything by running a simple docker command ;-)

Configure your apps