n8n - upgrade straight to the latest version
-
Hello,
I am using n8n with Cloudron for 1 year, along with a pro plan of n8n.io,
While I kove the cloudron verison, The update process is still very time-consuming.
on n8n.cloud pro plan, you have an interface where you can choose directly to which version you want to upgrade. in the example below I'm on v 1.91 and can upgrade straight to v1.98
But on Cloudron for now I have to go through each intermediate update. On the example below, to go from package [3.75.0] to [3.87.0] I need to go through 20 intermediate packages. And we are here with less than 3 months of updates
How can i manage to request Cloudron to make 1 single backup then automatically update to a specific package ? [3.87.0] in this case, without manually manage all intermediate updates ?
Thanks,
Ian
(EDIT): note that I'm aware of the option of automatic updates, I still want to manually decide at which time to update and to which package I want to update, to avoid service interruption at any time during the day, and control the target update package
-
Hello,
I am using n8n with Cloudron for 1 year, along with a pro plan of n8n.io,
While I kove the cloudron verison, The update process is still very time-consuming.
on n8n.cloud pro plan, you have an interface where you can choose directly to which version you want to upgrade. in the example below I'm on v 1.91 and can upgrade straight to v1.98
But on Cloudron for now I have to go through each intermediate update. On the example below, to go from package [3.75.0] to [3.87.0] I need to go through 20 intermediate packages. And we are here with less than 3 months of updates
How can i manage to request Cloudron to make 1 single backup then automatically update to a specific package ? [3.87.0] in this case, without manually manage all intermediate updates ?
Thanks,
Ian
(EDIT): note that I'm aware of the option of automatic updates, I still want to manually decide at which time to update and to which package I want to update, to avoid service interruption at any time during the day, and control the target update package
@Ian4life Our whole update system is set up for rolling updates i.e we test against the previous release. Jumping releases is not just untested, the packaging code is also not geared for this.
You can do this hack: go to updates -> schedule and just select every hour . Then leave automatic update on and it will catch up very quickly.
Another hack is set up the CLI tool and then cloudron update --app <domain> --appstore-id <n8n>@<package-version> . But I don't recommend this at all because this skips the whole rolling update mechanism and I have no clue if it will update properly or not
-
Hi @girish ,
Thank you for taking the time to respond. I tested the proposed approach this morning and encountered a few issues, which I am sharing as potentiel feedback to improving the product:
Cloudron had to be updated before the applications (I was three versions behind), I have about ten apps, and each of my apps had to be backed up and restored between each upgrade (it took about three hours for the three upgrades), which is not insignificant downtime in terms of quality of service. Apparently, I couldn't prioritize app updates only vs cloudron updates.
Then I couldn't easily control the update by app (I have a test app and a production app, and I want to do all the updates for the test app and confirm that everything works before the production app).
I finally used the API to orchestrate my updates and everything worked very fine, apart from a weired point that I struggeled to fully understand:
I used the POST https://{cloudron_domain}/api/v1/apps/{appId}/update endpoint
{
"manifest": { }, // I left it empty
"appStoreId": "io.n8n.cloudronapp",
"skipBackup": true,
"force": true
}With this method, the upgrade has been done directly to the latest package (I was about 20 versions behind)
Thankfully, all works well and this was the good surprise to be straight on the latest package.
Is it because I left the manifest empty ? or is it linked to the "force" parameter ?Once again thank you for your support and this great product
Ian
-
Hi @girish ,
Thank you for taking the time to respond. I tested the proposed approach this morning and encountered a few issues, which I am sharing as potentiel feedback to improving the product:
Cloudron had to be updated before the applications (I was three versions behind), I have about ten apps, and each of my apps had to be backed up and restored between each upgrade (it took about three hours for the three upgrades), which is not insignificant downtime in terms of quality of service. Apparently, I couldn't prioritize app updates only vs cloudron updates.
Then I couldn't easily control the update by app (I have a test app and a production app, and I want to do all the updates for the test app and confirm that everything works before the production app).
I finally used the API to orchestrate my updates and everything worked very fine, apart from a weired point that I struggeled to fully understand:
I used the POST https://{cloudron_domain}/api/v1/apps/{appId}/update endpoint
{
"manifest": { }, // I left it empty
"appStoreId": "io.n8n.cloudronapp",
"skipBackup": true,
"force": true
}With this method, the upgrade has been done directly to the latest package (I was about 20 versions behind)
Thankfully, all works well and this was the good surprise to be straight on the latest package.
Is it because I left the manifest empty ? or is it linked to the "force" parameter ?Once again thank you for your support and this great product
Ian
-
@girish Thanks for your explanation, I will add version within the The appStoreId,
@james so now I have something pretty robust and will use the following process:
- All updates disabled by default
- I will manually check and update Cloudron quarterly, on specific timeframes
- I will leverage on API to orchestrate each app upgrade individually