home-assistant-container-copy-data-podman-home-assistant
Copy the Home Assistant configuration volume from a Docker-based Home Assistant LXC to a Podman Home Assistant LXC.
home-assistant-container-copy-data-podman-home-assistant.sh copies data between two LXC containers on the same node: Home Assistant Container (Docker) to Podman Home Assistant. It is not listed on the website.
Source: tools/copy-data/home-assistant-container-copy-data-podman-home-assistant.sh.
Run
In the Proxmox VE host shell, as root. If pveversion is missing the script prints "Run from the Proxmox Shell" and exits.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/copy-data/home-assistant-container-copy-data-podman-home-assistant.sh)"What is copied
| Container | Path inside the container | |
|---|---|---|
| From | the one you pick first | /var/lib/docker/volumes/hass_config/ |
| To | the one you pick second | /var/lib/containers/storage/volumes/hass_config/ |
The target volume directory is deleted and recreated, then filled with the content of the source volume directory.
Prompts
| Prompt | Choices | Effect |
|---|---|---|
Use to copy all data from a Home Assistant LXC to a Podman Home Assistant LXC. Proceed(y/n)? | y / n | n exits. |
| "Which HA LXC would you like to copy FROM?" (radio list of all containers) | One container | The source. The list is shown again until one is selected. |
| "Which HA Podman LXC would you like to copy TO?" (radio list of all containers) | One container | The target. |
| "Are you sure you want to copy data between the following LXCs?" | Yes / No, preselected No | No aborts the script with an [ERROR] line; nothing has been changed at that point. |
Both lists show every container of the node. The script does not check that the container you pick runs the expected application; it only checks that the paths exist.
Steps
- Stops the target container if running (
pct stop). - Mounts the root disks of both containers on the host with
pct mount. - Checks that the source path and the target path exist. If one is missing the script stops with "directories in '...' not found".
- Deletes the target directory (
rm -rf) and creates it again, empty. - Copies with
rsyncand the options--archive --hard-links --sparse --xattrs --no-inc-recursive --info=progress2. - On exit, also after an error, unmounts both containers with
pct unmountand removes its temporary directory.
After the copy
The script does not start any container. Start the target yourself and check the application:
pct start <target id>Limits
- There is no undo and no backup of the target. Back up or snapshot the target container first.
- The source and the target must be on the same node, and the application must already be installed in the target so that the target path exists.
rsyncmust be installed on the host; the script does not install it.- The script reads no environment variables and sends no telemetry.
home-assistant-container-copy-data-home-assistant-core
Copy the Home Assistant configuration from a Home Assistant Container LXC to a Home Assistant Core LXC.
podman-home-assistant-copy-data-home-assistant-container
Copy the Home Assistant configuration volume from a Podman Home Assistant LXC to a Docker-based Home Assistant Container LXC.