{"id":4582,"date":"2025-11-11T14:20:17","date_gmt":"2025-11-11T14:20:17","guid":{"rendered":"https:\/\/www.it-react.com\/?p=4582"},"modified":"2026-01-05T07:55:40","modified_gmt":"2026-01-05T07:55:40","slug":"the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5","status":"publish","type":"post","link":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/","title":{"rendered":"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5"},"content":{"rendered":"\n<p>At our holiday home \u2014 a quiet place we visit just once or twice a year \u2014 I wanted to know exactly what\u2019s happening there, even when we\u2019re not around. Call it <em>freak-control<\/em> if you will, but when you have a heating system running through the winter and the power tends to drop every now and then, staying informed gives a certain peace of mind.<\/p>\n\n\n\n<p>So I decided to build a small but powerful automation hub based on a <strong>Raspberry Pi 5<\/strong>, running <strong>Docker<\/strong>, <strong>Home Assistant<\/strong>, <strong>Node-RED<\/strong>, and an <strong>MQTT broker<\/strong> (Mosquitto).<br>The idea is simple: all sensors (Govee, Smart Life (Tuya), and others) feed into one unified web interface where I can monitor temperature, humidity, power state, and even camera feeds \u2014 no matter where I am.<\/p>\n\n\n\n<p>This post walks through the entire setup \u2014 from installing Docker on the Raspberry Pi to deploying Home Assistant, Node-RED, and Mosquitto in containers. By the end, you\u2019ll have a self-contained, remotely accessible automation hub that\u2019s reliable, restart-safe, and ready to expand with new devices or automations.<\/p>\n\n\n\n<p>Now, you might be thinking: <em>\u201cAlright, but if the power goes out, what exactly are you monitoring?\u201d<\/em><br>That\u2019s a fair question \u2014 and we\u2019ll get there soon, when we talk about backup power, network resiliency, and remote notifications.<br>But first, let\u2019s focus on building the <strong>main system<\/strong> \u2014 the heart of the automation setup that ties everything together.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Section 1 \u2013 Installing Docker and Docker Compose on Raspberry Pi 5<\/strong><\/h3>\n\n\n\n<p>Before we start deploying anything, we need a solid foundation \u2014 Docker.<br>Running Home Assistant, Node-RED, and Mosquitto inside Docker containers gives us isolation, easy backups, and simple updates. It also means the Raspberry Pi can recover cleanly after a power failure without any manual intervention.<\/p>\n\n\n\n<p>The good news is that Docker works beautifully on the Raspberry Pi 5 \u2014 fast storage, enough RAM, and a 64-bit OS make it feel like a mini server.<\/p>\n\n\n\n<p>Let\u2019s set it up.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1 \u2013 Update your system<\/strong><\/h4>\n\n\n\n<p>It\u2019s always a good idea to make sure your system is up to date before installing new components:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y\nsudo apt install curl git -y<\/code><\/pre>\n\n\n\n<p>This ensures all system packages and dependencies are current.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2 \u2013 Install Docker (Official Script)<\/strong><\/h4>\n\n\n\n<p>The simplest and most reliable way to install Docker on a Raspberry Pi is through the official Docker installation script.<br>It automatically detects your platform, installs all necessary components, and configures Docker to start on boot.<\/p>\n\n\n\n<p>Run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/get.docker.com | sudo sh<\/code><\/pre>\n\n\n\n<p>Once the installation completes, Docker will be up and running as a service (<code>dockerd<\/code>).<\/p>\n\n\n\n<p>You can check its status with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status docker<\/code><\/pre>\n\n\n\n<p>If you see \u201cactive (running)\u201d, you\u2019re good to go.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 3 \u2013 Add your user to the Docker group<\/strong><\/h4>\n\n\n\n<p>By default, Docker commands require root privileges.<br>To avoid typing <code>sudo<\/code> every time, add your user to the <code>docker<\/code> group:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<p>Then log out and back in (or reboot) for the changes to take effect.<\/p>\n\n\n\n<p>You can verify this by running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>groups<\/code><\/pre>\n\n\n\n<p>You should see <code>docker<\/code> listed among your groups.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 4 \u2013 Verify the installation<\/strong><\/h4>\n\n\n\n<p>Check that Docker works:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker --version\ndocker info<\/code><\/pre>\n\n\n\n<p>You should see something like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Docker version 28.5.2, build ecc6942<\/code><\/pre>\n\n\n\n<p>To confirm it can actually run containers, try this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run hello-world<\/code><\/pre>\n\n\n\n<p>If you get a message starting with <em>\u201cHello from Docker!\u201d<\/em>, everything\u2019s working.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f3914531440&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"498\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image.png\" alt=\"\" class=\"wp-image-4586\" srcset=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image.png 909w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-300x164.png 300w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-768x421.png 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 5 \u2013 Verify Docker Compose (v2)<\/strong><\/h4>\n\n\n\n<p>Docker Compose v2 is now built directly into the Docker CLI \u2014 no need to install it separately.<\/p>\n\n\n\n<p>Test it with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose version<\/code><\/pre>\n\n\n\n<p>You should see output similar to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Docker Compose version v2.40.3<\/code><\/pre>\n\n\n\n<p>If this works, you\u2019re ready to orchestrate multiple containers using a single <code>docker-compose.yml<\/code> file.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 6 \u2013 Enable Docker on startup<\/strong><\/h4>\n\n\n\n<p>To make sure Docker starts automatically on boot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable docker\nsudo systemctl start docker<\/code><\/pre>\n\n\n\n<p>That\u2019s it \u2014 Docker is now set up to start automatically and manage containers even after a power outage or reboot.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 7 \u2013 Quick test with Compose<\/strong><\/h4>\n\n\n\n<p>Before we move to the main stack (Home Assistant, Node-RED, Mosquitto), let\u2019s make sure <code>docker compose<\/code> actually works.<\/p>\n\n\n\n<p>Create a test directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir ~\/compose-test &amp;&amp; cd ~\/compose-test<\/code><\/pre>\n\n\n\n<p>Create a simple <code>docker-compose.yml<\/code> file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: \"3\"\nservices:\n  hello:\n    image: hello-world<\/code><\/pre>\n\n\n\n<p>Then run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up<\/code><\/pre>\n\n\n\n<p>You should see the familiar <em>\u201cHello from Docker!\u201d<\/em> message again \u2014 this time launched via Compose.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f3914531aa3&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"546\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-1.png\" alt=\"\" class=\"wp-image-4587\" srcset=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-1.png 909w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-1-300x180.png 300w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-1-768x461.png 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>That\u2019s all we need for the Docker base layer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Section 2 \u2013 Deploying Home Assistant, Node-RED and Mosquitto with Docker Compose<\/strong><\/h3>\n\n\n\n<p>With Docker up and running, we can now set up the actual automation stack.<br>The goal here is to run three containers side by side, each with a clear purpose:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Home Assistant<\/strong> \u2013 the central brain of the system, where all sensors and smart devices are integrated.<\/li>\n\n\n\n<li><strong>Node-RED<\/strong> \u2013 a visual tool for building automation flows and dashboards.<\/li>\n\n\n\n<li><strong>Mosquitto (MQTT broker)<\/strong> \u2013 the message bus that connects Home Assistant and Node-RED with all MQTT-capable devices.<\/li>\n<\/ul>\n\n\n\n<p>By running all three inside Docker, each service stays isolated, easy to restart, and safe from system updates.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1 \u2013 Create a project directory<\/strong><\/h4>\n\n\n\n<p>We\u2019ll keep everything in a single folder so it\u2019s easy to back up later:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir ~\/homeauto\ncd ~\/homeauto\n<\/code><\/pre>\n\n\n\n<p>Inside this folder, Docker will store configuration and persistent data for each container.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2 \u2013 Create the Docker Compose file<\/strong><\/h4>\n\n\n\n<p>Create a new file named <code>docker-compose.yml<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano docker-compose.yml<\/code><\/pre>\n\n\n\n<p>Paste the following content:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  homeassistant:\n    image: ghcr.io\/home-assistant\/home-assistant:stable\n    container_name: homeassistant\n    restart: unless-stopped\n    network_mode: host\n    volumes:\n      - .\/homeassistant:\/config\n    environment:\n      - TZ=Europe\/Bucharest\n\n  mosquitto:\n    image: eclipse-mosquitto:2\n    container_name: mosquitto\n    restart: unless-stopped\n    ports:\n      - \"1883:1883\"\n      - \"9001:9001\"\n    volumes:\n      - .\/mosquitto\/config:\/mosquitto\/config\n      - .\/mosquitto\/data:\/mosquitto\/data\n      - .\/mosquitto\/log:\/mosquitto\/log\n\n  nodered:\n    image: nodered\/node-red:latest\n    container_name: nodered\n    restart: unless-stopped\n    ports:\n      - \"1880:1880\"\n    environment:\n      - TZ=Europe\/Bucharest\n    volumes:\n      - .\/nodered\/data:\/data\n<\/code><\/pre>\n\n\n\n<p>Save and exit (Ctrl+O, Enter, Ctrl+X).<\/p>\n\n\n\n<p>This file defines our three services, their ports, and where they\u2019ll store persistent data.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 3 \u2013 Configure Mosquitto (MQTT broker)<\/strong><\/h4>\n\n\n\n<p>Create the necessary directories and configuration files for Mosquitto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p mosquitto\/config mosquitto\/data mosquitto\/log\nnano mosquitto\/config\/mosquitto.conf\n<\/code><\/pre>\n\n\n\n<p>Paste this minimal configuration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>listener 1883\nallow_anonymous false\npassword_file \/mosquitto\/config\/passwd\n<\/code><\/pre>\n\n\n\n<p>Then create an MQTT user and password:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --rm -it -v $(pwd)\/mosquitto\/config:\/mosquitto\/config eclipse-mosquitto mosquitto_passwd -c \/mosquitto\/config\/passwd homeauto\n<\/code><\/pre>\n\n\n\n<p>You\u2019ll be asked for a password \u2014 remember it; we\u2019ll use it later in Home Assistant and Node-RED.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 4 \u2013 Start the containers<\/strong><\/h4>\n\n\n\n<p>Now bring the entire stack to life:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d<\/code><\/pre>\n\n\n\n<p>Docker will download the images and start all services in the background.<\/p>\n\n\n\n<p>You can check their status with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose ps<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>If Node-RED fails to start (permission denied)<\/strong><\/h4>\n\n\n\n<p>After running <code>docker compose up -d<\/code>, you might notice that Home Assistant and Mosquitto start correctly, but Node-RED keeps restarting or won\u2019t open on port <strong>1880<\/strong>.<br>If you run <code>docker compose ps<\/code>, it may show something like:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nodered   Restarting (1) ...<\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f39145321cc&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"100\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-2-1024x100.png\" alt=\"\" class=\"wp-image-4591\" srcset=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-2-1024x100.png 1024w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-2-300x29.png 300w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-2-768x75.png 768w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-2-1536x150.png 1536w, https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/image-2.png 1989w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>and <code>docker logs nodered<\/code> might include an error such as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Error: EACCES: permission denied, copyfile ... '\/data\/settings.js'<\/code><\/pre>\n\n\n\n<p>This happens because the Node-RED container doesn\u2019t have permission to write into the local <code>nodered\/data<\/code> directory.<\/p>\n\n\n\n<p>To fix it, simply adjust the file ownership on your Raspberry Pi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\/homeauto\nsudo chown -R 1000:1000 nodered\ndocker compose restart nodered<\/code><\/pre>\n\n\n\n<p>Node-RED runs as user ID <strong>1000<\/strong> inside the container (the same as a normal Linux user), so giving it ownership of its data directory allows it to write configuration files properly.<\/p>\n\n\n\n<p>After this, you should see:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Server now running at http:\/\/127.0.0.1:1880\/<\/code><\/pre>\n\n\n\n<p>and be able to open <strong>Node-RED<\/strong> at:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;&lt;your_pi_ip&gt;:1880<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 5 \u2013 Access the web interfaces<\/strong><\/h4>\n\n\n\n<p>Once everything is up, you can reach each service through your browser:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Home Assistant:<\/strong> <code>http:\/\/&lt;your_pi_ip&gt;:8123<\/code><\/li>\n\n\n\n<li><strong>Node-RED:<\/strong> <code>http:\/\/&lt;your_pi_ip&gt;:1880<\/code><\/li>\n\n\n\n<li><strong>Mosquitto:<\/strong> (no web interface \u2014 just the MQTT broker on port 1883)<\/li>\n<\/ul>\n\n\n\n<p>The first startup may take a few minutes, especially for Home Assistant.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 6 \u2013 Initial setup in Home Assistant<\/strong><\/h4>\n\n\n\n<p>When you first open Home Assistant, it will guide you through creating an admin account.<br>After that:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Settings \u2192 Devices &amp; Services \u2192 Add Integration<\/strong><\/li>\n\n\n\n<li>Add:\n<ul class=\"wp-block-list\">\n<li><strong>Tuya<\/strong> (for Smart Life \/ Tuya devices)<\/li>\n\n\n\n<li><strong>MQTT<\/strong> (connect to your local Mosquitto broker)<\/li>\n\n\n\n<li>Optionally later: <strong>HACS<\/strong> (Home Assistant Community Store) for Govee and community plugins<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>To connect to MQTT, use these values:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Broker address:<\/strong> <code>localhost<\/code><\/li>\n\n\n\n<li><strong>Port:<\/strong> <code>1883<\/code><\/li>\n\n\n\n<li><strong>Username:<\/strong> <code>homeauto<\/code><\/li>\n\n\n\n<li><strong>Password:<\/strong> <em>(the one you created earlier)<\/em><\/li>\n<\/ul>\n\n\n\n<p>Once connected, Home Assistant can both publish and subscribe to MQTT topics.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Section 3 \u2013 Integrating Node-RED with Home Assistant<\/strong><\/h3>\n\n\n\n<p>Now that both Home Assistant and Node-RED are up and running, it\u2019s time to make them talk to each other.<br>Node-RED will handle the <em>logic<\/em> and <em>visual flow<\/em> of your automations, while Home Assistant remains the central hub that holds all devices, sensors, and entities.<\/p>\n\n\n\n<p>To make this connection, we\u2019ll link Node-RED directly to Home Assistant\u2019s API using a secure <strong>access token<\/strong>.<br>This allows Node-RED to read entity states, listen for events, and trigger automations \u2014 all in real time.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1 \u2013 Create an Access Token in Home Assistant<\/strong><\/h4>\n\n\n\n<p>To allow Node-RED to communicate with Home Assistant, we need to create a secure access token (an API key).<br>Here\u2019s how:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Open Home Assistant<\/strong> in your browser: http:\/\/&lt;your_pi_ip&gt;8123<\/li>\n\n\n\n<li>In the <strong>bottom-left corner<\/strong>, click on <strong>your username<\/strong> (this opens your Profile page).<\/li>\n\n\n\n<li>Scroll down to the section called <strong>Long-Lived Access Tokens<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Create Token<\/strong><\/li>\n\n\n\n<li>Give it a descriptive name, for example: <code>Node-RED connection<\/code><\/li>\n\n\n\n<li>Click <strong>OK<\/strong> \u2014 Home Assistant will generate a long string of characters.<br><strong>Important:<\/strong> Copy it immediately and save it somewhere safe.<br>Once you close the dialog, you won\u2019t be able to see it again.<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2 \u2013 Add the Home Assistant Integration in Node-RED<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Node-RED<\/strong> in your browser: http:\/\/&lt;your_pi_ip&gt;1880<\/li>\n\n\n\n<li>Go to <strong>Menu \u2192 Manage palette \u2192 Install<\/strong>, and search for:<br><code>node-red-contrib-home-assistant-websocket<\/code><br><br>Install it \u2014 this package adds the Home Assistant nodes to Node-RED, allowing direct interaction with entities and services.<br><br>While you\u2019re here, it\u2019s also a good idea to install:<br><code>node-red-dashboard<\/code><br><br>This package lets you build custom web dashboards with charts, gauges, buttons, and controls \u2014 perfect for monitoring your sensors or controlling devices from a simple browser interface at: http:\/\/&lt;your_pi_ip&gt;1880\/ui<\/li>\n\n\n\n<li>After installation, drag an <strong>events: state<\/strong> node onto the workspace (you\u2019ll find it under the <em>home assistant<\/em> category in the left sidebar).<\/li>\n\n\n\n<li>Double-click the node to open its configuration.<br>In the <strong>Server<\/strong> field, click the <strong>plus icon<\/strong> to add a new server connection.<\/li>\n\n\n\n<li>Fill in the details:<br><strong>Base URL:<\/strong> http:\/\/&lt;your_pi_ip&gt;:8123<br><br><em>(Home Assistant runs in host network mode, while Node-RED runs in a bridge network \u2014 so you must use the Raspberry Pi\u2019s IP address)<\/em><br><br><strong>Access Token:<\/strong><br><em>(paste the token you created earlier in Home Assistant)<\/em><\/li>\n\n\n\n<li>Click <strong>Add<\/strong>, then <strong>Done<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Deploy<\/strong> in the top right corner to save and apply the changes.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 \u2013 Test the Connection<\/h3>\n\n\n\n<p>Let\u2019s verify that Node-RED and Home Assistant can communicate properly.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In Node-RED, open the <strong>events: state<\/strong> node you already added in the previous step.<\/li>\n\n\n\n<li>In the node\u2019s settings, make sure you select a real entity from Home Assistant \u2014 for example: <code>sun.sun<\/code> <br>or any existing sensor such as:<br><code>sensor.temperature_livingroom<\/code><br><em>If you leave this field empty, you\u2019ll see a \u201cConfigError: An entity is required\u201d message in the Debug panel.<\/em><\/li>\n\n\n\n<li>Connect the node to a <strong>debug<\/strong> node and click <strong>Deploy<\/strong>.<\/li>\n\n\n\n<li>When the selected entity changes state (for example, the temperature updates or the sun goes below the horizon), you\u2019ll see a message appear in Node-RED\u2019s <strong>Debug<\/strong> tab.<\/li>\n<\/ol>\n\n\n\n<p>If the node shows \u201crunning\u201d and you can select entities directly from Home Assistant, it means the integration is working perfectly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What Happens Under the Hood<\/strong><\/h3>\n\n\n\n<p>Home Assistant provides a WebSocket API that streams entity updates in real time.<br>Node-RED uses this connection to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Listen to entity state changes<\/strong> (like sensors, lights, switches, motion detectors)<\/li>\n\n\n\n<li><strong>Trigger automations<\/strong> when events occur<\/li>\n\n\n\n<li><strong>Call services<\/strong> (for example: turn on lights, adjust heating, send notifications)<\/li>\n<\/ul>\n\n\n\n<p>This setup gives you the best of both worlds:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Home Assistant remains your central platform for devices, sensors, and integrations.<\/li>\n\n\n\n<li>Node-RED becomes your flexible logic layer \u2014 a place to build complex automations visually, without writing YAML code.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Wrap-Up<\/strong><\/h3>\n\n\n\n<p>At this point, the foundation of the system is complete.<br>Home Assistant and Node-RED are connected, exchanging data in real time.<br>You can now see entities from Home Assistant directly inside Node-RED and start building your first automation flows.<\/p>\n\n\n\n<p>This setup is the backbone of everything that follows \u2014 a modular environment where each component does exactly what it\u2019s best at:<br>Home Assistant manages and integrates devices, Node-RED handles logic and visualization, and Mosquitto takes care of all MQTT communication in the background.<\/p>\n\n\n\n<p>In the next post, we\u2019ll move from theory to practice \u2014 connecting real sensors and smart devices (Govee, and Smart Life (Tuya)), publishing their data via MQTT, and creating dashboards to monitor what\u2019s happening at the house, even when we\u2019re miles away.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At our holiday home \u2014 a quiet place we visit just once or twice a year \u2014 I wanted to know exactly what\u2019s happening there, even when we\u2019re not around. Call it freak-control if you will, but when you have a heating system running through the winter and the power tends to drop every now [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4618,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_FSMCFIC_featured_image_caption":"Photo by Cagatay Orhan on Unsplash","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-4582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5 - IT-REACT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5 - IT-REACT\" \/>\n<meta property=\"og:description\" content=\"At our holiday home \u2014 a quiet place we visit just once or twice a year \u2014 I wanted to know exactly what\u2019s happening there, even when we\u2019re not around. Call it freak-control if you will, but when you have a heating system running through the winter and the power tends to drop every now [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/\" \/>\n<meta property=\"og:site_name\" content=\"IT-REACT\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-11T14:20:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-05T07:55:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"570\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ioan Penu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ioan Penu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/\"},\"author\":{\"name\":\"Ioan Penu\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\"},\"headline\":\"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5\",\"datePublished\":\"2025-11-11T14:20:17+00:00\",\"dateModified\":\"2026-01-05T07:55:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/\"},\"wordCount\":1889,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\"},\"image\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/\",\"url\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/\",\"name\":\"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5 - IT-REACT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg\",\"datePublished\":\"2025-11-11T14:20:17+00:00\",\"dateModified\":\"2026-01-05T07:55:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg\",\"contentUrl\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg\",\"width\":1024,\"height\":570,\"caption\":\"Photo by Cagatay Orhan on Unsplash\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2025\\\/11\\\/11\\\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.it-react.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#website\",\"url\":\"https:\\\/\\\/www.it-react.com\\\/\",\"name\":\"it-react\",\"description\":\"Ctrl\u2022Alt\u2022Automate\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.it-react.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\",\"name\":\"Ioan Penu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\",\"caption\":\"Ioan Penu\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5 - IT-REACT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/","og_locale":"en_US","og_type":"article","og_title":"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5 - IT-REACT","og_description":"At our holiday home \u2014 a quiet place we visit just once or twice a year \u2014 I wanted to know exactly what\u2019s happening there, even when we\u2019re not around. Call it freak-control if you will, but when you have a heating system running through the winter and the power tends to drop every now [&hellip;]","og_url":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/","og_site_name":"IT-REACT","article_published_time":"2025-11-11T14:20:17+00:00","article_modified_time":"2026-01-05T07:55:40+00:00","og_image":[{"width":1024,"height":570,"url":"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg","type":"image\/jpeg"}],"author":"Ioan Penu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ioan Penu","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#article","isPartOf":{"@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/"},"author":{"name":"Ioan Penu","@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0"},"headline":"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5","datePublished":"2025-11-11T14:20:17+00:00","dateModified":"2026-01-05T07:55:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/"},"wordCount":1889,"commentCount":0,"publisher":{"@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0"},"image":{"@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/","url":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/","name":"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5 - IT-REACT","isPartOf":{"@id":"https:\/\/www.it-react.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#primaryimage"},"image":{"@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg","datePublished":"2025-11-11T14:20:17+00:00","dateModified":"2026-01-05T07:55:40+00:00","breadcrumb":{"@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#primaryimage","url":"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg","contentUrl":"https:\/\/www.it-react.com\/wp-content\/uploads\/2025\/11\/cagatay-orhan-PYh4QCX_fmE-unsplash-e1762894691850.jpg","width":1024,"height":570,"caption":"Photo by Cagatay Orhan on Unsplash"},{"@type":"BreadcrumbList","@id":"https:\/\/www.it-react.com\/index.php\/2025\/11\/11\/the-autonomous-holiday-home-part-1-building-a-docker-based-hub-on-raspberry-pi-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.it-react.com\/"},{"@type":"ListItem","position":2,"name":"The Autonomous Holiday Home (Part 1): Building a Docker-Based Hub on Raspberry Pi 5"}]},{"@type":"WebSite","@id":"https:\/\/www.it-react.com\/#website","url":"https:\/\/www.it-react.com\/","name":"it-react","description":"Ctrl\u2022Alt\u2022Automate","publisher":{"@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.it-react.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0","name":"Ioan Penu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g","caption":"Ioan Penu"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g"}}]}},"_links":{"self":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts\/4582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/comments?post=4582"}],"version-history":[{"count":20,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts\/4582\/revisions"}],"predecessor-version":[{"id":4770,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts\/4582\/revisions\/4770"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/media\/4618"}],"wp:attachment":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/media?parent=4582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/categories?post=4582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/tags?post=4582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}