Early build

Home automation you actually own

A single Go binary and a React interface, deployed together on your own PC or SBC - your own database, your own network, no cloud account required to make your lights work.

DomOS's app shell - sidebar navigation and dashboard DomOS's app shell - sidebar navigation and dashboard, shown in dark mode
Why DomOS

Built to run on your own hardware

DomOS is early - the automation engine itself is still being built. What's already real is the foundation it's built on.

One Go binary

Backend and frontend build separately, then ship as one small static binary - no runtime to install, no dependency hell on a Raspberry Pi.

x86, x86_64, and arm64

Runs the same way on an old PC, a NUC, or a Raspberry Pi/SBC - cross-compiled Go, no architecture-specific build to chase down.

Your own MariaDB

Every user account and setting lives in a database you run yourself - the app imports its own schema on first boot, nothing to configure by hand.

Headless-capable

A DOMOS_HEADLESS flag turns off the web UI entirely, leaving only the API - useful if something else (another automation system, a mobile app) is the only thing that ever talks to it.

No cloud account

DomOS never phones home to make your devices work. The only account that exists is the admin one you create on first boot, on your own server.

Actually simple to run

Copy the env template, set a database password, docker compose up -d. That's the whole deploy - no separate services to wire together yourself.

Architecture

One image, one command

The frontend and backend are built separately, then shipped together - no separate services to wire up.

1

Go backend, React frontend

A React interface, built and embedded directly into a single Go binary via go:embed - the binary serves its own UI, so there's nothing else to point at what.

GoReact
2

Your own database

A MariaDB container alongside it - the schema imports itself on first boot. Your data stays on your server, in a database only you control.

MariaDB
3

docker compose up

One command brings up the whole thing - the app and its database, healthchecked and wired together for you.

Docker Compose
Get started

Deploy it

Full walkthrough: getting started guide. Here's the shape of it.

1. Download & configure

Grab docker-compose.yml and .env.example, then set a database password.

# in an empty folder
cp .env.example .env
# set DB_PASSWORD / DB_ROOT_PASSWORD

2. Run it

Pulls the published image automatically and starts the app plus its MariaDB container.

docker compose up -d

3. Create the admin account

Open the app in your browser - the first thing it asks for is a username, email, and password. That's the whole setup.