feat: add Jellyfin
This commit is contained in:
parent
3e1e94817a
commit
8a28c4952f
4
.gitignore
vendored
4
.gitignore
vendored
@ -15,4 +15,6 @@
|
|||||||
/pia-shared
|
/pia-shared
|
||||||
!/pia-shared/.gitkeep
|
!/pia-shared/.gitkeep
|
||||||
/letsencrypt
|
/letsencrypt
|
||||||
!/letsencrypt/.gitkeep
|
!/letsencrypt/.gitkeep
|
||||||
|
/jellyfin
|
||||||
|
!/jellyfin/.gitkeep
|
@ -94,6 +94,20 @@ The web UI login page can be disabled on for the local network in Settings > Web
|
|||||||
172.17.0.0/16
|
172.17.0.0/16
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Jellyfin
|
||||||
|
|
||||||
|
To enable [hardware transcoding](https://jellyfin.org/docs/general/administration/hardware-acceleration/),
|
||||||
|
depending on your system, you may need to update the following block:
|
||||||
|
|
||||||
|
```
|
||||||
|
devices:
|
||||||
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||||
|
- /dev/dri/card0:/dev/dri/card0
|
||||||
|
```
|
||||||
|
|
||||||
|
Generally, running Docker on Linux you will want to use VA-API, but the exact mount paths may differ depending on your
|
||||||
|
hardware.
|
||||||
|
|
||||||
## Heimdall
|
## Heimdall
|
||||||
|
|
||||||
Applications can be added in Items > Add. The URLs should be the static IP, ie: `http://192.168.0.10/` for Sonarr
|
Applications can be added in Items > Add. The URLs should be the static IP, ie: `http://192.168.0.10/` for Sonarr
|
||||||
|
21
INSTALL.md
21
INSTALL.md
@ -3,8 +3,9 @@
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
Any Docker-capable recent Linux box.
|
Any Docker-capable recent Linux box.
|
||||||
I am using a fresh Ubuntu Server 20.04 on a repurposed laptop so this guide reflects it,
|
I am using a fresh Ubuntu Server 22.04 on a repurposed laptop so this guide reflects it,
|
||||||
but it would probably work with other distributions and different versions with a few tweaks.
|
but it would probably work with other distributions and different versions with a few tweaks.
|
||||||
|
I also tested this setup on a Synology DS220+ with DSM 7.0.
|
||||||
|
|
||||||
## Pre-Docker Steps
|
## Pre-Docker Steps
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ If not done during installation, install OpenSSH server for remote connection: `
|
|||||||
|
|
||||||
### Static IP
|
### Static IP
|
||||||
|
|
||||||
Set a static IP:
|
Set a static IP, assuming `192.168.0.10` and using Google DNS servers:
|
||||||
|
|
||||||
`sudo nano /etc//netplan/00-installer-config.yaml`
|
`sudo nano /etc//netplan/00-installer-config.yaml`
|
||||||
|
|
||||||
@ -32,7 +33,7 @@ network:
|
|||||||
version: 2
|
version: 2
|
||||||
```
|
```
|
||||||
|
|
||||||
Here, `192.168.0.10` is going to be the static IP, and we will use Google's DNS servers. Apply the plan:
|
Apply the plan:
|
||||||
|
|
||||||
`sudo netplan apply`
|
`sudo netplan apply`
|
||||||
|
|
||||||
@ -61,12 +62,16 @@ copy `/usr/libexec/docker/cli-plugins` rather than `$HOME/.docker/cli-plugins/do
|
|||||||
|
|
||||||
You may then run the applications with `sudo docker compose up -d`
|
You may then run the applications with `sudo docker compose up -d`
|
||||||
|
|
||||||
Then, to update the Sonarr/Radarr/Prowlarr base path, please run `./update-config.sh`.
|
Then, to update the Sonarr/Radarr/Prowlarr/Jellyfin base paths, please run `./update-config.sh`.
|
||||||
This is only needed for the first time, and will update their `config.xml` file to set the correct path.
|
This is only needed for the first time as it will update the application's configuration files to use the proper URL.
|
||||||
|
|
||||||
## NFS Share
|
## NFS Share (Optional)
|
||||||
|
|
||||||
|
It is now time to share the folders to other local devices using NFS, as it is easy to set up and fast.
|
||||||
|
|
||||||
|
This can be useful to share the media folder to a local player like Kodi or computers in the local network,
|
||||||
|
but may not be necessary if Jellyfin is going to be used to access the media.
|
||||||
|
|
||||||
It is now time to share the folders to other local devices using NFS, as it is easy to set up and fast.
|
|
||||||
Install the NFS kernel server:
|
Install the NFS kernel server:
|
||||||
|
|
||||||
`sudo apt-get install nfs-kernel-server`
|
`sudo apt-get install nfs-kernel-server`
|
||||||
|
@ -15,6 +15,7 @@ The following applications are available:
|
|||||||
- [qBittorrent](https://www.qbittorrent.org/): Bittorrent client with a complete web UI
|
- [qBittorrent](https://www.qbittorrent.org/): Bittorrent client with a complete web UI
|
||||||
- [PIA Wireguard VPN](https://github.com/thrnz/docker-wireguard-pia): Encapsulate qBittorrent traffic in
|
- [PIA Wireguard VPN](https://github.com/thrnz/docker-wireguard-pia): Encapsulate qBittorrent traffic in
|
||||||
[PIA](https://www.privateinternetaccess.com/) using [Wireguard](https://www.wireguard.com/) with port forwarding.
|
[PIA](https://www.privateinternetaccess.com/) using [Wireguard](https://www.wireguard.com/) with port forwarding.
|
||||||
|
- [Jellyfin](https://jellyfin.org/): Media server designed to organize, manage, and share digital media files to networked devices
|
||||||
- [Heimdall](https://heimdall.site/): Application dashboard
|
- [Heimdall](https://heimdall.site/): Application dashboard
|
||||||
- [Traefik](https://traefik.io/): Reverse proxy
|
- [Traefik](https://traefik.io/): Reverse proxy
|
||||||
- [Watchtower](https://containrrr.dev/watchtower/): Automated Docker images update
|
- [Watchtower](https://containrrr.dev/watchtower/): Automated Docker images update
|
||||||
@ -38,6 +39,7 @@ See [configuration](./CONFIGURATION.md).
|
|||||||
| Prowlarr | [linuxserver/prowlarr:develop](https://hub.docker.com/r/linuxserver/prowlarr) | /prowlarr | `develop` tag as it is not stable yet |
|
| Prowlarr | [linuxserver/prowlarr:develop](https://hub.docker.com/r/linuxserver/prowlarr) | /prowlarr | `develop` tag as it is not stable yet |
|
||||||
| PIA Wireguard VPN | [thrnz/docker-wireguard-pia](https://hub.docker.com/r/thrnz/docker-wireguard-pia) | | |
|
| PIA Wireguard VPN | [thrnz/docker-wireguard-pia](https://hub.docker.com/r/thrnz/docker-wireguard-pia) | | |
|
||||||
| qBittorrent | [linuxserver/qbittorrent:4.5.0-libtorrentv1](https://hub.docker.com/r/linuxserver/qbittorrent) | /qbittorrent | Uses VPN network<br>Using Libtorrent 1.x |
|
| qBittorrent | [linuxserver/qbittorrent:4.5.0-libtorrentv1](https://hub.docker.com/r/linuxserver/qbittorrent) | /qbittorrent | Uses VPN network<br>Using Libtorrent 1.x |
|
||||||
|
| Jellyfin | [linuxserver/jellyfin](https://hub.docker.com/r/linuxserver/jellyfin) | /jellyfin | |
|
||||||
| Heimdall | [linuxserver/heimdall](https://hub.docker.com/r/linuxserver/heimdall) | / | |
|
| Heimdall | [linuxserver/heimdall](https://hub.docker.com/r/linuxserver/heimdall) | / | |
|
||||||
| Traefik | [traefik](https://hub.docker.com/_/traefik) | | |
|
| Traefik | [traefik](https://hub.docker.com/_/traefik) | | |
|
||||||
| Watchtower | [watchtower](https://hub.docker.com/r/containrrr/watchtower) | | |
|
| Watchtower | [watchtower](https://hub.docker.com/r/containrrr/watchtower) | | |
|
||||||
@ -53,7 +55,6 @@ benefit from:
|
|||||||
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr): Proxy server to bypass Cloudflare protection, useful
|
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr): Proxy server to bypass Cloudflare protection, useful
|
||||||
for some indexers in Prowlarr
|
for some indexers in Prowlarr
|
||||||
- [Jackett](https://github.com/Jackett/Jackett): API Support for your favorite torrent trackers, as a Prowlarr replacement
|
- [Jackett](https://github.com/Jackett/Jackett): API Support for your favorite torrent trackers, as a Prowlarr replacement
|
||||||
- [Plex](https://www.plex.tv/): Plex Media Server
|
|
||||||
- [Pi-hole](https://pi-hole.net/): DNS that blocks ads
|
- [Pi-hole](https://pi-hole.net/): DNS that blocks ads
|
||||||
- Expose services with CloudFlare Tunnel if Tailscale is not enough
|
- Expose services with CloudFlare Tunnel if Tailscale is not enough
|
||||||
- you tell me!
|
- you tell me!
|
||||||
|
@ -135,6 +135,31 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
# network mode is not supported: https://github.com/containrrr/watchtower/issues/1286#issuecomment-1214291660
|
# network mode is not supported: https://github.com/containrrr/watchtower/issues/1286#issuecomment-1214291660
|
||||||
- com.centurylinklabs.watchtower.enable=false
|
- com.centurylinklabs.watchtower.enable=false
|
||||||
|
jellyfin:
|
||||||
|
image: lscr.io/linuxserver/jellyfin
|
||||||
|
container_name: jellyfin
|
||||||
|
environment:
|
||||||
|
- PUID=${USER_ID}
|
||||||
|
- PGID=${GROUP_ID}
|
||||||
|
- TZ=${TIMEZONE}
|
||||||
|
- JELLYFIN_PublishedServerUrl=${HOSTNAME}/jellyfin
|
||||||
|
volumes:
|
||||||
|
- ./jellyfin:/config
|
||||||
|
- ${DATA_ROOT}:/data
|
||||||
|
ports:
|
||||||
|
- "7359:7359/udp"
|
||||||
|
- "1900:1900/udp"
|
||||||
|
devices:
|
||||||
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||||
|
- /dev/dri/card0:/dev/dri/card0
|
||||||
|
restart: always
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.jellyfin.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/jellyfin`) || PathPrefix(`/jellyfin`))
|
||||||
|
- traefik.http.routers.jellyfin.tls=true
|
||||||
|
- traefik.http.routers.jellyfin.tls.certresolver=myresolver
|
||||||
|
- traefik.http.services.jellyfin.loadbalancer.server.port=8096
|
||||||
|
- traefik.http.services.jellyfin.loadbalancer.passhostheader=true
|
||||||
heimdall:
|
heimdall:
|
||||||
image: lscr.io/linuxserver/heimdall
|
image: lscr.io/linuxserver/heimdall
|
||||||
container_name: heimdall
|
container_name: heimdall
|
||||||
|
0
jellyfin/.gitkeep
Normal file
0
jellyfin/.gitkeep
Normal file
@ -23,5 +23,12 @@ do
|
|||||||
done
|
done
|
||||||
sed -i.bak "s/<UrlBase><\/UrlBase>/<UrlBase>\/prowlarr<\/UrlBase>/" ./prowlarr/config.xml && rm ./prowlarr/config.xml.bak
|
sed -i.bak "s/<UrlBase><\/UrlBase>/<UrlBase>\/prowlarr<\/UrlBase>/" ./prowlarr/config.xml && rm ./prowlarr/config.xml.bak
|
||||||
|
|
||||||
|
echo "Updating Jellyfin configuration..."
|
||||||
|
until [ -f ./jellyfin/network.xml ]
|
||||||
|
do
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
sed -i.bak "s/<BaseUrl \/>/<BaseUrl>\/jellyfin<\/BaseUrl>/" ./jellyfin/network.xml && rm ./jellyfin/network.xml.bak
|
||||||
|
|
||||||
echo "Restarting containers..."
|
echo "Restarting containers..."
|
||||||
docker compose restart radarr sonarr prowlarr
|
docker compose restart radarr sonarr prowlarr jellyfin
|
||||||
|
Loading…
Reference in New Issue
Block a user