This is a step-by-step guide to moving your home server from CasaOS to ZimaOS, based on
my own migration (~800 GB). The built-in migration tool failed for me midway (a download
error, because my data disk wasn’t mounted the way it expected), so I did it manually —
which turned out to be the more reliable path. This tutorial follows that manual process.
Why migrate?
• Free upgrade — ZimaOS is the evolution of CasaOS, same open-source roots
• Redesigned App Store, native Docker Compose support, and a mobile app (Zima Client)
• Your apps, storage and data stay with you; nothing is re-downloaded
The migration has two parts: move your data, then move your apps.
STEP 1 — Move your data (disk-to-disk)
- On the old server, create an SMB share (CasaOS side) and connect to it from ZimaOS.
- From the ZimaOS/proxmox host, expose and mount the old data disk.
- Copy the data with rsync (disk-to-disk, no network transfer, ~800 GB in my case).
- Verify the copy with a size report before touching anything.
STEP 2 — Move your apps (Docker Compose)
- Your composes live at /var/lib/casaos/apps — one folder per app with its docker-compose.yml.
- Copy that folder over through the SMB share.
- In the ZimaOS App Store, open “Install a customized app”, switch to the YAML tab and paste.
→ Note on x-casaos: deleting that section isn’t strictly necessary, but in some imports it
causes problems — it may be why an import fails. - ZimaOS fills the form for you: title, image, ports, volumes. Hit install.
- Optional: for apps that need manual setup, the same panel works as a form.
Before you import everything:
• Open any app and check its volumes point at your new migrated folders (AppData, Downloads,
etc.) — so any future service saves everything in the same place.
Mistakes that cost me hours (avoid these):
- Never use the command that deletes an unused disk in Proxmox — it erases the physical drive.
- List what’s inside a folder before deleting anything ZimaOS creates.
- Always import your original compose file instead of reinstalling from scratch, or your
existing config gets ignored.
I documented everything with every command and exact path, plus a video walkthrough.
Useful references:
Full written guide with every command: HOMELAB/Migraciones/CasaOS_to_ZimaOS at main · mateorzan/HOMELAB · GitHub
Video-walkthrough: https://www.youtube.com/watch?v=lFB07rQOISU&t=6s
My setup: ZimaBlade N100 cluster (Proxmox + Proxmox Backup), ZimaOS VM, Raspberry Pi 5.
Happy to answer questions in the comments