Skip to main content

Quickstart Guide

This guide will help you get Jellyfin Server running quickly for development or testing. For production deployments, see the Installation guide.
This quickstart assumes you have basic familiarity with the command line and either .NET development or Docker.

Choose Your Method

The quickest way to get Jellyfin running is with Docker.
1

Pull the Jellyfin image

docker pull jellyfin/jellyfin:latest
2

Run the container

docker run -d \
  --name jellyfin \
  -p 8096:8096 \
  -v /path/to/config:/config \
  -v /path/to/cache:/cache \
  -v /path/to/media:/media \
  --restart unless-stopped \
  jellyfin/jellyfin:latest
Replace /path/to/config, /path/to/cache, and /path/to/media with actual paths on your system.
3

Access the web interface

Open your browser and navigate to:
http://localhost:8096
You’ll be greeted with the Jellyfin setup wizard.

Docker Compose

For a more permanent setup, create a docker-compose.yml:
docker-compose.yml
version: '3.8'
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    network_mode: host
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media
    restart: unless-stopped
    environment:
      - JELLYFIN_PublishedServerUrl=http://localhost:8096
Then run:
docker-compose up -d

Initial Setup Wizard

When you first access Jellyfin, you’ll be guided through a setup wizard:
1

Select Language

Choose your preferred language for the interface.
2

Create Admin Account

Set up the administrator account:
  • Username
  • Password (optional but recommended)
The first user created has full administrator privileges. Use a strong password for production deployments.
3

Configure Media Libraries

Add your media folders:
  • Click “Add Media Library”
  • Select content type (Movies, TV Shows, Music, etc.)
  • Browse to your media folder
  • Click “OK”
You can skip this step and add libraries later from the Dashboard.
4

Set Metadata Language

Choose preferred language for metadata and artwork downloads.
5

Configure Remote Access (Optional)

Configure if you want to access Jellyfin from outside your network.
6

Complete Setup

Click “Finish” to complete the wizard and start using Jellyfin!

Verify Installation

Check that everything is working correctly:

Check System Info

curl http://localhost:8096/System/Info/Public
Expected response:
{
  "LocalAddress": "http://localhost:8096",
  "ServerName": "Jellyfin Server",
  "Version": "10.9.0",
  "OperatingSystem": "Linux",
  "StartupWizardCompleted": true
}

Access API Documentation

Visit the interactive API docs:
http://localhost:8096/api-docs/swagger/index.html

Test API Endpoint

curl -X GET "http://localhost:8096/System/Ping"
Response:
"Jellyfin Server"

Common Issues

Change the port by setting an environment variable:
export JELLYFIN_PublishedServerUrl=http://localhost:8097
dotnet run --project Jellyfin.Server -- --port 8097
Ensure FFmpeg is installed and in your PATH:
ffmpeg -version
If not found, install using the instructions in the “From Source” tab above.
Verify .NET installation:
dotnet --version
If not found, install from https://dotnet.microsoft.com/download/dotnet/9.0
Jellyfin automatically creates its database on first run. If you see database errors:
  1. Stop the server
  2. Delete the config directory
  3. Restart and run setup wizard again

Next Steps

Detailed Installation

Platform-specific installation guides

API Reference

Explore the REST API documentation

Configuration

Configure Jellyfin for your needs

Development

Contributing and development guides

Development Resources

Project Structure

jellyfin/
├── Jellyfin.Server/          # Main server entry point
├── Jellyfin.Api/             # REST API controllers
├── MediaBrowser.Controller/  # Core business logic
├── Emby.Server.Implementations/
├── tests/                    # Unit and integration tests
└── deployment/              # Deployment configurations

Key Files

  • Jellyfin.Server/Program.cs - Application entry point
  • Jellyfin.Server/Startup.cs - ASP.NET Core configuration
  • Jellyfin.Server/Jellyfin.Server.csproj - Project configuration
  • Jellyfin.Api/Controllers/ - API endpoint implementations

Running Tests

# Run all tests
dotnet test

# Run specific test project
dotnet test tests/Jellyfin.Api.Tests

# Run with coverage
dotnet test --collect:"XPlat Code Coverage"
For active development, consider running the server with --nowebclient and hosting the web client separately for faster iteration.