Homeio
⌘KInstall

Install Homeio

One command on Debian, Ubuntu or Raspberry Pi OS, or a Docker Compose stack anywhere Docker runs. Both take a few minutes, and both end in the same dashboard.

Updated

Homeio
Homeio terminal on a freshly installed home server

Requirements

Homeio has two install paths. The install script sets it up directly on the machine, as a system service. Docker Compose runs it in two containers, one for Homeio and one for its PostgreSQL database.

What each install path needs
Install scriptDocker Compose
Operating systemDebian, Ubuntu or Raspberry Pi OS (anything with apt-get)Any system that runs Docker and Docker Compose
CPUx86_64 or 64-bit ARM (aarch64)Whatever the image runs on
AccessRoot, through sudoA user allowed to run Docker
Web interfacePort 80, through NginxPort 12026
Updates from the UIYesPull the new image instead

Homeio runs on a Raspberry Pi 4 or 5, an N100 mini PC or an old desktop. The Docker install caps Homeio itself at 1 GB of memory, and 4 GB of RAM leaves room for a few apps. Use a 64-bit OS on a Raspberry Pi.

Install with the script

On a fresh Debian, Ubuntu or Raspberry Pi OS machine, run:

curl -fsSL https://get.homeio.app | sudo bash

The script installs Docker if it is missing, installs Homeio and PostgreSQL, sets Homeio up as a service and puts it behind Nginx on port 80. It also names the machine homeio and announces it on your network, so you can reach it at homeio.local.

When it finishes, it prints two addresses. Open either one in a browser:

http://homeio.local
http://your-server-ip

get.homeio.app serves the same file as scripts/install.sh in the repository. Read it before you pipe it into sudo bash if you like to know what runs as root.

Install script options

Set options as environment variables after sudo. For example, to serve the interface on port 8080 and name the machine nas:

curl -fsSL https://get.homeio.app | sudo HOMEIO_PUBLIC_PORT=8080 HOMEIO_HOSTNAME=nas bash
Install script environment variables
VariableDefaultWhat it does
HOMEIO_HOSTNAMEhomeioMachine name. The interface is reachable at <name>.local.
HOMEIO_PUBLIC_PORT80Port Nginx serves the interface on.
HOMEIO_RELEASE_TAGnoneSet to latest, or a tag such as v1.9.7, to install that release instead of the main branch.
HOMEIO_DRY_RUNfalseSet to true to print every step without changing anything.
HOMEIO_VERBOSEfalseSet to true to show the output of each step.

Install with Docker Compose

Docker Compose works anywhere Docker runs. PostgreSQL ships in the same compose file, so there is nothing else to set up:

git clone https://github.com/doctor-io/homeio.git
cd homeio
docker compose up -d

Then open http://your-server-ip:12026. Homeio mounts the Docker socket to manage your containers and keeps files and app data under /DATA on the host. Set DATA_ROOT to use another folder.

The session secret is generated on first start and kept in a Docker volume. To pin your own, set AUTH_SESSION_SECRET to a random string of 32 characters or more before you start the stack.

Create your account

The first time you open Homeio, it asks you to create an account. That account is the administrator, and registration closes as soon as it exists: Homeio has one account per installation.

From there, the documentation walks through installing apps, sharing folders, backups and remote access.

Update Homeio

On a script install, open Settings → Updates and install the new version from there, or run the update script:

Install scriptbash
curl -fsSL https://raw.githubusercontent.com/doctor-io/homeio/main/scripts/update.sh | sudo bash

On Docker Compose, pull the new image and recreate the container from the folder you cloned:

Docker Composebash
docker compose pull && docker compose up -d

Uninstall Homeio

The uninstall script removes Homeio and keeps your data:

curl -fsSL https://raw.githubusercontent.com/doctor-io/homeio/main/scripts/uninstall.sh | sudo bash

To remove everything, data included, add --purge --yes. There is no undo:

curl -fsSL https://raw.githubusercontent.com/doctor-io/homeio/main/scripts/uninstall.sh | sudo bash -s -- --purge --yes

On Docker Compose, docker compose down stops Homeio and keeps its volumes; docker compose down -v deletes them too.

⌘HWhere Homeio fits

After the install, everything else is in the browser.

Once Homeio is running, you install apps, manage files and disks, schedule tasks, take backups and set up remote access from its interface. Everything it installs is plain Docker Compose, so you can still manage it from the command line.

⌘?FAQ

Install questions.

Which operating systems does Homeio support?

The install script supports Debian, Ubuntu and Raspberry Pi OS on x86_64 or 64-bit ARM. The Docker Compose install runs anywhere Docker and Docker Compose run.

Does Homeio run on a Raspberry Pi?

Yes, on a 64-bit Raspberry Pi OS. A Raspberry Pi 4 or 5 with 4 GB of RAM or more leaves room for a few apps.

What port does Homeio use?

Port 80 with the install script (change it with HOMEIO_PUBLIC_PORT), and port 12026 with Docker Compose.

How do I update Homeio?

On a script install, from Settings → Updates or with the update script. On Docker Compose, run docker compose pull && docker compose up -d.

Does uninstalling Homeio delete my files?

No. The uninstall script keeps your data unless you add --purge --yes.