Skip to Content
DocsAdmin GuidePlex Operations

This guide covers operator concerns once Plex is installed. For first- install instructions see Install Plex on Quazzar.

Where we store things

  • plex_settings (one row, id=1) — install source, auth path, AES-GCM-encrypted X-Plex-Token, library/media paths, optional Caddy route id.
  • plex_install_jobs — per-install audit trail with progress and last 200 lines of install log.

The X-Plex-Token is encrypted with AES-256-GCM under a key derived from the node secret via HKDF-SHA256 (info="plex.token.v1"). Losing the SQLite file means losing the token; you re-claim from /server/plex.

Recovering a lost token (Path A)

After a backup restore that omitted the SQLite file:

  1. Go to Server → Plex.
  2. The page shows “Plex is running but isn’t linked to a plex.tv account yet” — click Get new claim token.
  3. Paste the token. The OS polls /myplex/account and re-seals the resulting X-Plex-Token into plex_settings.

Migrating Docker ↔ SystemD

In-place migration isn’t supported. To move:

  1. Server → Plex → Stop.
  2. Danger Zone → Uninstall (leave the Purge library data checkbox unticked to keep your library DB on disk).
  3. Run Install again, picking the new method. Point the wizard at the same library path so Plex re-uses your existing library DB.

Custom Caddy rules

The wizard auto-registers <your-domain> → 127.0.0.1:32400 via the routes-domains-manager when you supply a custom domain on the self-hosted install path. To add HSTS, custom headers, or restrict by IP, edit the route from Server → Domains & Routes — Plex’s route is listed by its host.

On-disk file locations

WhatDockerSystemD
Server data<library_path> (bind-mounted as /config)/var/lib/plexmediaserver/
Logsdocker logs quazzar-plexjournalctl -u plexmediaserver
Config XML<library_path>/Library/Application Support/Plex Media Server/Preferences.xml/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml

Uninstall behaviour

POST /api/plex/uninstall (or the Danger Zone button on /server/plex):

  • Docker: docker stop && docker rm quazzar-plex.
  • SystemD: systemctl disable --now plexmediaserver then apt-get remove -y plexmediaserver (falls back to dnf remove on RHEL-family).
  • If purge_data is true, rm -rf <library_path> runs as root.
  • The plex_settings row is reset to the empty-install state but library_path / media_path are kept so a re-install can pick them up by default.