# Deploy Jellyfin for a personal media library

Confirm current template and storage/transcoding requirements against upstream documentation. Check the named site's prerequisites, task result, backup scope and recovery handoff with xCloud.

Canonical: https://xcloud.host/use-cases/workflows/deploy-jellyfin-for-a-personal-media-library/
Published: 2026-09-30 · Updated: 2026-09-30 · Technical review: 2026-09-30
Evidence: Source reviewed; no production deployment test claimed
Editorial owner: xCloud editorial

Intent: Confirm current template and storage/transcoding requirements against upstream documentation.
For: site-owner, administrator

## Requirements and responsibilities

- Name the team, server, hostname, owner and affected users for the Jellyfin application. Record the current version and the actual business flow that must survive the change. Confirm the current dashboard form, plan eligibility, and server capacity before committing a resource change. A one-click catalog listing is discovery, not permission or proof that the connected MCP profile can install it. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Prepare a non-sensitive test input and an acceptance record. Keep access to the app administrator and an independent observer where possible; omit secrets from AI prompts and client reports. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- For a Docker app, identify persistent volumes, bind mounts, external databases and app-level export requirements. A Docker backup briefly stops the app, and an in-place restore replaces current state. Agree a maintenance window and owner before any action that interrupts the service or overwrites data. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## Illustrative situation

A household wants to access its own media library from Jellyfin. The owner needs a controlled user account, a small trial library and clarity about media versus app metadata backups.

## Choose the approach

- Keep original media on storage with its own protection; Jellyfin metadata backup does not replace source files. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Grant each viewer only intended libraries, especially when remote access is enabled. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## Dashboard and application procedure

### 1. Check media and storage rights

**Where:** Media owner and xCloud server

**Permissions:** Authorized xCloud read access to the named team and site; the relevant app or provider owner supplies records outside xCloud.

**Inputs:** Authorized files, storage path, expected library size

**Action:** Confirm the files may be hosted and the server has disk and bandwidth headroom. Identify whether media lives on a mounted external path.

**Expected result:** A legal, feasible library plan.

**Verify:** Check file ownership and a sample playable format.

**If it fails:** If storage is external, document its separate backup and mount recovery.

Capability: Confirm requirements and inspect resources
Sources: [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/)

### 2. Deploy Jellyfin

**Where:** xCloud One-Click Apps dashboard

**Permissions:** Authorized xCloud site owner with dashboard rights for the exact setting, backup, staging or restore action and a reviewed target.

**Inputs:** Compatible Docker server, app hostname, template

**Action:** Create the Jellyfin site with a stable HTTPS URL and record the app and server IDs. Keep public access restricted during setup.

**Expected result:** A reachable Jellyfin setup wizard.

**Verify:** Inspect HTTPS and current template version.

**If it fails:** If install stalls, inspect logs and storage permissions instead of recreating the site.

Capability: Install a selected one-click app in xCloud dashboard
Sources: [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md)

### 3. Configure library and users

**Where:** Jellyfin dashboard

**Permissions:** Authorized Jellyfin application administrator or delegated role with rights for this task; hosting access alone is insufficient.

**Inputs:** Sample folder, metadata language, limited viewer

**Action:** Complete setup wizard, add a small authorized library, and create a non-admin user with access only to that library.

**Expected result:** A visible library for the intended viewer.

**Verify:** Sign in as limited user and check no other libraries appear.

**If it fails:** If an unwanted library is visible, correct user permissions before invitation.

Capability: Configure and test Jellyfin in its application UI
Sources: [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/)

### 4. Test playback and indexing

**Where:** Viewer browser or client; Jellyfin logs

**Permissions:** Authorized Jellyfin application administrator or delegated role with rights for this task; hosting access alone is insufficient.

**Inputs:** Known media item and client device

**Action:** Run a library scan and play a representative item. Inspect transcoding behavior, subtitles and playback errors from the actual client.

**Expected result:** A successful media journey and known resource cost.

