How do I actually move between open balena and balena cloud?


I see this ability clearly marketed on the homepage, but so far I couldn’t find any specific documentation about the process.

EDIT: I do see a balena join option with the CLI, but it’s unclear as to how this would work for already deployed devices in balena cloud. Also it’s unclear how to do the reverse process.


Hi @danny, welcome to the forums!

Yeah, some of those aspects need more polis user experience wise, but will try to clear it up a bit:

The move between deployments happen using the os-config join command inside balenaOS. You can check the command by logging into the device, and running os-config --help and os-config join --help

To move between balena installations, you can get a config.json file from your target installation, make sure it’s a single line (it will be, downloaded from balenaCloud for example the “Add Device”/“Advanced”/“Download configuration file only” step), and run the command with os-config join '{configjsoncontents....}' such as os-config join '{"applicationName":"....}'

For example like this, when I was connected to the device:

The balena join works on development version of the OS only. That does the preconfiguration for you, and underneath also using os-config inside the device (and generating the config.json as needed). If you device is a dev version, then you can use that, and just log into the balena installation that you want to move the device to, and balena join <deviceip> will give you the list of applications where you can move the device to.

Here moving a device:

There’s also this other thread from earlier, which might have some extra info for you too: Is possible to move from Balena Cloud to Open Balena?

The reverse process would be the same with providing config.json / logging in with the CLI to the new target installation.

Hope this helps!