I am also looking to do this. I can share what I have learned thus far, hopefully I am not incorrect and lead you down the wrong path.
What to back up: If you want a complete copy of all of your recent and past backups you want to back up whatever directory you have set in “Backup Storage Path” under settings. If you also have “Automatically backup UrBackup database” turned on, then a copy of the database(s), server keys and client lists will also be included in your off-site copy.
Stoping server: I do not believe so. However, I would recommend that you perform your off-site copy outside of your UrBackup backup & cleanup windows. This prevents your rsync copy from copying a backup in process and only getting part of it.
How/rsync parameters: This has been covered elsewhere in the forums, so I would do some searching on the topic. Here is one example: “How to mirror a backup?”. Keep in mind that rsync isn’t the only option. If you are using btrfs you can use the send/receive functionality built in to the filesystem to perform the copy and it may be more efficient than rsync. It gets tricky if you are using urbackup’s btrfs features. Each backup becomes an individual sub-volume/snapshot that has to be sent/received on its own.
Restore: In the event of a catastrophic failure of your urbackup server you would restore the data in your backup storage path and then copy of the contents of the storagepath/urbackup into /var/lib/urbackup (could be /var/urbackup, /usr/local/var/urbackup, or some other location it depends on your installation). Then start the urbackup server and I think you should be good to go.
Images: I believe you can exclude these. After you have restored the urbackup server run “urbackupsrv remove-unknown” and it will remove those image backups that no longer exist from the database.
Hope this is helpful. Let us know what solution you ended up using and how it works.