**Verify:** Compare playback result with CPU/RAM during the test.

**If it fails:** If playback stalls, isolate codec/transcode and network causes before increasing resources.

Capability: Configure and test Jellyfin in its application UI
Sources: [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/)

### 5. Separate app and media backup

**Where:** Jellyfin Backups and xCloud Docker Backup

**Permissions:** Authorized xCloud team/site operator with the discovered write scope for this exact operation and owner approval for its target and interruption.

**Inputs:** Metadata snapshot, media path, restore owner

**Action:** Check Jellyfin's built-in backup options for database/metadata and xCloud coverage for app data. Protect original media separately and rehearse recovery of a small test library.

**Expected result:** A complete recovery map.

**Verify:** Verify backup files and media source remain accessible after restart.

**If it fails:** If media files are absent from backup, do not describe the instance as fully recoverable.

Capability: Create and inspect Docker backups
Sources: [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/)

## Maintenance

- Review this task after app or template updates and at the cadence agreed with the owner. Record failures as dated observations rather than assuming host health proves service health. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Watch access changes, backup completion, free storage and external providers. Recheck integrations after credential, DNS, mail or source-data changes. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## Recovery decisions

- Before data recovery, identify incident time, completed backup, target and records created after the snapshot. Preserve current evidence and live data before replacement. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Use the documented dashboard or application recovery procedure with the authorized owner. Repeat the task-specific limited-user check; reconcile newer records before reopening writes. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/); [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/); [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/); [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## AI handoff

Connect an authorized xCloud MCP profile and discover its exact tools and team scope. The packaged REST wrapper is GET-only; use dashboard or app controls for undocumented writes.

### Supported scope

- **Confirm requirements and inspect resources** (mcp; read): Discover the connected profile and operation schema first; only teams granted to the connection are visible. Checkpoint: Confirm exact team, server and site identity. Use dashboard\_url returned by the resource; do not invent a dashboard link. Operation identifiers to discover: teams.index, servers.show, sites.show. Scopes: read:servers, read:sites. Sources: [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md)

### Copyable agent brief

```text
Read selected Jellyfin template, Docker server storage and app backup history. Return media path and resource risks. Do not claim MCP manages libraries or users; a Jellyfin admin must observe playback and library permissions.
```

### Manual checkpoints

- Approve exact site, target, cost and any write or maintenance window after inspecting the proposed plan.
- An authorized Jellyfin administrator must configure and test app users, content, integrations and business rules in the app.
- Native WordPress staging, backup schedule/settings, push/pull and all restores are dashboard-only; Docker restore is dashboard-only and replaces state.
- Reconcile data created after the chosen recovery point before any destructive restore.

## Feature coverage

- **media decision, evidence and task action** (covered): The procedure identifies the authorized task boundary and observable result. Steps: step-1, step-2, step-3, step-4
- **backup, ongoing operation and recovery** (covered): Recovery and maintenance are checked in the task procedure. Steps: step-4, step-5

## Sources

- [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md) — reviewed 2026-09-30; v4.4.2 package; xCloud v2.8.8 capability review
- [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs) — reviewed 2026-09-30
- [Jellyfin backup and restore](https://jellyfin.org/docs/general/administration/backup-and-restore/) — reviewed 2026-09-30
- [Jellyfin user and library access](https://jellyfin.org/docs/general/server/users/adding-managing-users/) — reviewed 2026-09-30
- [Jellyfin library administration](https://jellyfin.org/docs/general/server/libraries/) — reviewed 2026-09-30
- [Jellyfin transcoding and playback types](https://jellyfin.org/docs/general/post-install/transcoding/) — reviewed 2026-09-30
- [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/) — reviewed 2026-09-30
- [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md) — reviewed 2026-09-30; v4.4.2
- [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/) — reviewed 2026-09-30

## Continue

[Explore all use cases](https://xcloud.host/use-cases/)

- [Back up and recover a Docker application](https://xcloud.host/use-cases/operations/docker-backup-and-recovery/)
