# 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.**