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.dbby 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:
cp /etc/x-ui/x-ui.db /root/x-ui-backup-$(date +%F).dbTo 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 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 -> SQLiteTo 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.

3x-ui