# Transfer Tracker to Another Server
# When to transfer the tracker
Frequent critical failures on the current server where the tracker is installed.
Unsuitable functionality or pricing.
Insufficient disk space and no option to increase it with the current hosting provider.
The need to change the server’s data center while preserving statistics.
The need to create a duplicate or copy of the tracker for scaling funnels or testing new GEOs.
# How to transfer a tracker version 11 and above to a new server
TIP
Make sure that the new server meets or exceeds the current server's specifications.
Log in to the old server via SSH.
Run the dump creation command:
kctl backups create
- After the dump is created, get its name with the following command:
ls -1 /var/lib/kctl-backups/common/
Copy the dump name and connect to the new server via SSH to continue with the next steps.
- Run the tracker installation command on the new server:
curl keitaro.io/kctl.sh | bash -s -- install
- Create the
commondirectory for the dump:
mkdir -p /var/lib/kctl-backups/common/
- Run
screen:
screen
Processes running inside screen are not interrupted if the connection to the server is lost.
- Start synchronization between the
commondirectories of the old and new servers:
rsync -avzP -e "ssh -p 22" root@OLD_IP:/var/lib/kctl-backups/common/DUMP_NAME/ /var/lib/kctl-backups/common/DUMP_NAME/
Where:
- 22 is the port number of the old server;
- OLD_IP is the IP address of the old server;
- DUMP_NAME is the name of the dump from the old server obtained in step 3.
Example:
rsync -avzP -e "ssh -p 22" root@77.71.136.233:/var/lib/kctl-backups/common/2025-08-01-13-35-34/ /var/lib/kctl-backups/common/2025-08-01-13-35-34/
When prompted, enter the password for the old server.
- Restore the tracker from the dump with the command:
kctl backups restore
Statistics and settings, including local landing pages, offers, and custom bot and User-Agent lists, are transferred automatically.
- Go to your account on the keitaro.io website, open the Licenses section, and click Unlink for the license key that you want to bind to the new tracker. Then log in to the new tracker.
WARNING
Do not create campaigns, landing pages, affiliate networks, or other entities in the new tracker until the migration process is complete. When the migration script finishes, the new tracker will contain only data from the old tracker.
# Creating a local archive copy of the tracker
A local archive copy of the tracker is created on the current server. It includes MySQL data, ClickHouse data, system settings, local landing pages, salt, Postback key, SSL certificates, filters, custom bot lists, etc.
- Run
screen
screen
Processes running inside screen are not interrupted if the connection to the server is lost.
- Run the dump creation command:
kctl backups create
WARNING
When creating a dump, it is important to pay attention to the terminal output — if errors occur during the process, the dump integrity may be affected. In that case, it will not be possible to restore the tracker in full from such a dump.
The data is saved in /var/lib/kctl-backups/common/ and is available for download.
Creating a new dump does not delete previous ones. The dump name is based on the creation date.
# Restoring the tracker from a local archive copy
Restoration from a local archive copy is performed on the server. The archive includes MySQL data, ClickHouse data, system settings, local landing pages, salt, Postback key, SSL certificates, filters, custom bot lists, etc.
Install the tracker on the server and upload the dump to the directory
/var/lib/kctl-backups/common/. If the directory does not exist, you need to create it.Run the command:
kctl backups restore
# Actions after tracker migration
After a successful migration, bind the license key to the new server. To do this, first unbind it in your personal account on the keitaro.io website by following these instructions.
Then update the DNS records for all domains by changing the A record to the IP address of the new server so that traffic is directed to it. The changes take effect within 24 hours.
# FAQ
How to transfer a version 10 tracker?
Contact support for assistance with the transfer.
How to restore from dump.gz or dump.sql?
To restore a tracker from a database dump, use the kctl-transfers command with the restore-from-sql local action, for example:
SALT=test kctl-transfers restore-from-sql local path/to/dump.gz
When creating a dump in phpMyAdmin, select English as the interface language.
What does **Could not detect TRACKER_POSTBACK_KEY** mean during migration?
This diagnostic message indicates that there is no custom Postback key in the configuration. This message can be ignored.