Plex Media Server

| Registry | ghcr.io/daemonless/plex |
| Source | daemonless/plex |
| Website | plex.tv |
Version tags#
| Tag | Description | Best for |
|---|---|---|
latest |
Upstream binary, built from the official release | Most users — recommended |
Before deploying, make sure your host is configured — see the Quick Start guide for host setup and the security model behind host vs. container privileges.
Deployment#
services:
plex:
image: "ghcr.io/daemonless/plex:latest"
container_name: plex
environment:
- PUID=1000 # User ID for the application process
- PGID=1000 # Group ID for the application process
- TZ=UTC # Timezone for the container
- VERSION=container # Plex update channel (container, public, plexpass)
- PLEX_CLAIM= # Optional: Claim token — get one at https://plex.tv/claim
volumes:
- "/path/to/containers/plex:/config"
- "/path/to/containers/plex/transcode:/transcode" # optional
- "/path/to/movies:/movies"
- "/path/to/tv:/tv"
restart: unless-stoppedEnvironment 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 |
VERSION |
container |
Plex update channel (container, public, plexpass) |
PLEX_CLAIM |
— | Optional claim token — get one at plex.tv/claim |
Volumes#
| Path | Description |
|---|---|
/config |
Configuration directory |
/transcode |
Transcode directory (optional) |
/movies |
Movie library |
/tv |
TV series library |
Host networking#
Plex requires network_mode: host on FreeBSD Podman. Bridge networking causes the Plex setup wizard to reject all connections with "Not authorized" — it only allows access from 127.0.0.1, and bridge networking makes all connections appear to come from the gateway IP.
With host networking, ports are bound directly on the host — no ports: mapping needed.
Initial setup#
The Plex setup wizard must be accessed from localhost. After starting the container, create an SSH tunnel from your local machine:
ssh -L 32400:localhost:32400 <your-host>Then open http://localhost:32400/web in your browser to complete setup.
Implementation details#
- Architectures: amd64
- User:
bsd(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.1).
The same image also deploys with AppJail and Ansible — see the full Quick Start guide.