1 jellyfin
Luca Matteo Spoljarevic edited this page 2026-02-27 21:45:51 +01:00

Jellyfin

Jellyfin is a free, open-source media server for movies, TV shows, and music. This setup runs two instances with Podman Compose: one main and one “NSFW” (separate libraries).


What the compose file does

Service: jellyfin

  • Image: docker.io/jellyfin/jellyfin:latest
  • Port: 8068 → container 8096
  • Restart: unless-stopped
  • Volumes:
    • Config: /mnt/storage/jellyfin/data/config/config
    • Cache: /mnt/storage/jellyfin/data/cache/cache
    • Media: /mnt/storage/jellyfin/media/media

Service: jellyfin-nsfw

  • Same image and structure, separate container.
  • Port: 8069 → container 8096
  • Volumes: Use /mnt/storage/jellyfin-nsfw/ for config, cache, and media.

Each instance has its own config and media paths so libraries and settings stay separate.


Prerequisites

  • Podman and Podman Compose installed
  • Host directories created:
    • Main: config, cache, media under /mnt/storage/jellyfin/data/ and /mnt/storage/jellyfin/
    • NSFW: same under /mnt/storage/jellyfin-nsfw/

How to use

  1. Go to the project folder:

    cd jellyfin
    
  2. Start both instances:

    podman-compose up -d
    
  3. Open the web UI:

    • Main: http://<your-host>:8068
    • NSFW: http://<your-host>:8069
  4. First run:
    Complete the setup wizard (language, admin user, add media libraries from /media).

  5. Stop:

    podman-compose down
    

Useful commands

Action Command
Start podman-compose up -d
Stop podman-compose down
Logs podman-compose logs -f
Restart podman-compose restart

Customization

  • To run only one instance, comment out the other service in podman-compose.yml or use:
    podman-compose up -d jellyfin
    
  • Change ports by editing the ports mapping (e.g. 8068:80968096:8096).
  • Add or change media by placing files in the host media path and adding/scanning libraries in the Jellyfin UI.