Migrating Home Assistant from Python Virtual Environment to HAOS in Proxmox: A Step-by-Step Journey
If you’re still running Home Assistant Core in a Python virtual environment, it’s time to start planning your move. The Core and Supervised installation methods are being phased out, with future updates focused on the Home Assistant Operating System (HAOS) and Container installations. Migrating now ensures smoother updates, greater reliability, and full access to the Add-on Store. In this guide, I’ll walk you through my migration from a Python virtual environment on Ubuntu in Proxmox to a full HAOS setup in a Proxmox VM, including the bumps along the road and how I resolved them.
Why Migration Matters
When I first started using Home Assistant, I installed it via a Python virtual environment on an Ubuntu VM. It worked for years, and I even documented that initial setup in an early guide. But as Home Assistant evolved, maintaining the virtual environment became increasingly cumbersome. Every major update often required rebuilding the environment, and support for older Python versions was gradually dropped.
Eventually, Home Assistant officially announced the deprecation of Core and Supervised installs. The writing was clear: it was time to migrate to HAOS, the officially supported and most streamlined path forward.
Preparing for the Move
Before jumping in, I created a detailed migration plan:
- Snapshot the existing Home Assistant Proxmox VM
- Download all Home Assistant backups
- Ensure copies of Z-Wave security keys
- Note USB passthrough devices for Z-Wave/Zigbee controllers and Bluetooth adapters
- Confirm Nabu Casa and Home Assistant credentials
- Shut down the old Home Assistant VM
- Run the community HAOS Proxmox install script in advanced mode to customize disk size, VM name, and ID
- Assign USB passthrough devices to the new VM
- Restore Home Assistant backups from Nabu Casa
- Reinstall Z-Wave JS and switch to Z-Wave JS UI
- Add the Samba add-on for easy file access
- Test and ensure everything works
Migration Highlights
The community HAOS Proxmox script made creating the new VM quick and painless. Restoring backups from Nabu Casa brought back nearly everything—custom components, integrations, and even my RF control scripts—without any issues.
Safe Mode Hiccup: My VM initially booted into safe mode due to a missing directory path for energy readings from my old Ubuntu setup. Unlike the old system where I could edit files via SSH, HAOS required the File Editor add-on. Updating the directory path in configuration.yaml fixed it instantly.
Integration Tweaks: Most integrations restored flawlessly. My custom Alarm.com integration needed a reinstall and reauthentication, which was simple. Presence detection using the nmap integration required a quick re-enable, and my Telegram Bot needed a reinstall, which took just a few minutes.
Z-Wave Rebuild: With roughly 50 Z-Wave devices, reconnecting took time. Battery-powered devices needed manual wake-ups, but having security keys on hand made it smooth. Zigbee devices, on the other hand, reconnected almost instantly.
Custom Scripts: My irrigation controller, which relied on a shell command triggered by cron and MQTT, required adjustments because HAOS doesn’t allow direct cron access. I moved the script to my Proxmox Docker host and set up SSH-based execution from HAOS. Key steps included creating an SSH key, adding known_hosts to the config directory, and updating Home Assistant shell commands to use this setup.
Other Services: I continued using my pre-existing MQTT broker in Docker, which remains stable and fully integrated with network automations.
Final Touches
After restoring all backups, adding Samba for file access, and reconfiguring minor integration issues, everything ran smoothly. Home Assistant upgrades and restarts now work directly from the UI—a massive improvement over the old Python virtual environment.
From start to finish, the migration took just a few hours, most of which went into rebuilding Z-Wave devices. The true test: if anyone in the household notices the switch? Probably not—and that’s exactly how it should be.
Key Takeaways
- Home Assistant is phasing out Core and Supervised installs—migrating to HAOS ensures long-term support.
- The Proxmox community HAOS install script simplifies VM creation.
- Backups restore nearly everything, including custom components and automations.
- Minor adjustments may be needed for paths, disabled entities, or integrations requiring reauthentication.
- HAOS makes upgrades and restarts seamless, improving reliability and overall experience.
Support the Site
If you enjoy the content and want to support HomeTechHacker, here are some ways to help:
- Share articles with friends or on social media
- Subscribe to the site
- Purchase any of my books: Life by Design, The Personal Cybersecurity Manual, The Home Network Manual, or The Smart Home Manual
- Add a link to HomeTechHacker on a site you manage
- Enroll in HomeTechHacker Academy for free or premium courses
- Reach out via the contact page or Twitter with topics you’d like covered
- Shop through affiliate links for products I recommend
Your support is greatly appreciated!

