Migration
Move an EasyXray installation between servers or between versions — and why importing an X-UI / 3x-ui installation is not supported.
From X-UI / 3x-ui
EasyXray does not migrate an existing X-UI or 3x-ui installation. There is no detection step, no import command, and no automatic conversion. The two products deliberately differ in almost every place a migration would have to look:
| X-UI / 3x-ui | EasyXray | |
|---|---|---|
| Service & command | x-ui | easyxray |
| Config / database | its own paths | /etc/easyxray/EasyXray.db |
| Environment prefix | XUI_* | EASYXRAY_* |
| HTTP namespace | /panel/… | /easyxray/… |
Installing EasyXray on a server that already runs X-UI/3x-ui is a new, parallel install — it does not replace or upgrade the old one. To move over, install EasyXray fresh, recreate your inbounds and clients, and export each client's share link from the old panel to import it on the client side. Reusing the old SQLite file is not supported: the schemas differ.
The same applies to automation: the REST API moved from /panel/api/… to
/easyxray/api/v1/…, and the old prefix has no compatibility alias. Scripts,
bots, and dashboards written against /panel/api/… must be updated.
Between servers
Moving the same EasyXray installation to a new server is a database move:
Back up the old server
Copy the database (default /etc/easyxray/EasyXray.db) and your certificates. See
Backup & restore.
Install EasyXray on the new server
Use the same install method and a compatible version. See Installation.
Restore the database
Stop the panel, put the database in place, restore certificates, and start the panel. Revisit any IP- or domain-specific settings.
Between EasyXray versions
Within the same backend, upgrading is usually just re-running the installer or pulling a new image — the panel migrates its own database. Across major versions, read the release notes first and take a backup.
Always take a backup before any migration, and keep the old server running until you have verified the new one.

EasyXray