I'm actually just going to post this here for now, rather than in the manual, because technically it's still experimental.
So to make this clear:
YMMV, this may break, you may lose all your data, your cat may become impregnated, errors may occur, etc.That said, the v2-to-v3 import utility is actually built on top of the backup/restore functionality in v3, so it has indirectly received a fair bit of testing and should be reasonably usable.
Creating a BackupThe command to back up an account is:
/usr/local/centovacast/bin/ccmanage backup --username=USERNAME
USERNAME is, of course, the username of the account to backup.
The available parameters are documented in the
backup API reference. (For example, to use the "nocontent" argument documented in the API reference, pass the --nocontent=1 parameter to the backup command).
Restoring a BackupTo restore a backup, use:
/usr/local/centovacast/bin/ccmanage restore --filename=FILENAME --rpchostid=RPCHOSTID
FILENAME is the full pathname to the backup file to restore, and RPCHOSTID is the ID number of the server you want to restore it onto. If you only have one server, use --rpchostid=1. If you have multiple servers, check the Management->Hosts page in the admin area for the ID numbers. (Hover over the "Edit" link -- the ID is at the end of the URL.)
The available parameters are documented in the
restore API reference.
General InformationAn account backup is just a zip file. No crazy proprietary formats. A backup contains all the user's files (all of them, including the server/source configuration files, media files, logs, etc.), a database dump in a custom format internal to Centova Cast (which is necessary since a standard SQL dump would cause key conflicts upon restoration), and some metadata files.
Backups contain ALL data relevant to the account -- the account configuration, bandwidth limits/disk quota settings, statistics, media files, playlists, etc.
If the user has a lot of files, the backup will be huge and will take ages to create. You may consider using the --nocontent and/or --nologs parameters to omit the var/spool/ and var/log/ directories from the backups, and then use rsync or another efficient mechanism to externally backup the users' media files to another machine. You'll find that that's a LOT faster than including them in the backups -- ZIP compression of media files (or any general-purpose compression, really) is very slow and provides a very poor compression ratio.
Backups can be created on one machine and restored to the same machine, or copied to another machine and restored there. During restoration, Centova Cast will change the IP address to the local machine's IP address, and will change the port (if needed) to an available port, but everything else will remain unchanged and should yield a copy of the account on the new server that is completely identical to the original.
Backups are cryptographically signed using a key that's unique to your server. By default, the "restore" command will reject any backups that weren't created by your server. This is so that (in future, when we put the backup/restore functionality into the UI) users won't be able to restore backups created on other servers that have configurations not permitted on your server. You can bypass this (as admin) with the --novalidate parameter to restore a backup from another server.
Enjoy, and if you encounter bugs, report them.