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:
- Go to Server → Plex.
- The page shows “Plex is running but isn’t linked to a plex.tv account yet” — click Get new claim token.
- Paste the token. The OS polls
/myplex/accountand re-seals the resulting X-Plex-Token intoplex_settings.
Migrating Docker ↔ SystemD
In-place migration isn’t supported. To move:
- Server → Plex → Stop.
- Danger Zone → Uninstall (leave the Purge library data checkbox unticked to keep your library DB on disk).
- 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
| What | Docker | SystemD |
|---|---|---|
| Server data | <library_path> (bind-mounted as /config) | /var/lib/plexmediaserver/ |
| Logs | docker logs quazzar-plex | journalctl -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 plexmediaserverthenapt-get remove -y plexmediaserver(falls back todnf removeon RHEL-family). - If
purge_datais true,rm -rf <library_path>runs as root. - The
plex_settingsrow is reset to the empty-install state butlibrary_path/media_pathare kept so a re-install can pick them up by default.