Manage your media server on balena.io
- A device running balenaOS with sufficient processing power
- Adequate storage space in the data partition for your media
- A balenaCloud account (optional)
- A Tailscale account for remote access (optional)
- A custom domain name for HTTPS access (optional)
- Create a balenaCloud account and application
- Flash a device with balenaOS
- Clone this repository
- Push the project to your balena application using the balena CLI
Environment Variables can be applied to all services in an application, or only one service, and can be applied fleet-wide to apply to multiple devices.
TZ: Inform services of the timezone in your location.
- Provide the
TS_AUTHKEYenvironment variable - Access services via
https://${TS_CERT_DOMAIN}:${service_port}
Read more at https://tailscale.com/blog/docker-tailscale-guide and https://tailscale.com/kb/1282/docker
- Add proxy hosts via
http:${service-name}:${service-port} - Set up custom domains and SSL certificates as needed
Read more at https://nginxproxymanager.com/
Docktail automatically exposes services via Tailscale based on Docker labels. Before using Docktail, configure your Tailscale admin console at https://login.tailscale.com/admin/services.
Create service definitions (Services → Add service):
Create a service for each application you want to expose with port
443:duplicati-mediaserverjellyfinnetdata-mediaservernginx-mediaservernzbhydraombioverseerrplexprofilarrprowlarrradarrsabnzbdsonarrsyncthing-mediaservertautulli
(Optional) Configure service tags:
- Navigate to Access Controls
- Add tags for service identification (e.g.,
tag:mediaserver-service) - Tag your Docker host (e.g.,
tag:mediaserver)
(Recommended) Enable auto-approval:
- Navigate to Access Controls and edit your ACL policy
- Add auto-approvers to skip manual approval for service advertisements:
{"autoApprovers":{"services":{"tag:mediaserver-service": ["tag:mediaserver"] } } }- This allows devices tagged
tag:mediaserverto automatically advertise services taggedtag:mediaserver-service
Read more at https://github.com/marvinvr/docktail and https://tailscale.com/kb/1552/tailscale-services
Each service below includes its forward host and port, along with basic setup instructions.
Services can be disabled by setting the DISABLE environment variable to a truthy value.
- Forward host and port:
http://duplicati:8200 - Set a password with the
DUPLICATI__WEBSERVICE_PASSWORDenvironment variable - Configure backups using sources from
/volumes/
Read more at https://docs.linuxserver.io/images/docker-duplicati
- Forward host and port:
http://jellyfin:8096 - Set
JELLYFIN_PublishedServerUrlto your public server URL - Create libraries using folders in
/downloads/
Read more at https://docs.linuxserver.io/images/docker-jellyfin
- Forward host and port:
http://netdata:19999 - Set
PGIDenvironment variable (see README for details)
Read more at https://hub.docker.com/r/netdata/netdata
- Forward host and port:
http://nginx:81 - Default credentials:
- Email:
[email protected] - Password:
changeme
- Email:
Read more at https://nginxproxymanager.com/
- Forward host and port:
http://nzbhydra:5076
Read more at https://docs.linuxserver.io/images/docker-nzbhydra
- Forward host and port:
http://ombi:3579
Read more at https://docs.linuxserver.io/images/docker-ombi
- Forward host and port:
http://overseerr:5055
Read more at https://docs.linuxserver.io/images/docker-overseerr
- Forward host and port:
http://plex:32400 - Set
PLEX_CLAIMenvironment variable (obtain from https://plex.tv/claim) - Create libraries using folders in
/downloads/
Read more at https://docs.linuxserver.io/images/docker-plex
- Forward host and port:
http://profilarr:6868 - Configuration management tool for Radarr/Sonarr
- Automates importing and version control of custom formats and quality profiles
Read more at https://dictionarry.dev/profilarr-setup/installation
- Forward host and port:
http://prowlarr:9696
Read more at https://docs.linuxserver.io/images/docker-prowlarr
- Forward host and port:
http://radarr:7878 - Set base path to
/downloads/movies
Read more at https://docs.linuxserver.io/images/docker-radarr
- Forward host and port:
http://sabnzbd:8080 - Set download folders:
- Temporary:
/downloads/sabnzbd/incomplete - Completed:
/downloads/sabnzbd/complete
- Temporary:
Read more at https://docs.linuxserver.io/images/docker-sabnzbd
- Forward host and port:
http://sonarr:8989 - Set base path to
/downloads/tv
Read more at https://docs.linuxserver.io/images/docker-sonarr
- Forward host and port:
http://syncthing:8384 - Configure syncs using sources from
/volumes/
Read more at https://docs.linuxserver.io/images/docker-syncthing
- Forward host and port:
http://tautulli:8181 - Set Plex IP Address/Hostname to
plexand port to32400
Read more at https://docs.linuxserver.io/images/docker-tautulli
Please open an issue or submit a pull request with any features, fixes, or changes.