Films, music, games, your own cloud, the house's tasks and chat: one free, open-source app, self-hosted on one computer at home and open on every phone, laptop and TV.
Paste this into Claude Code (or any coding agent) on the computer that will run the house:
Install HouseOS here and set it up with me.
Clone https://github.com/boitech-dev/HouseOS
and follow its AGENT-INSTALL.md.
Needs: 64-bit Linux, a Raspberry Pi 4/5, or Windows 11 with WSL 2 · Docker Engine (not Docker Desktop) · 4 GB of memory (8 on Windows) · about 30 GB free.
Install, on Linux:
git clone https://github.com/boitech-dev/HouseOS.git && cd HouseOS && ./houseos.sh install
It takes 10–20 minutes the first time (20–40 on a Pi) and ends with a one-time setup code. Open https://houseos.local:8443 (or the address printed), accept the certificate once and enter the code.
No Docker yet? curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER, then log out and back in.
Windows: wsl --install -d Ubuntu-24.04 as administrator, then docs/WINDOWS.md so phones can reach it, then the Linux line inside Ubuntu.
Mac: can open HouseOS, can't host it.
.mp4 plays on the TV without ads, gone 6 hours after you watch..ips or .bps patch.
Every setting, every look, every feature: change it in plain words, or by hand. Your coding agent edits the HouseOS folder; Nox lives in the app and changes things on a tap.
Read AGENTS.md. Add a room for our plants:
watering days, a photo of each, and
a reminder for whoever's turn it is.
Set quiet hours from 11 p.m.
Why was there no sound last night?
./houseos.sh buttons on..houseos-theme file, brought in from Your preferences → Appearance.Read themes/AGENT-KIT.md. Make a theme
from these two photos: a café in Lisbon
at 8 a.m., warm and calm.
Made something good? A theme, a room, a Nox tool, a fix: open a pull request, or show it in Discussions.
One computer at home runs the house in Docker; everyone else opens a browser.
Easiest: let your agent run it. Open the HouseOS folder in Claude Code (or any coding agent) and ask: "update HouseOS", "back it up", "why is there no sound?". AGENTS.md tells it how. Or just ask Nox, right in the app: "why is there no sound?", "update HouseOS".
| Computer | Runs HouseOS? |
|---|---|
| 🐧 Linux, x86_64 or arm64: a mini-PC, a NAS, an old laptop | ✅ Ubuntu, Debian and most distros |
| 🍓 Raspberry Pi 4/5, 4 GB+, 64-bit OS, an SSD rather than the SD card | ✅ slower first build and voice |
| 🖥️ Windows 11 (22H2+) with WSL 2 | ✅ docs/WINDOWS.md |
| 📦 Unraid, Proxmox, Fedora, Mint, Arch | ✅ a few notes |
| 🍎 macOS | opens HouseOS, can't host it |
| ❌ Podman, rootless Docker, 32-bit | not supported. Docker Desktop starts it, but can't cast or find devices |
Needs: Docker Engine with Compose v2 (2.24+) · 4 GB of memory (8 comfortable) · about 30 GB free, plus room for songs and films · the same network as the phones (not a guest Wi-Fi). No screen or speakers needed.
./houseos.sh # the menu
./houseos.sh install # first install
./houseos.sh update # new version, rebuilt; the music resumes at the same second
./houseos.sh backup # database + state (keys) + files into backups/<date>
./houseos.sh status # what runs
./houseos.sh logs [api worker…] # what it says, live
./houseos.sh setup-code # the one-time setup code again
./houseos.sh buttons on|off # the Control Room buttons (update, backup… from the app)
./houseos.sh gpu on|off # voice typing on an NVIDIA card, or the processor
./houseos.sh torrents on|off # the torrent player: a stream add-on without a debrid service
./houseos.sh own-address # HouseOS as its own device on the network
docker compose down stops HouseOS and keeps everything. docker compose down -v deletes it all: only for a real fresh start.
| Open | When |
|---|---|
https://houseos.local:8443 | the usual way, from any device at home. The browser warns once about the certificate: it's your house's own |
https://<server-ip>:8443 | if houseos.local doesn't open (some Android and older Windows) |
https://your.domain | behind your own proxy, pointed at http://<server>:8990 |
houseos.local). 8990 is plain HTTP for a proxy, on this computer only.Tailscale gives a real certificate with nothing to configure:
tailscale serve --bg 8990
Then open https://<server>.<tailnet>.ts.net and add it in Control Room → Access.
Caddy (nginx, Apache, Traefik and proxies in containers: docs/DOCKER.md §3):
house.example.lan {
reverse_proxy 127.0.0.1:8990
}
Never open HouseOS to the whole internet: use your network or a private VPN like Tailscale.
./houseos.sh buttons on (or yes at install) adds a small helper, so Control Room → Services can update, back up and move voice to the graphics card with a button.houseos.sh's fixed actions, when the app asks with a note signed by the house's own key. ./houseos.sh buttons off removes it../houseos.sh backup writes backups/<date>/: the database, the state (with the keys that unlock saved passwords) and your files, plus your settings. Everything pauses for about a minute. Keep them private and copy them to another disk.
To restore on a fresh clone, before the first start:
cp backups/<date>/houseos.env .env && chmod 600 .env
docker compose create
docker compose run --rm --no-deps -u 0 -v "$PWD/backups/<date>":/b --entrypoint tar db xzf /b/houseos-db.tgz -C /var/lib/mysql
docker compose run --rm --no-deps -u 0 -v "$PWD/backups/<date>":/b --entrypoint tar api xzf /b/houseos-files.tgz -C /
docker compose up -d
./houseos.sh gpu on, with the NVIDIA Container Toolkit. It falls back to the processor by itself. The microphone needs an https:// address.import folder next to HouseOS, or point HOUSEOS_IMPORT_DIR in .env at yours. HouseOS reads them where they are and never changes them.HOUSEOS_MDNS_NAME= in .env gives one another name../houseos.sh logs, then the table in docs/DOCKER.md → When something is off.Guides: START-HERE (English and French) · DOCKER (every option) · WINDOWS · DEVICES (TVs, speakers and remotes, by brand) · SETUP (no Docker)
python and docker images); MariaDB, tusd and Caddy come ready-made.Nothing personal ships with HouseOS. In the app's Control Room you add:
The full checklist: AGENT-INSTALL.md §5.
Yes, MIT. Only what you choose may cost something: a paid AI, a debrid service.
For new songs, radio, film streams, web videos and a cloud AI. Kept songs, your files, the house board and Watch's filters work without it.
Yes, through Tailscale or your own reverse proxy (docs/DOCKER.md §3): your files, the house board, films kept at home and your games, in the browser.
Chats, film history, private events, personal files and game saves stay with their owner. Guests only get the music queue and the TV.
English and French are built in. Ask Nox for another and it translates the whole app; everyone picks theirs in Your preferences.
Recent Chrome, Edge, Firefox and Safari. iPhone and iPad: iOS 15 or later; notifications need iOS 16.4+ and HouseOS added to the Home Screen.
/v1)./import, docs/DOCKER.md). Plex isn't supported: point Jellyfin at the same folders..mp4 links and most sites yt-dlp knows.You bring your ROMs: an upload, a link to a file you keep online, or the folder where you already keep them (read where it is, never copied). HouseOS never downloads a game; it only fetches emulators and open data (names, covers). A console that needs a BIOS gets it from you too. docs/GAMES.md
On the server: ./houseos.sh update. With the Control Room buttons on (./houseos.sh buttons on,
or yes when installing), HouseOS also looks for new versions by itself and Nox leaves admins a
note when one is out. Then:
Details: docs/DOCKER.md §9.
Step by step: docs/DEVICES.md.
Phones can't open it, a certificate warning, no sound, no microphone, a TV not found: the table in docs/DOCKER.md → When something is off. Or ask Nox in setup mode, or your own coding agent.
./houseos.sh update.api (FastAPI), https (Caddy, port 8443), db (MariaDB), worker (music), cinema-worker and cinema-observer (films), fetch (the only part that talks to YouTube, SoundCloud and radios), audio (the speakers), relay (media for TVs, port 8991), voice, tusd (uploads), maintenance, and codex/claude (subscription sign-ins); helper only with the Control Room buttons. Data in the volumes houseos-db, houseos-state (keys: keep private) and houseos-data.
MIT (LICENSE); the rest is in NOTICE.md. HouseOS ships no media and no accounts.
Made by BoiTech. The Zabiwa theme, the look of this page, is a collaboration with the digital artist Zabiwa: its pictures are details of the artist's artworks, made for HouseOS.
Python
40.0%
TypeScript
25.2%
HTML
23.0%
CSS
6.2%
JavaScript
5.0%
Films, music, games, your own cloud, the house's tasks and chat: one free, open-source app, self-hosted on one computer at home and open on every phone, laptop and TV.
Paste this into Claude Code (or any coding agent) on the computer that will run the house:
Install HouseOS here and set it up with me.
Clone https://github.com/boitech-dev/HouseOS
and follow its AGENT-INSTALL.md.
Needs: 64-bit Linux, a Raspberry Pi 4/5, or Windows 11 with WSL 2 · Docker Engine (not Docker Desktop) · 4 GB of memory (8 on Windows) · about 30 GB free.
Install, on Linux:
git clone https://github.com/boitech-dev/HouseOS.git && cd HouseOS && ./houseos.sh install
It takes 10–20 minutes the first time (20–40 on a Pi) and ends with a one-time setup code. Open https://houseos.local:8443 (or the address printed), accept the certificate once and enter the code.
No Docker yet? curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER, then log out and back in.
Windows: wsl --install -d Ubuntu-24.04 as administrator, then docs/WINDOWS.md so phones can reach it, then the Linux line inside Ubuntu.
Mac: can open HouseOS, can't host it.
.mp4 plays on the TV without ads, gone 6 hours after you watch..ips or .bps patch.
Every setting, every look, every feature: change it in plain words, or by hand. Your coding agent edits the HouseOS folder; Nox lives in the app and changes things on a tap.
Read AGENTS.md. Add a room for our plants:
watering days, a photo of each, and
a reminder for whoever's turn it is.
Set quiet hours from 11 p.m.
Why was there no sound last night?
./houseos.sh buttons on..houseos-theme file, brought in from Your preferences → Appearance.Read themes/AGENT-KIT.md. Make a theme
from these two photos: a café in Lisbon
at 8 a.m., warm and calm.
Made something good? A theme, a room, a Nox tool, a fix: open a pull request, or show it in Discussions.
One computer at home runs the house in Docker; everyone else opens a browser.
Easiest: let your agent run it. Open the HouseOS folder in Claude Code (or any coding agent) and ask: "update HouseOS", "back it up", "why is there no sound?". AGENTS.md tells it how. Or just ask Nox, right in the app: "why is there no sound?", "update HouseOS".
| Computer | Runs HouseOS? |
|---|---|
| 🐧 Linux, x86_64 or arm64: a mini-PC, a NAS, an old laptop | ✅ Ubuntu, Debian and most distros |
| 🍓 Raspberry Pi 4/5, 4 GB+, 64-bit OS, an SSD rather than the SD card | ✅ slower first build and voice |
| 🖥️ Windows 11 (22H2+) with WSL 2 | ✅ docs/WINDOWS.md |
| 📦 Unraid, Proxmox, Fedora, Mint, Arch | ✅ a few notes |
| 🍎 macOS | opens HouseOS, can't host it |
| ❌ Podman, rootless Docker, 32-bit | not supported. Docker Desktop starts it, but can't cast or find devices |
Needs: Docker Engine with Compose v2 (2.24+) · 4 GB of memory (8 comfortable) · about 30 GB free, plus room for songs and films · the same network as the phones (not a guest Wi-Fi). No screen or speakers needed.
./houseos.sh # the menu
./houseos.sh install # first install
./houseos.sh update # new version, rebuilt; the music resumes at the same second
./houseos.sh backup # database + state (keys) + files into backups/<date>
./houseos.sh status # what runs
./houseos.sh logs [api worker…] # what it says, live
./houseos.sh setup-code # the one-time setup code again
./houseos.sh buttons on|off # the Control Room buttons (update, backup… from the app)
./houseos.sh gpu on|off # voice typing on an NVIDIA card, or the processor
./houseos.sh torrents on|off # the torrent player: a stream add-on without a debrid service
./houseos.sh own-address # HouseOS as its own device on the network
docker compose down stops HouseOS and keeps everything. docker compose down -v deletes it all: only for a real fresh start.
| Open | When |
|---|---|
https://houseos.local:8443 | the usual way, from any device at home. The browser warns once about the certificate: it's your house's own |
https://<server-ip>:8443 | if houseos.local doesn't open (some Android and older Windows) |
https://your.domain | behind your own proxy, pointed at http://<server>:8990 |
houseos.local). 8990 is plain HTTP for a proxy, on this computer only.Tailscale gives a real certificate with nothing to configure:
tailscale serve --bg 8990
Then open https://<server>.<tailnet>.ts.net and add it in Control Room → Access.
Caddy (nginx, Apache, Traefik and proxies in containers: docs/DOCKER.md §3):
house.example.lan {
reverse_proxy 127.0.0.1:8990
}
Never open HouseOS to the whole internet: use your network or a private VPN like Tailscale.
./houseos.sh buttons on (or yes at install) adds a small helper, so Control Room → Services can update, back up and move voice to the graphics card with a button.houseos.sh's fixed actions, when the app asks with a note signed by the house's own key. ./houseos.sh buttons off removes it../houseos.sh backup writes backups/<date>/: the database, the state (with the keys that unlock saved passwords) and your files, plus your settings. Everything pauses for about a minute. Keep them private and copy them to another disk.
To restore on a fresh clone, before the first start:
cp backups/<date>/houseos.env .env && chmod 600 .env
docker compose create
docker compose run --rm --no-deps -u 0 -v "$PWD/backups/<date>":/b --entrypoint tar db xzf /b/houseos-db.tgz -C /var/lib/mysql
docker compose run --rm --no-deps -u 0 -v "$PWD/backups/<date>":/b --entrypoint tar api xzf /b/houseos-files.tgz -C /
docker compose up -d
./houseos.sh gpu on, with the NVIDIA Container Toolkit. It falls back to the processor by itself. The microphone needs an https:// address.import folder next to HouseOS, or point HOUSEOS_IMPORT_DIR in .env at yours. HouseOS reads them where they are and never changes them.HOUSEOS_MDNS_NAME= in .env gives one another name../houseos.sh logs, then the table in docs/DOCKER.md → When something is off.Guides: START-HERE (English and French) · DOCKER (every option) · WINDOWS · DEVICES (TVs, speakers and remotes, by brand) · SETUP (no Docker)
python and docker images); MariaDB, tusd and Caddy come ready-made.Nothing personal ships with HouseOS. In the app's Control Room you add:
The full checklist: AGENT-INSTALL.md §5.
Yes, MIT. Only what you choose may cost something: a paid AI, a debrid service.
For new songs, radio, film streams, web videos and a cloud AI. Kept songs, your files, the house board and Watch's filters work without it.
Yes, through Tailscale or your own reverse proxy (docs/DOCKER.md §3): your files, the house board, films kept at home and your games, in the browser.
Chats, film history, private events, personal files and game saves stay with their owner. Guests only get the music queue and the TV.
English and French are built in. Ask Nox for another and it translates the whole app; everyone picks theirs in Your preferences.
Recent Chrome, Edge, Firefox and Safari. iPhone and iPad: iOS 15 or later; notifications need iOS 16.4+ and HouseOS added to the Home Screen.
/v1)./import, docs/DOCKER.md). Plex isn't supported: point Jellyfin at the same folders..mp4 links and most sites yt-dlp knows.You bring your ROMs: an upload, a link to a file you keep online, or the folder where you already keep them (read where it is, never copied). HouseOS never downloads a game; it only fetches emulators and open data (names, covers). A console that needs a BIOS gets it from you too. docs/GAMES.md
On the server: ./houseos.sh update. With the Control Room buttons on (./houseos.sh buttons on,
or yes when installing), HouseOS also looks for new versions by itself and Nox leaves admins a
note when one is out. Then:
Details: docs/DOCKER.md §9.
Step by step: docs/DEVICES.md.
Phones can't open it, a certificate warning, no sound, no microphone, a TV not found: the table in docs/DOCKER.md → When something is off. Or ask Nox in setup mode, or your own coding agent.
./houseos.sh update.api (FastAPI), https (Caddy, port 8443), db (MariaDB), worker (music), cinema-worker and cinema-observer (films), fetch (the only part that talks to YouTube, SoundCloud and radios), audio (the speakers), relay (media for TVs, port 8991), voice, tusd (uploads), maintenance, and codex/claude (subscription sign-ins); helper only with the Control Room buttons. Data in the volumes houseos-db, houseos-state (keys: keep private) and houseos-data.
MIT (LICENSE); the rest is in NOTICE.md. HouseOS ships no media and no accounts.
Made by BoiTech. The Zabiwa theme, the look of this page, is a collaboration with the digital artist Zabiwa: its pictures are details of the artist's artworks, made for HouseOS.
Python
40.0%
TypeScript
25.2%
HTML
23.0%
CSS
6.2%
JavaScript
5.0%