Projects / Smart home server: media, AI cameras, automation
Smart home server: media, AI cameras, automation
One Linux machine at home runs our media library, a camera recorder with on-device AI, home automation and the family photo library.
- 02:00 The nightly copy of the photo library goes to the NAS.
- 07:36 Someone comes to the door. Frigate spots a person on the Coral TPU, MQTT tells Home Assistant, and a phone gets a notification.
- 11:00 A recording is transcribed on the GPU by Whisper, without leaving the house.
- 13:15 A car pulls into the drive. Frigate detects it, MQTT passes it on, and Home Assistant switches on the lights it is told to.
- 15:30 Someone asks the smart home AI for help with a text. The local language model behind it starts when it is needed.
- 17:30 A coding agent asks Home Assistant for the state of the house through its MCP server.
- 20:30 In the evening a film plays on the TV at home, transcoded on the GPU when the device needs it.
Layout. Every service is its own Docker Compose stack. A reverse proxy is the single web entry point and issues certificates on its own, so adding a service takes a few labels in its compose file. Services talk to each other over internal container networks, and a host firewall limits what the local network can open.
The camera recorder. Frigate records the cameras. I chose a Coral TPU for its object detection and integrated it, so detection uses little power instead of the CPU or the big GPU. The card is made for an M.2 slot my PC does not have, so I found a PCIe adapter board that let me fit it. A person or a car is spotted in real time without a frame leaving the house, and detections go out over MQTT, so Home Assistant can act on them.
Media and photos. The film library sits on a NAS, and the GPU transcodes a stream when a device needs it. The photo library finds faces and searches with its own machine learning, and it is copied to the NAS every night.
Home Assistant. It ties the house together, with dashboards for the 3D printer, electricity use and tariff blocks, and the health of the detection hardware. My coding agents set up the printer integration, its dashboard and the print alerts.
Local AI. Whisper transcribes audio on the GPU, and I host language models that I start when they're needed. At home we use them for writing. Through Home Assistant's MCP server the agents can operate the house too.
Operations. I treat the server like production: one entry point and least exposure. A written operating map of the host covers how stacks are laid out, the proxy's label pattern, the firewall rules, and where each secret lives (never the secret itself).












