Jellyfin
| Description / name | Input element |
|---|---|
| Container Registry | |
| Container Configuration Root Path | |
| Global /movies Path | |
| Global /tv Path | |
| Timezone | |
| User ID | |
| Group ID | |
| Jellyfin Host Port | |
| Jellyfin /config Path | |
| Jellyfin /cache Path |
The Free Software Media System on FreeBSD.
Version Tags
| Tag | Description | Best For |
|---|---|---|
latest |
FreeBSD Port. Installs from latest packages. | Most users. Matches Linux Docker behavior. |
pkg |
FreeBSD Port. Installs from Quarterly ports. | Stability. Uses system libraries. |
pkg-latest |
FreeBSD Port. Installs from Latest ports. | Bleeding edge system packages. |
Prerequisites
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.
Memory Locking (Critical)
This application is built on .NET and requires memory locking enabled in the jail.
You must use the allow.mlock annotation and have a patched ocijail.
Deployment
services:
jellyfin:
image: ghcr.io/daemonless/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- /path/to/containers/jellyfin:/config
- /path/to/containers/jellyfin/cache:/cache # optional
- /path/to/tv:/tv # optional
- /path/to/movies:/movies # optional
ports:
- 8096:8096
annotations:
org.freebsd.jail.allow.mlock: "true"
restart: unless-stopped
podman run -d --name jellyfin \
-p 8096:8096 \
--annotation 'org.freebsd.jail.allow.mlock=true' \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=UTC \
-v /path/to/containers/jellyfin:/config \
-v /path/to/containers/jellyfin/cache:/cache \ # optional
-v /path/to/tv:/tv \ # optional
-v /path/to/movies:/movies \ # optional
ghcr.io/daemonless/jellyfin:latest
- name: Deploy jellyfin
containers.podman.podman_container:
name: jellyfin
image: ghcr.io/daemonless/jellyfin:latest
state: started
restart_policy: always
env:
PUID: "1000"
PGID: "1000"
TZ: "UTC"
ports:
- "8096:8096"
volumes:
- "/path/to/containers/jellyfin:/config"
- "/path/to/containers/jellyfin/cache:/cache" # optional
- "/path/to/tv:/tv" # optional
- "/path/to/movies:/movies" # optional
annotation:
org.freebsd.jail.allow.mlock: "true"
Access the Web UI at: http://localhost:8096
Interactive Configuration
Parameters
Environment Variables
| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
User ID for the application process |
PGID |
1000 |
Group ID for the application process |
TZ |
UTC |
Timezone for the container |
Volumes
| Path | Description |
|---|---|
/config |
Configuration directory |
/cache |
Cache directory (Optional) |
/tv |
TV Series library (Optional) |
/movies |
Movie library (Optional) |
Ports
| Port | Protocol | Description |
|---|---|---|
8096 |
TCP | Web UI |
Implementation Details
- Architectures: amd64
- User:
bsd(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.0). - .NET App: Requires
--annotation 'org.freebsd.jail.allow.mlock=true'and a patched ocijail.
Website Source Code FreshPorts
Need help? Join our Discord community.