Migrating a media library to a new server — whether upgrading VPS specs, changing providers, or moving to different infrastructure — requires careful planning to avoid data loss or lengthy downtime. This guide covers the process.
Planning the Migration
See How to Migrate an E-commerce Store to a New VPS Without Downtime for related migration principles applicable here — understand exactly what needs to migrate: media files, metadata database, user accounts/progress, and any custom configuration.
Step 1 — Take a Complete Inventory
Document your current library size, file organization structure, and any custom configuration (transcoding settings, library paths) — ensures nothing is overlooked during the actual migration process.
Step 2 — Back Up Everything Before Starting
See How to Set Up Automated VPS Backups — take a genuine, verified backup before beginning any migration; this is your safety net if anything goes wrong during the process.
Step 3 — Transfer Media Files
rsync -avz --progress /old-server/media/ user@new-server:/new-server/media/
rsync is generally preferred over simple copy for large media libraries — supports resuming interrupted transfers and efficient incremental syncing if you need multiple transfer passes.
Step 4 — Transfer the Server Configuration/Database
docker stop jellyfin
tar -czf jellyfin-config-backup.tar.gz /path/to/jellyfin/config
scp jellyfin-config-backup.tar.gz user@new-server:/backup/
Your media server's configuration database (containing library structure, user accounts, watch progress, custom metadata) is separate from the raw media files — ensure this is also properly transferred, not just the media itself.
Step 5 — Set Up the New Server with Matching Configuration
Install and configure your media server software on the new infrastructure (see How to Install Jellyfin Media Server on a VPS for the base setup), then restore the transferred configuration/database rather than starting from a blank configuration.
Step 6 — Verify Library Paths Match
If your media files are at a different path on the new server than the old one, you'll need to update library path configuration — a common oversight causing the server to show an "empty" library despite media files being genuinely present.
Step 7 — Verify User Accounts and Watch Progress
Confirm user accounts transferred correctly and watch progress/history is preserved — a migration that loses this data, while not catastrophic, genuinely degrades the user experience for returning viewers.
Step 8 — Run Both Servers in Parallel Briefly (If Feasible)
Where feasible, keep the old server running until you've fully verified the new server works correctly — provides a fallback if issues emerge, avoiding a scenario where you've decommissioned the old server before confirming the new one genuinely works.
Step 9 — Update DNS/Access Configuration
Update any DNS records, reverse proxy configuration, or remote access setup (see How to Set Up Remote Access for Jellyfin/Plex Without Exposing Your Home Network) to point at the new server.
Step 10 — Monitor the New Server After Cutover
Watch for any issues in the days following migration — some problems (transcoding performance differences, storage I/O characteristics) may only become apparent under genuine ongoing usage rather than initial testing.
Common Errors
Library shows as empty on the new server despite files being present — verify library path configuration exactly matches where files actually reside on the new server; a path mismatch (even a subtle one) causes the server to be unable to locate the media it should be indexing.
Continue Reading
- How to Set Up Automated VPS Backups
- How to Install Jellyfin Media Server on a VPS
- How to Set Up Remote Access for Jellyfin/Plex Without Exposing Your Home Network
Browse more articles in Media & Streaming Servers.