Install with Docker Compose
This path is for a machine that already runs Docker, such as a NAS or home server. It starts the Élise core from the bundle published with each release.
Requirements
Section titled “Requirements”- Docker Engine 23 or later, and Docker Compose v2.24.4 or later.
- Linux AMD64 or ARM64, 8 GB of memory recommended (4 GB minimum).
- Ports 8080 and 8555 free. Home Assistant uses the host network on port 8124.
No account is needed: the images are public on GitHub Container Registry.
Install
Section titled “Install”# Fetch the latest releaseVERSION=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/Elise-OS/EliseOS/releases/latest)")mkdir -p ~/elise && cd ~/elisecurl -fsSLO https://github.com/Elise-OS/EliseOS/releases/download/$VERSION/elise-runtime-$VERSION.tar.gzcurl -fsSLO https://github.com/Elise-OS/EliseOS/releases/download/$VERSION/elise-runtime-$VERSION.tar.gz.sha256
# Verify, then extract the archivesha256sum -c elise-runtime-$VERSION.tar.gz.sha256tar -xzf elise-runtime-$VERSION.tar.gz
# Configurecp .env.example .envsed -i "s/^MICHEL_VERSION=.*/MICHEL_VERSION=$VERSION/" .env
# Optional: detect the Zigbee adapterbash scripts/detect-zigbee-adapter.sh --write-env .env
# Startdocker compose -p elise -f compose.yaml -f compose.release.yaml up -dThen open http://<server-address>:8080. On first start, the local assistant creates the administrator account.
Secrets (PostgreSQL, MQTT, sessions, camera encryption) are generated on first start in a private Docker volume. No secret is written to .env.
docker compose -p elise -f compose.yaml -f compose.release.yaml pscurl -fsS http://127.0.0.1:8080/api/v1/system/healthThe health endpoint returns "status":"ok" and the installed version.
Update
Section titled “Update”Repeat the installation in the same folder with the new release: Docker volumes (database, secrets, models) are kept. Take a backup first.
Useful settings
Section titled “Useful settings”In .env:
| Variable | Role |
|---|---|
MICHEL_HTTP_PORT |
Caregiver space port (8080 by default) |
MICHEL_LOCAL_URL |
Local address announced to the mobile app |
TZ |
Time zone |
ZIGBEE_ADAPTER_MODE |
auto, or manual for a remote or unusual coordinator |
MICHEL_BACKUP_RECIPIENT |
Public age key for encrypted backups |
