Skip to content

CasaOS: Web Dashboard for Home Lab

CasaOS is a lightweight web dashboard for managing Docker containers on a single host. If you’re currently accessing each container through its own port, this replaces that mess with a unified interface where you can install apps with a couple of clicks, monitor resources, and manage storage — without touching Nginx or dealing with Portainer’s complexity.

Installation

CasaOS installs on a clean system with one command. Supported distros: Debian 10+, Ubuntu 18.04+, Raspbian. If Docker is already running, remove it first or accept that CasaOS will take over the Docker daemon.

curl -fsSL https://get.casaos.io | bash

The script outputs the dashboard address when done. Default is http://<server-IP>:80. Web UI is ready immediately, logged in as root.

Note

The installer deploys its own Docker stack. If you already have dockerd running, CasaOS will overwrite network configs. Make sure you have snapshots or a backup ready.

Check the service status after installation:

systemctl status casaos

Interface and Features

The main screen shows installed apps as tiles. Each card displays status (running / stopped), an icon, and quick actions: start, stop, restart, delete.

Left sidebar: file manager, container list, app store, and settings. Out of the box CasaOS provides:

  • volume creation and USB drive mounting;
  • port forwarding through the web interface;
  • CPU, RAM, disk, and network usage metrics;
  • compose file editing directly in the browser.

For a home lab, this covers about 80% of needs. The remaining 20% is manual compose files.

Installing Apps from the Catalog

The CasaOS catalog has several dozen pre-built templates. Find what you need, click Install — CasaOS generates the compose file and starts the container. Under the hood it runs AppStore, essentially a docker-compose wrapper.

Typical flow:

  1. Open App Store in the left sidebar.
  2. Pick an app, for example Plex or AdGuard Home.
  3. Set the data path and port mappings if needed.
  4. Click Install.

For AdGuard Home, CasaOS runs this under the hood:

docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  -v /opt/adguardhome/work:/opt/adguardhome/work \
  -v /opt/adguardhome/conf:/opt/adguardhome/conf \
  -p 53:53/tcp \
  -p 53:53/udp \
  -p 3000:3000/tcp \
  --network host \
  adguard/adguardhome

All parameters are set through the web form — no manual editing required.

Running Containers Manually

When an app isn’t in the catalog, CasaOS lets you upload your own compose file.

# example: Cloudflare Tunnel for external access
docker run -d \
  --name cloudflared \
  --restart unless-stopped \
  -e TUNNEL_TOKEN=your_token \
  docker.io/cloudflare/cloudflared:latest \
  tunnel run

In CasaOS: App Store → Upload — drop in the YAML. It parses the file, lets you adjust variables, and launches. The container appears on the main screen.

Tip

Use /DATA/AppData/ for all volumes. This makes backups straightforward — all state lives in one directory.

Storage Layout

CasaOS creates three key directories:

PathPurpose
/DATA/AppData/Application configs
/DATA/Storage/User files
/var/lib/casaos/Panel system data

When you attach a new disk or USB drive, it shows up in File Manager and mounts automatically. You can set any directory as the default storage location for new apps: Settings → Storage → Default Location.

Updates and Maintenance

Updating the panel itself:

wget https://github.com/IceWhaleTech/CasaOS/releases/latest/download/casaos-update.sh
bash casaos-update.sh

Container images update through the web UI: app card → menu (⋮) → Update. CasaOS pulls the fresh image and recreates the container, leaving data untouched.

Service logs are accessible via terminal:

journalctl -u casaos -f
docker logs casaos -f

To prune unused images and networks:

docker system prune -af

When to Choose Something Else

CasaOS works well for a single host. If you’re running a multi-machine cluster, it won’t help — it’s not a replacement for Kubernetes or Docker Swarm.

Portainer gives more control over networks, images, and stacks. If you prefer detailed configuration and write compose files by hand, CasaOS will feel limiting.

Yacht is even more minimal, with no enforced directory structure. Good if you only want a web UI for containers without a file manager or app catalog.

Warning

CasaOS is actively developed. Minor releases break template compatibility more often than ideal. Keep your working compose files in a Git repository so you can rebuild stacks from scratch if needed.

For a home server running Pi-hole, Home Assistant, Jellyfin, and a few utilities — CasaOS handles the job without overhead. Install it, add your apps, forget about it.