Administration
The Admin panel is for admins only. Open it from Admin in the account menu. Editors do their work from title pages and the request queue instead (see Accounts and Access).
The panel's sections are grouped in a sidebar. On a phone, they're a list you tap into.
| Group | Sections |
|---|---|
| Server | Overview |
| Library | Libraries, Health, Metadata, Kids Mode |
| People | Users, Activity |
| Settings | Appearance, Features, Playback, Network, Backups |
| System | Logs |
Most settings save as you change them, with "Saved" shown beside them. Backups and custom CSS have a Save button. Defaults for every setting are in Configuration.
Overview
The version you're running, whether a newer one is out (with Check now and the release notes), and totals: files, disk footprint, audio hours and accounts, with a breakdown by media type.
Libraries
Add, scan and delete libraries, and set Automatic scanning. See Libraries.
Health
Unreachable libraries, missing files (keep them as history or remove them for good), offloaded titles, likely duplicates, clashing volume numbers, titles with no cover, description, author or age rating, and recent video conversion failures. See Libraries.
Metadata
The TMDB key, then every title in one table with filters, for fixing metadata in bulk with Auto Match, batch matching, Clean titles and manual search. See Libraries.
Kids Mode
Which whole libraries kids accounts can see (a switch each), and the series and titles made kids-safe one by one, with a remove button. See Accounts and Access.
Users
Add, edit and delete accounts, and set each one's role, access end date, away-from-home access, Kids account, content limit, two-factor reset and password. See Accounts and Access.
Activity
Who read, watched and listened to what, for how long, and sign-in history, for everyone or one person.
Appearance
The server's look, beside a live preview of the shelf, a title page, the sign-in screen and the pause screen:
- Let people personalize, plus Users can change on each default.
- The default accent colour, navigation, page width and pause screen.
- Name and sign-in notice: the server name and an optional notice on the sign-in page.
- Custom CSS: your own style rules for every page and everyone. Try it on this page first, then save to make it live. The in-app docs page Custom CSS Styling lists the variables you can use.
Features
Shelf views (Disk Folders, Custom Folders), which Ratings show, Show missing films in collections, and Watch parties.
Playback
Hardware acceleration (with Test) and the Opening sequence. See Installation and Movies and Shows.
Network
Who can use Plinthio from where, the Tailscale guide and status, the device you're connecting from, proxy warnings, and recent sign-ins from outside. See Away From Home.
Logs
The live server log: scans, metadata matches, reading apps and errors. Filter by level, search, pause, and clear the log. Admins also see the underlying cause of errors in the app.
Backups
Plinthio keeps three kinds of database backup, all in /config/backups/:
| Kind | Made | File name |
|---|---|---|
| Scheduled | On by default: daily, keeping the newest 7. Every 6 hours to weekly, keeping 1–30 | plinthio-backup-<time>.sqlite |
| Manual | Back up now in Admin → Backups | plinthio-backup-<time>.sqlite |
| Pre-upgrade | Automatically, before a new version first opens the database. The newest 5 are always kept | plinthio-backup-before-<new>-from-<old>-<time>.sqlite |
Backups are consistent snapshots, safe to take while the server is running. Download or delete them from the list under Stored backups.
A backup holds everything in the database: accounts, progress, bookmarks, highlights and notes, ratings, lists, each person's reader and display settings, server settings, and the catalog. It doesn't hold covers, avatars or caches. Covers found in folders or fetched from providers come back with a rescan. Uploaded covers and avatars don't, so include /config in your own backups, or use a second place (below).
A Second Place for Backups
/config/backups sits on the same disk as the server, so it protects against mistakes and bad upgrades but not a failed disk. To copy backups somewhere else:
- In Docker, mount the folder first. Set
BACKUP_DIRin.envto a folder on another drive, a NAS share or a synced cloud folder. Indocker-compose.yml, uncomment the line- ${BACKUP_DIR}:/backups, then rundocker compose up -d. (Anywhere under/mediaalso works if your media volume isn't read-only.) - In Admin → Backups → Also copy backups to, press Browse and choose the folder (
/backupsin Docker). - Press Test. It checks the server can write there and warns if it's on the same disk as the server's data.
- Set Keep there (30 by default), choose whether to Also copy profile pictures, covers, the sign-in key and HTTPS certificates, and save.
Every backup is then copied there as it's made, laid out as database/plinthio-backup-*.sqlite plus files/. The newest five pre-upgrade backups always stay. A failed copy shows in Admin → Backups with the reason and is retried every 15 minutes, and anything missed is copied once the folder is back.
Restoring a Backup
- Stop Plinthio:
docker compose down. - Copy the backup over
config/plinthio.sqlite, and deleteplinthio.sqlite-walandplinthio.sqlite-shmif they're there. - If the backup is from an older version, set
PLINTHIO_TAGto that version in.env. - Start Plinthio:
docker compose up -d.
To restore from the second place, use a file from its database/ folder in step 2, and copy the contents of its files/ folder back into config/ while the server is stopped.
Update Notices
Twice a day the server asks GitHub for the latest Plinthio release. When a newer version exists, admins see a banner at the top with a link to what's new. Dismiss hides it until the next version, on every device you use. To turn the check off, set UPDATE_CHECK=false. How to update is in Updating.
Report a Problem
Admins have Report a problem in the account menu. It opens a GitHub bug report with the Plinthio version and browser filled in.