CasaOS installs onto a running Debian, Ubuntu or Raspberry Pi OS system and adds a home-cloud dashboard: an app store of preconfigured Docker containers, a file manager and basic disk management. IceWhale, its maintainer, has moved development to its ZimaOS product.
Our verdict on CasaOS#
Be clear about who CasaOS is for: someone with a spare mini PC or a Raspberry Pi who wants Jellyfin and Nextcloud running tonight and has never written a compose file. For that person it works, and the app store genuinely removes the first hard step. Everything after that is the problem. The last stable release is v0.4.15, dated 19 December 2024, with only an alpha since; IceWhale's own site now says the project has been upgraded to ZimaOS, and maintainers describe CasaOS as being in a maintenance phase while they work on ZimaOS, which is the OS for their ZimaBoard and ZimaCube hardware. The install script still pulls alpha builds for the gateway, message bus and app management components. When Docker Engine 29.0 raised the minimum API version, CasaOS app management broke for a lot of users because it speaks API 1.43. Use it to learn, then move to plain compose.
Who CasaOS is for#
Choose it if
- A first-time self-hoster who wants a dashboard and an app store rather than a terminal, on hardware they already own
- Someone with a ZimaBoard or similar low-power x86 board who wants the vendor's intended experience
- A short-term evaluation host where you want five services running in an hour and do not care about the next two years
Look elsewhere if
- You want a project that is actively developed, because the last stable release predates this entry by over 20 months
- You are already comfortable with docker compose, in which case CasaOS is a layer between you and the thing you understand
- You need real multi-user access control or SSO, neither of which exists
What running it actually looks like#
curl -fsSL https://get.casaos.io | sudo bash on Debian 12, Ubuntu Server or Raspberry Pi OS. It installs Docker if absent, then a set of systemd services: gateway, message bus, user service, local storage, app management and the main CasaOS binary, with the web gateway bound to port 80. If 80 is occupied the installer scans upward for a free port and writes it into /etc/casaos/gateway.ini, which is why some installs answer on an unexpected port. It creates /DATA on the root filesystem for app volumes and files. Nothing is containerized except the apps you install. Uninstall is casaos-uninstall. There is no upgrade path worth planning around, because there has been nothing to upgrade to since December 2024.
Resource profile#
- Memory
- 300 MB idle, around 900 MB in ordinary use. The CasaOS services themselves are small Go binaries; the number moves entirely with which app-store containers you install on top.
- CPU and acceleration
- The dashboard is idle, but the file manager's thumbnail generation and any media app you install from the store are what actually load a low-power board.
- Storage growth
- CasaOS itself is under 200 MB; the `/DATA` directory it creates is where app volumes and your files land, and it is on the root filesystem unless you point it elsewhere.
- Operational load
- 2 of 5, Light. Nothing to tune day to day, but development has effectively stopped, so the attention cost is watching for the environment to break underneath it, as Docker 29 did. That is a light but non-zero level 2.
Figures describe a small single-household install and are the working assumptions behind our stack planner. Your numbers will differ with library size, user count and hardware. See methodology.
Data and backup surface#
/etc/casaos holds the gateway port, app-management config and the app store source list. /var/lib/casaos holds the SQLite databases with your user, installed app records and file index. /DATA is where the app store points container volumes and where the file manager stores uploads, and it is the large one. Back up all three, plus a docker compose config dump or the container definitions for anything you installed, because the CasaOS app records alone will not reconstruct a container on a different system. Nothing here needs a database dump; SQLite files copy safely with the services stopped. Container images are regenerable.
Derived backup shape
SQLite backup. sqlite3 <db> ".backup out.db" while running, or stop the container and copy. A live cp of a WAL-mode SQLite file can restore corrupt.
Traps and surprises#
Docker 29 breaks the app store
The bundled casaos-app-management binary is built against Docker API 1.43, and Docker Engine 29.0.0 raised the daemon's minimum to 1.44. The symptom is CasaOS loading fine while the Apps page shows only "Failed to load apps, please refresh later". Docker 29.3.0 lowered the floor back to 1.40, so upgrading Docker past 29.2 is the real fix rather than pinning Docker to an old version indefinitely.
The installer pulls alpha components
Read the install script and you will see it fetch gateway v0.4.9-alpha4, message-bus v0.4.4-3-alpha2, app-management v0.4.10-alpha2 and cli v0.4.4-3-alpha1 alongside the stable v0.4.15 core. That is not a mistake in your setup; it is what the current script does. If something behaves oddly, you are running prerelease code by default, and there is no stable channel to fall back to.
Development moved to ZimaOS
IceWhale's own CasaOS site states the project has been upgraded to ZimaOS, and maintainers have said CasaOS is in a maintenance phase because the team is working on ZimaOS. ZimaOS is a full NAS operating system aimed at ZimaBoard and ZimaCube hardware, not a package you add to an existing Debian install. Migrating means reinstalling the OS, so factor that in before you build a household around CasaOS.
It hides the compose files you will eventually need
Apps installed from the store are ordinary Docker containers, but their definitions live in CasaOS's own database rather than as compose files you can read, version or move. When you outgrow the dashboard, or when it stops working, you have to reconstruct each service by inspecting the running containers. Export docker inspect output for anything you care about while the system still works.
Specifications#
- Category
- Platforms and container management
- Licence
- Apache-2.0 (Permissive)
- Written in
- Go
- First release
- 2021
- Maturity
- Slowed
- Datastore
- SQLite files and INI config under /var/lib/casaos and /etc/casaos
- Default ports
80- Ships as
- one-line install script onto an existing Linux host, preinstalled on ZimaBoard and ZimaCube hardware
- arm64 builds
- Yes
- Identity
- Local accounts only. A single local account created at first boot, no LDAP, no OIDC, and no meaningful multi-user model.
- Replaces
- Synology DSM, Google Drive, Dropbox
- Project site
- casaos.zimaspace.com
- Source
- github.com/IceWhaleTech/CasaOS
- Documentation
- wiki.casaos.io/en/home
Alternatives to CasaOS#
Everything else in platforms and container management, closest in operational weight first.
| Tool | Ops load | Idle RAM | Licence |
|---|---|---|---|
| Docker Engine | 2, Light | 120 MB | Apache-2.0 (Engine and Compose); Docker Desktop is proprietary |
| Podman | 2, Light | 40 MB | Apache-2.0 |
| Unraid | 2, Light | 2048 MB | Proprietary, perpetual per-device licence |
| Coolify | 3, Moderate | 1200 MB | Apache-2.0 |
| Dokploy | 3, Moderate | 900 MB | Apache-2.0, with DSAL 1.0 reserved for a /proprietary path |
| Komodo | 3, Moderate | 250 MB | GPL-3.0 |
Sources#
Facts on this page were checked against the project's own material. Where a number is our own estimate rather than a published figure, the text says so.
Published . Last reviewed . Found something out of date? Tell us and we will fix it and log the change.