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/.gitkeep
|
||||
/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
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
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
|
||||
|
||||
Any Docker-capable recent Linux box.
|
||||
I am using a fresh Ubuntu Server 20.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.
|
||||
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.
|
||||
I also tested this setup on a Synology DS220+ with DSM 7.0.
|
||||
|
||||
## Pre-Docker Steps
|
||||
|
||||
@ -14,7 +15,7 @@ If not done during installation, install OpenSSH server for remote connection: `
|
||||
|
||||
### 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`
|
||||
|
||||
@ -32,7 +33,7 @@ network:
|
||||
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`
|
||||
|
||||
@ -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`
|
||||
|
||||
Then, to update the Sonarr/Radarr/Prowlarr base path, 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.
|
||||
Then, to update the Sonarr/Radarr/Prowlarr/Jellyfin base paths, please run `./update-config.sh`.
|
||||
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:
|
||||
|
||||
`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
|
||||
- [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.
|
||||
- [Jellyfin](https://jellyfin.org/): Media server designed to organize, manage, and share digital media files to networked devices
|
||||
- [Heimdall](https://heimdall.site/): Application dashboard
|
||||
- [Traefik](https://traefik.io/): Reverse proxy
|
||||
- [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 |
|
||||
| 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 |
|
||||
| Jellyfin | [linuxserver/jellyfin](https://hub.docker.com/r/linuxserver/jellyfin) | /jellyfin | |
|
||||
| Heimdall | [linuxserver/heimdall](https://hub.docker.com/r/linuxserver/heimdall) | / | |
|
||||
| Traefik | [traefik](https://hub.docker.com/_/traefik) | | |
|
||||
| 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
|
||||
for some indexers in Prowlarr
|
||||
- [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
|
||||
- Expose services with CloudFlare Tunnel if Tailscale is not enough
|
||||
- you tell me!
|
||||
|
@ -135,6 +135,31 @@ services:
|
||||
labels:
|
||||
# network mode is not supported: https://github.com/containrrr/watchtower/issues/1286#issuecomment-1214291660
|
||||
- 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:
|
||||
image: lscr.io/linuxserver/heimdall
|
||||
container_name: heimdall
|
||||
|
0
jellyfin/.gitkeep
Normal file
0
jellyfin/.gitkeep
Normal file
@ -23,5 +23,12 @@ do
|
||||
done
|
||||
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..."
|
||||
docker compose restart radarr sonarr prowlarr
|
||||
docker compose restart radarr sonarr prowlarr jellyfin
|
||||
|
Loading…
Reference in New Issue
Block a user