Migrate from HA Container to HAOS

Hi,

I have a Rock64 running Ubuntu with HA running as a Docker container. And I want to migrate to a HAOS installed on a much more powerfull and up-to-date Proxmox server (in the same network, but different IP).

But how do I migrate without the need to start a fresh config on the new HAOS? Can I just make a backup on HA Docker, and restore this in HAOS? Do I need to use the same IP? Do I need to turn off the old HA container before booting the new HAOS?

Yes

No

Would make sense while not strictly technical necessary.

Actually booting the new HAOS to the on-boarding screen obviously is no problem. You can then (instead of creating a fresh config) upload your backup. When doing this might be a good time to shut down the HA which the backup comes from. It very much depends on the services/integration/devices you are using if they are capable being connected to more than one HA instance at a time (esphome for example has no problems with this) :bulb:

1 Like

I’ve been running HA in a container for six years, first on a NAS, then on CentOS 7, and then CentOS 8. Each time I migrated, I simply copied the config directory over to the new install.
Now I’ve migrated the OS to Rocky 8, and it’s time to update to HAOS (HA-Container is pretty limiting). I have haos_ova-14.2.qcow2 running in KVM, but when I browse to port 8123 on the server from my workstation, I’m greeted by the “Welcome” screen, which only allows me to either “CREATE MY SMART HOME” (start from scratch) or “RESTORE FROM BACKUP”. But I can’t find a way for HA-Container to create a backup (Home Assistant 2021.12.8).
I did copy all of my .yaml files for the container into the VM, so my configuration is probably ready to go, but I can’t get past the “Welcome” screen.
So three questions:

  1. Is there a way to create a backup from HA-Container that HAOS will accept?
  2. Is there a way to bypass or disable the “Welcome” screen without it overwriting the configuration I just copied in?
  3. Is there anything that I can do in Supervisor? (I have the ha > prompt in the KVM console). I don’t yet know what Supervisor is capable of.

Thanks for any help anybody can provide.
Mark

2021 like 4 years ago? :laughing:

Yes, if you run the latest a 2025 release you can do this as the release notes tell us :spiral_notepad:

More good news—restoring backups is now supported across all installation methods! :tada:

Previously, only Home Assistant OS installations could restore backups. But with this release, this feature is now available for all installation methods! No matter how you run Home Assistant, even if you use our containers in a Docker environment, you can now restore your Home Assistant backups.

Thanks for that, Orange.

One of the reasons I need to go to HAOS is that containers were also missing an upgrade method, hence I’m still at 2021. I remember the trouble upgrading from the 2019 version to 2021, and swore that I wouldn’t try that ever again. But that was way back on the Synology NAS, which truly sucked. I’m on PowerEdge servers now.

What I will try is installing that 2025 version in another container, copy my 2021 configuration over, and if it works, try to create a backup from it. I will can my current VM, and create a new one, in case it is munged from my mucking.
Mark

Hi, Wisecracker.
Well, I downloaded the latest container version, but when I started it, I got a bunch of ugly errors:

File "/usr/local/lib/python3.13/importlib/__init__.py", line 88, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import

  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load

  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed

  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import

  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load

  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 1026, in exec_module

  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed

  File "/usr/src/homeassistant/homeassistant/components/zha/__init__.py", line 9, in <module>

    from zha.application.gateway import Gateway

  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load

  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 1026, in exec_module

  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed

  File "/usr/local/lib/python3.13/site-packages/zha/application/gateway.py", line 30, in <module>

    from zha.application import discovery

I knew that trying to debug that was not going to be fun, so I tried a different approach - I copied the individual configuration files from my working 2021 container into the /supervisor/homeassistant/ directory of the haos_ova-14.2.qcow2 VM image. I then found the file /supervisor/homeassistant/.storage/onboarding, and changed the status to “done”. That got me past the “Welcome” screen, and everything came up as it should.
I am now off of the container and running HAOS in a virtual machine.
Thanks.

1 Like