Skip to content

How to setup Jellyfin (with Docker & Caddy)

Ready to use

Description

Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.

It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps.

Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support.

There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it.

Create a DNS record

Go to cPanel and add a new record (e.g. jellyfin.akdscloud.eu).

Caddy

jellyfin.akdscloud.eu:443 {
    header Strict-Transport-Security max-age=31536000;
    reverse_proxy localhost:8095
}

Folders

Create the folder structure.

mkdir -p ~/srv/services/jellyfin/{config,cache} ~/srv/common/downloads

Docker

  1. Add the jellyfin section to your docker-compose.yml file:

    services:
      jellyfin:
        image: jellyfin/jellyfin:latest
        container_name: jellyfin
        environment:
          - TZ=Europe/Bucharest
        ports:
          - "8096:8096"
          - "8920:8920"  # Optional, for HTTPS
        volumes:
          - ./config:/config
          - ./cache:/cache
          - ../../common/downloads:/downloads
        restart: unless-stopped
    
  2. Download and start jellyfin:

    docker compose up -d
    
  3. Restart Caddy to get an SSL certificate (details here)

Try it out

See if you can access the Jellyfin web interface.

Troubleshooting

If it doesn't work, see the troubleshooting guide.

Configuration

Admin password

Set a strong admin password.

Official site

Github page