3x-ui3x-ui

Backup & Restore

Back up and restore your 3x-ui 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/x-ui/x-ui.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/x-ui/x-ui.db /root/x-ui-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.

Telegram backup

If you've configured the Telegram bot, enable tgBotBackup to attach a backup to the periodic report (on the tgRunTime schedule, default daily). The bot sends both the database and the Xray config.json to your admin chat, so you always have an off-server copy. Admins can also request a backup on demand from the bot's menu.

SQLite dump / restore

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

x-ui migrate-db --dump /root/x-ui.sql       # SQLite -> SQL text
x-ui migrate-db --restore /root/x-ui.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