- Before migrating to a new server, we recommend upgrading to the latest version of the MediaCP.
- Please ensure the new server meets MediaCP’s System Requirements, including the access to the required ports is not blocked by a firewall.
- A valid license is required to complete the restoration process.
- Transferring of files can often take hours to complete, be sure to leave enough time before terminating your old server.
- Before completing a migration, you should request that both old and new server IP addresses be added to your software license.
- The restoration process will prompt you for a custom media content path if you wish to relocate your media files to another disk during the migration
1. Prepare DNS records
It is highly recommend to lower the Time To Live (TTL) of your DNS records to 300 before migration.
2. Ensure you are logged in as root
It is required that you follow these steps as the root user to migrate your Media Control Panel.
3. Backup MediaCP
You must decide to backup the entire MediaCP (large files) or only the database and information (no media files).
The full backup may take a lot of disk space and a long time to transfer between servers, depending on the network speed. A partial backup is much smaller and faster to transfer.
If the Media Contents path (/usr/local/mediacp/content/) is very large then you might consider a Partial Backup and manually configure an rsync of the Media Contents to another disk or server; this will dramatically improve backup performance. We have directions for this in at Step 5.1 Transfer Media Content
All backups include:
- Media Control Panel database
- All media service information and statistics
- SSL Configurations
3.1 Full backup of MediaCP and media (audio/video) files
Run the following in SSH as root and a new tar backup will be saved in /backups/
/root/init backup --backup-dir=/backups/
3.2 Partial Backup of MediaCP only
Run the following in SSH as root and a new tar backup will be saved in /backups/
/root/init backup --backup-dir=/backups/ --no-contents
4. Transfer backup to new server
The easiest way to transfer the backup to the new server is directly via SSH connection using the SCP utility in linux.
The following example will copy a backup from the /backups/ folder of the old server to the new server.
You will be prompted to verify the authenticity of the host and also enter the new servers root password
scp -P 22 /backups/mediacp_20190726.tar root@your-new-server-ip:/root/
5. Restore the MediaCP
cd /root;rm -f init;wget http://install.mediacp.net/scripts/init;chmod +x init;./init restore
a) You will be prompted for your license key and the path to the backup file.
b) You will also be prompted to specify a location for you media content files. If you wish to leave this as default, simply press return. If you wish to install the media files to a different location, you may do so here and a symlink will be created automatically from /usr/local/mediacp/content to the new location.
c) If you have a Video license, then you will be prompted to reinstall the video streaming engine; make sure to install the streaming engine via our restoration utility.
5.1 Transfer Media Content
Rsync Content Directory
You will need rsync to be installed on both the old and the new server in order for this to work. You will need to use rsync to copy your content directory to the new server recursively.
Debian/Ubuntu
apt install rsync
CentOS/AlmaLinux
yum install rsync
Transfer Content Directory
Once rsync is installed on both servers run the following command on the original server to transfer your content directory to your new server. This command excludes logs to save time and space. This will likely take a very long time depending on the size of your content directory.
rsync -rav --exclude '*.log' --exclude '*.w3c' /usr/local/mediacp/content root@your-new-server-ip:/root/
Once the rsync is completed you will need stop the MediaCP service and all streaming services on the new server to prevent any issues.
systemctl stop mediacp; systemctl stop WowzaStreamingEngine; systemctl stop WowzaStreamingEngineMananger; systemctl stop flussonic; pkill icecast; pkill sc_serv; pkill liquidsoap; pkill ices;
Once the services are all stopped you will need to move the content folder created during the restoration on the into a new content.bak directory for safekeeping.
mv /usr/local/mediacp/content /usr/local/mediacp/content.bak
Once this has been completed you need to move the content you rsync’d over from the root directory into the mediacp directory
mv content /usr/local/mediacp/content
Then restart all services and check to ensure all the content has successfully been transferred and can be found in the MediaCP services.
mediacp restart services
6. Restore Video Server Configuration
6.1 Nginx-Rtmp
No actions are required, nginx-rtmp configurations are automatically migrated.
6.2 Wowza Streaming Engine
On the original server run the following, make sure to replace the ip address with your new server ip:
scp -rpP 22 /usr/local/WowzaStreamingEngine/conf/ root@your-new-server-ip:/root/; scp -rpP 22 /usr/local/WowzaStreamingEngine/applications/ root@your-new-server-ip:/root/ scp -rpP 22 /usr/local/WowzaStreamingEngine/templates/ root@your-new-server-ip:/root/
On the new server run the following command:
systemctl stop WowzaStreamingEngine;
mv /usr/local/WowzaStreamingEngine/conf /usr/local/WowzaStreamingEngine/conf.original; mv /usr/local/WowzaStreamingEngine/applications /usr/local/WowzaStreamingEngine/applications.original; mv /usr/local/WowzaStreamingEngine/templates /usr/local/WowzaStreamingEngine/templates.original;
mv /root/conf /usr/local/WowzaStreamingEngine/conf; mv /root/applications /usr/local/WowzaStreamingEngine/applications; mv /root/templates /usr/local/WowzaStreamingEngine/templates; systemctl restart WowzaStreamingEngine
6.3 Flussonic Media Server
On the original server run the following, make sure to replace the ip address with your new server ip:
scp -rpP 22 /etc/flussonic/flussonic.conf root@your-new-server-ip:/root/
On the new server run the following command:
mv /etc/flussonic/flussonic.conf /etc/flussonic/flussonic.conf.original mv /root/flussonic.conf /etc/flussonic/flussonic.conf; service flussonic restart;
7. Re-enable port 80/443 proxy
If you were previously using the port 80/443 proxy then you will also need to enable it on the new server.
/root/init enable-http-proxy
8. Check new server is running appropriately
We recommend thoroughly testing your panel before switching DNS records.
Firstly, on your new server in SSH open /etc/hosts (nano /etc/hosts) and ensure your domain name is mapped to the loopback address 127.0.0.1. See the below image example
You can do this by updating your systems hosts file to point your domain name at the new server, so only you can see the new server and your customers will still access the original server.
Open your systems hosts file:
- Navigate to C:\Windows\System32\drivers\etc
- Right click hosts file and Open with “Wordpad”
- Add a new line containing your new servers IP Address and your domain name, separated by a single space. It should look like the below.
- If using Wowza Streaming Engine StreamLock add another line with your new servers IP Address and the StreamLock address, separated by a single space.
- Close all instances of your web browser then start it again
- Open the following URL in Google Chrome and press “Clear Host Cache”:
chrome://net-internals/#dns
- Open the MediaCP address and verify the page you are looking at is the new server:
- Press F12 in Google Chrome to open “Developer Tools”
- Select Network tab and the “Doc” sub-tab
- Refresh the page and you will see a single request
- Select this request and verify the IP address as shown in the image below. If the IP address does not match your new server then you need to close ALL instances of google chrome and try again:
9. Update DNS Records
- Login to wowza.com Portal
- Select the StreamLock tab
- Scroll down and select the Change link next to your stream lock certificate
- Input your new servers IP Address and press save
b. MediaCP Domain Name
Update your DNS record to point to the new server.