EasyXrayEasyXray

Backup & Restore

Back up and restore your EasyXray database and certificates, manually or via the Telegram bot.

Your entire configuration — inbounds, clients, settings — lives in the panel's database. Back it up regularly so you can recover or migrate.

What to back up

  • The database — SQLite at /etc/easyxray/EasyXray.db by default (or your PostgreSQL database if you use that backend).
  • Certificates — anything under /root/cert/ (or wherever you store TLS certs).

Manual backup

You can download a backup from the panel's overview, or copy the database file directly from the server:

copy the SQLite database
cp /etc/easyxray/EasyXray.db /root/easyxray-backup-$(date +%F).db

To restore, stop the panel, put the database back in place, and start it again.

Restore a backup onto the same major version it came from when possible. Across major upgrades, let the panel run its migrations rather than forcing an old schema.

Automated bot backups (Telegram & Discord)

If you've configured the Telegram bot or Discord bot, enable tgBotBackup or discordBotBackup to attach a backup to the periodic report (on the tgRunTime / discordRunTime schedule, default daily). The bot sends both the database and the Xray config.json directly to your admin chat or channel, ensuring an off-server copy. Admins can also request a backup on demand from the Telegram bot's menu or using !backup in Discord.

SQLite dump / restore

The easyxray migrate-db command converts the SQLite database to and from a plain SQL text dump (handy for inspection or transferring between machines):

easyxray migrate-db --dump /root/easyxray.sql       # SQLite -> SQL text
easyxray migrate-db --restore /root/easyxray.sql     # SQL text -> SQLite

To move to PostgreSQL instead, see Database.

Whatever method you use, store backups off the server and test a restore occasionally — an untested backup isn't a backup.

On this page