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.
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 -> 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