[Guide] How to migrate an existing Nextcloud instance to Cloudron
-
Hi all, just moving back to Cloudron after a few months on Nextcloud AIO for reasons I leave to your imagination
I saw a few posts online about this topic and thought I'd share how I do it in case it is helpful. I'd love to hear your thoughts and how you do it, so leave me a comment below this post.
Step 1 - Prepare
-
Backups
Have a backup of your existing install! -
DNS
Ensure your domain's DNS record(s) are set to a low TTL (time to live) because you may need to back out of the migration quickly. If it is set to something like 1 hour or longer, that's how long it would take to restore the previous status. Ignore this at your peril -
Comms
Arrange for a day and time with your users to migrate, as you must not have people log in and change stuff
Step 2 - Getting ready
Put the site in maintenance mode and take another backup. I also like to have a VM snapshot of the whole shebang to make backing out of the migration a click away. You can never have too many backupsCheck that everything from step 1 is done, especially the user comms thing. You don't want a VIP calling you on Sunday morning to say they desperately need something.
Install the Nextcloud 'user migration' app and start exporting each user. I also like to use the 'impersonate' app to help speed things up for this. Depending on the amount of users and the size of their profiles, prepare to make a lot of cups of tea.
This process will take a long time, so plan for this. If you use a VM/VPS, increase the resources for the duration to speed things up.
While things are being exported, go and make a list of apps in use and their settings. This is a manual and tedious process, and I find screenshots helpful. You could do a db dump of the relevant tables and rows, but the manual route is safest, IMO.
The time-consuming stuff is user migrations and their data, not the apps.
Step 3 - Moving-in
Setting up users
On the new server, it helps to mirror the users and groups before you proceed with the app and data migration. This is a manual process. After the migration, I told the users they would need to reset their passwords.Copy-n-Tea
Once you have a copy of everything downloaded locally from the old server and a complete record of users, groups, apps and their settings, go to your Cloudron and spin up an app. Downloading TBs of data may take a while... grab another tea (with a biscuit).Hostname and DNS
If you like, turn off the old server and use the same hostname for the Cloudron Nextcloud. You could do this with a different name, but I assume you are doing a complete migration where everything stays the same.The first time
Assign the user groups to the Nextcloud app and log in with your Cloudron account first, then log out as the new admin the app created and assign your Cloudron user admin rights. Log out and back in as yourself, then remove the autogenerated admin or disable it.Step 4 - Apps
Install the apps you need and apply their configs before you migrate the users. Ensure you install the 'impersonate' and 'user migration' apps!Step 5 - Users and data
One by one, use the 'user migration' app to upload and restore the user profiles.Log in after each restore to check if it matches the old server (handy if it is still running, and you can log in). You may need to manually re-import contacts and calendars.
This process takes the longest, depending on the number of users and the size of their profiles. Make sure you have (a) tea (b) food and (c) a fast connection to the new server.
Step 6 - Checks and go live
Double-check that everything is working, especially email notifications and email app provisioning if used.Check the error log and the security guide, and run a proper test to see if you get green everywhere.
Perhaps you like to pick a random user, create a file, and share it with an external test account.
Perhaps you don't and will get lots of angry users on Monday morning
Step 7 - Turn off your phone and go on holiday
This step is optional but make sure you take a break after the initial hyper care period is over and the dust has settledYou deserve a pad on the back, a pay rise and the admiration of your favourite person(s). Don't be disappointed if you don't get any of this because you chose to work in IT and it is a thankless world
But cheer up; you are in safe company in the Cloudron community and an open ear to hear how things went for you. Let me know in the comments below.
-
-
Thank you for this guide! I'm in the process of using it but am getting this error when importing a user zip:
[ERROR] Failed to get migrators versions
When I extract the zip file manually I can see the
migrator_versions.json
file inside of it. I tried repackaging it into a 1.0 zip format instead of 4.5 according to this post https://github.com/nextcloud-snap/nextcloud-snap/issues/2335#issuecomment-1451433539 , but the error persisted.In case it helps, the command I used to repackage is:
unzip -p old.zip | zip new.zip -
I did it this way hoping it'd only 2x the disk space used instead of 3x, but it looks like the zip command still puts a temporary file there.
I confirmed the new zip file is 1.0, contains the migrator_versions.json file, and is owned by www-data; but still no luck.
-
@3246 said in [Guide] How to migrate an existing Nextcloud instance to Cloudron:
Hi all, just moving back to Cloudron after a few months on Nextcloud AIO for reasons I leave to your imagination
How was AIO though? Did fulltext search etc. really work out of the box?