diff --git a/README.md b/README.md index 564f9d2..a780973 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ * [folding@home](folding@home/) - calcolo distrubuito per la ricerca medica * [gitea](gitea/) - simil-github personale +* [jellyfin](jellyfin/) - simil-netflix (e simili) personale * [komga](komga/) - web reader per manga/comics * [metube](metube/) - frontend per youtube-dl * [miniflux](miniflux/) - feed rss minimale diff --git a/jellyfin/.env b/jellyfin/.env new file mode 100644 index 0000000..b2e2670 --- /dev/null +++ b/jellyfin/.env @@ -0,0 +1,12 @@ +# Generale +JELLYFIN_WEBUI_PORT=8096 +JELLYFIN_CLT_DSC_PORT=7359 +JELLYFIN_SVC_DSC_PORT=1900 +JELLYFIN_CONFIG=/config +JELLYFIN_DATA=/data + +# Jellyfin +TZ=Europe/Amsterdam +# ATTIVARE IN BASE AL PROPRIO HARDWARE E NON ATTIVARE ENTRAMBI, in quanto ne basta uno solo +#DOCKER_MODS=linuxserver/mods:jellyfin-amd # necessario per usare GPU AMD (anche quelle integrate) +#DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel # necessario per usare OpenCL-Intel \ No newline at end of file diff --git a/jellyfin/README.md b/jellyfin/README.md new file mode 100644 index 0000000..9ce75fc --- /dev/null +++ b/jellyfin/README.md @@ -0,0 +1,117 @@ +# Jellyfin in docker + +
+ +
+ +# Descrizione + +* [Sito ufficiale](https://jellyfin.org/) +* [Repo (Github)](https://github.com/linuxserver/docker-jellyfin) +* [Demo](https://demo.jellyfin.org/) Login: ```demo``` Password: ```lasciare vuoto``` +* [Documentazione](https://docs.linuxserver.io/images/docker-jellyfin) + +Jellyfin è un server per la gestione di film, serie tv e musica: + +- Interfaccia web personalizzabile tramite CSS +- Possibilità di organizzare i vostri file in collezioni +- Possibilità di modificare e importare i metadati locali, integrati e tramite servizi esterni (IMDb, OMDb, TvDB, etc) +- Multiutente, con possiblità di gestire l'accesso alle librerie (anche singolarmente) +- [Client ufficiali (e non) multi-piattaforma](https://jellyfin.org/docs/general/clients/index.html) +- [Transcodifica hardware](https://jellyfin.org/docs/general/administration/hardware-acceleration.html) + +# Struttura file e cartelle + +``` +/home/ +└── ~/ + └── docker/ + └── jellyfin/ + ├── config/ + ├── data/ + ├── .env + └── docker-compose.yml +``` +* `config/` - cartella dove risiedono i dati che servono a jellyfin +* `data/` - cartella dove vanno messi i film/serie tv/musica +* `.env` - file contenenti le variabili environment per il docker compose +* `docker-compose.yml` - file usato per creare il container + +Tutti i file e le cartelle devono essere creati a mano.
+ +# docker-compose + +`docker-compose.yml` +```yml +version: "3" +services: + jellyfin: + container_name: linuxserver-jellyfin + image: ghcr.io/linuxserver/jellyfin + restart: unless-stopped + ports: + - ${JELLYFIN_WEBUI_PORT:-8096}:8096 + - ${JELLYFIN_CLT_DSC_PORT:-7359}/udp:7359/udp # opzionale, servizio discovery per i client + - ${JELLYFIN_SVC_DSC_PORT:-1900}/udp:1900/udp # opzionale, servizio DLNA + env_file: .env + volumes: + - ${JELLYFIN_CONFIG:-/home/docker/jellyfin/config}:/config + - ${JELLYFIN_DATA:-/home/docker/jellyfin/data}:/data + #- /opt/vc/lib:/opt/vc/lib # percorso per librerie OpenMAX, necessario solo per RaspberryPi + devices: + - /dev/dri:/dev/dri # necessario per usare Intel VAAPI video encoding + #- /dev/vcsm:/dev/vcsm # necessario solo per usare Raspberry Pi MMAL video encoding + #- /dev/vchiq:/dev/vchiq # necessario solo per usare Raspberry Pi OpenMax video encoding + #- /dev/video10:/dev/video10 # necessario solo per usare Raspberry Pi V4L2 video encoding + #- /dev/video11:/dev/video11 # necessario solo per usare Raspberry Pi V4L2 video encoding + #- /dev/video12:/dev/video12 # necessario solo per usare Raspberry Pi V4L2 video encoding +``` + +`.env` +```bash +# Generale +JELLYFIN_WEBUI_PORT=8096 +JELLYFIN_CLT_DSC_PORT=7359 +JELLYFIN_SVC_DSC_PORT=1900 +JELLYFIN_CONFIG=/config +JELLYFIN_DATA=/data + +# Jellyfin +TZ=Europe/Amsterdam +# ATTIVARE IN BASE AL PROPRIO HARDWARE E NON ATTIVARE ENTRAMBI, in quanto ne basta uno solo +#DOCKER_MODS=linuxserver/mods:jellyfin-amd # necessario per usare GPU AMD (anche quelle integrate) +#DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel # necessario per usare OpenCL-Intel +``` + +# Reverse proxy + +Ancora non ho previsto l'uso di un reverse proxy. (Vedi [Todo](#Todo)) + +# Aggiornamenti + +[Watchtower](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/watchtower) aggiorna l'immagine automaticamente. + +Aggiornamento manuale: + +- `docker-compose pull`
+- `docker-compose up -d`
+- `docker image prune` + +# Backup e ripristino + +#### Backup + +Copiare a mano, tramite crontab o altro la cartella `jellyfin` (Vedi [Todo](#Todo)) + +#### Ripristino + +* spegnere il container `docker-compose down`
+* cancellare l'intera cartella `jellyfin`
+* dal backup copiare la cartella `jellyfin`
+* far partire il container `docker-compose up -d` + +# Todo + +Implementare: +- reverse proxy: **[caddy](https://caddyserver.com/) o [traefik](https://doc.traefik.io/traefik/).** +- backup: **[borg](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/borg_backup) per fare i backup giornalieri completi.** diff --git a/jellyfin/docker-compose.yml b/jellyfin/docker-compose.yml new file mode 100644 index 0000000..f7bc012 --- /dev/null +++ b/jellyfin/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3" +services: + jellyfin: + container_name: linuxserver-jellyfin + image: ghcr.io/linuxserver/jellyfin + restart: unless-stopped + ports: + - ${JELLYFIN_WEBUI_PORT:-8096}:8096 + - ${JELLYFIN_CLT_DSC_PORT:-7359}/udp:7359/udp # opzionale, servizio discovery per i client + - ${JELLYFIN_SVC_DSC_PORT:-1900}/udp:1900/udp # opzionale, servizio DLNA + env_file: .env + volumes: + - ${JELLYFIN_CONFIG:-/home/docker/jellyfin/config}:/config + - ${JELLYFIN_DATA:-/home/docker/jellyfin/data}:/data + #- /opt/vc/lib:/opt/vc/lib # percorso per librerie OpenMAX, necessario solo per RaspberryPi + devices: + - /dev/dri:/dev/dri # necessario per usare Intel VAAPI video encoding + #- /dev/vcsm:/dev/vcsm # necessario solo per usare Raspberry Pi MMAL video encoding + #- /dev/vchiq:/dev/vchiq # necessario solo per usare Raspberry Pi OpenMax video encoding + #- /dev/video10:/dev/video10 # necessario solo per usare Raspberry Pi V4L2 video encoding + #- /dev/video11:/dev/video11 # necessario solo per usare Raspberry Pi V4L2 video encoding + #- /dev/video12:/dev/video12 # necessario solo per usare Raspberry Pi V4L2 video encoding \ No newline at end of file