What gets migrated
The migrator handles, in one go:
• Users (with passwords preserved — no password reset needed)
• Lines, packages, bouquets, groups
• Streams, sources, EPG mappings
• VOD, series, episodes
• Resellers and their credit balances
• MAG / Stalker portal users (if applicable)
Logs and historical analytics are NOT migrated — they are too source-specific to translate cleanly.
Prepare the source panel
Before you start:
1. Confirm you have direct MySQL credentials for the source panel (host, port, user, password, DB name). Cloud-hosted panels usually expose port 3306 only on localhost — you may need to SSH-tunnel: ssh -L 3306:127.0.0.1:3306 root@old-panel.
2. Put the source panel into read-only or stop new sign-ups for the migration window so you do not lose new users created mid-migration.
3. Take a fresh backup of the source DB just in case (mysqldump).
Run the migration
On your fresh XtreamGo panel:
1. Go to /dashboard/migration.
2. Pick the source panel type (1-Stream, Xtream Codes, XUI-One, etc.).
3. Paste the MySQL credentials.
4. The pre-flight check runs — it verifies connectivity, counts source entities, and warns about any column mismatches.
5. Tick the entity types you want imported (default: everything).
6. Click Start. The live progress bar shows per-type counts and dual percentages (records processed / records mapped).
The migration is idempotent — you can re-run it safely if something looks off.
Verify and switch DNS
After migration:
1. Open /dashboard/streams and spot-check a few channels for playability.
2. Verify your reseller balances at /dashboard/resellers.
3. Test login for a sample of users — passwords should work unchanged.
Once satisfied, switch your customer-facing DNS (the domain your players hit) from the old panel to XtreamGo. End-users see no difference because their stream URLs and credentials are preserved 1:1.