{"id":8701,"date":"2026-08-14T15:37:00","date_gmt":"2026-08-14T13:37:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=8701"},"modified":"2026-08-13T14:29:50","modified_gmt":"2026-08-13T12:29:50","slug":"automated-docker-deployments-raspberry-pi-local-first-8701","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/","title":{"rendered":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">Operating self-hosted services\u2014such as Home Assistant, Node-RED, and local analytics tracking environments\u2014on a Raspberry Pi often involves manual software updates and ad-hoc configuration adjustments. This traditional approach consumes significant maintenance time and introduces operational risks, including configuration drift, dependency conflicts, and unexpected downtime.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">To establish a resilient, deterministic local infrastructure, services must be decoupled from the host operating system. Containerizing the entire smart home and analytics tool landscape via <strong>Docker Compose<\/strong> paired with automated deployment pipelines\u2014using local <strong>Watchtower<\/strong> setups or structured <strong>CI\/CD workflows via GitHub Actions<\/strong>\u2014ensures reproducible, zero-downtime edge environments.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">1. Containerizing the Edge Landscape with Docker Compose<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Docker Compose serves as the declarative baseline for local-first edge architectures. By defining all services, persistent volume mounts, and network bridges within a single version-controlled configuration file, infrastructure state becomes fully reproducible.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># docker-compose.yml: Integrated Smart Home &amp; Local Tracking Stack\r\nservices:\r\n  homeassistant:\r\n    container_name: homeassistant\r\n    image: ghcr.io\/home-assistant\/home-assistant:stable\r\n    volumes:\r\n      - \/opt\/homeassistant\/config:\/config\r\n      - \/etc\/localtime:\/etc\/localtime:ro\r\n    restart: unless-stopped\r\n    network_mode: host\r\n\r\n  nodered:\r\n    container_name: nodered\r\n    image: nodered\/node-red:latest\r\n    environment:\r\n      - TZ=Europe\/Warsaw\r\n    volumes:\r\n      - \/opt\/nodered\/data:\/data\r\n    ports:\r\n      - \"1880:1880\"\r\n    restart: unless-stopped\r\n\r\n  watchtower:\r\n    container_name: watchtower\r\n    image: containrrr\/watchtower:latest\r\n    volumes:\r\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock\r\n    environment:\r\n      - WATCHTOWER_CLEANUP=true\r\n      - WATCHTOWER_SCHEDULE=0 0 4 * * *\r\n    restart: unless-stopped<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A note on the maintenance status: the upstream project <code>containrrr\/watchtower<\/code> was archived on 17 December 2025 and has been read-only since then, so the image receives no further updates or security fixes. The original maintainers have not designated a successor. Development continues in community forks \u2014 <code>nickfedor\/watchtower<\/code> (also published as <code>ghcr.io\/nicholas-fedor\/watchtower<\/code>) is configuration-compatible and still ships regular releases. The update path for this service should therefore be reviewed before productive use.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In this architecture, persistent data directories reside on reliable external storage (such as a NAS share or SSD), ensuring that container updates never overwrite critical configurations or historical metrics.<\/p>\r\n\r\n\r\n\r\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/automated-docker-deployments-on-the-raspberry-pi-local-fir-en.png\" width=\"1120\" height=\"378\" decoding=\"async\"\n     alt=\"Diagram for the article: Containerizing the Edge Landscape with Docker\u2026, Automated Maintenance: Watchtower vs. CI\/CD\u2026, Implementing a GitHub Actions Deployment Pipeline\">\n<figcaption>The 3 building blocks of the article at a glance: Containerizing the Edge Landscape with Docker\u2026, Automated Maintenance: Watchtower vs. CI\/CD\u2026, Implementing a GitHub Actions Deployment Pipeline.<\/figcaption>\n<\/figure>\n\n<h2 class=\"wp-block-heading\">2. Automated Maintenance: Watchtower vs. CI\/CD Pipelines<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Automating deployment and lifecycle management can be achieved through two primary architectural patterns, depending on system complexity and governance requirements:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Deployment Pattern<\/th><th>Execution Mechanism<\/th><th>Best Suited For<\/th><th>Key Advantage<\/th><\/tr><\/thead><tbody><tr><td><strong>Local Automation (Watchtower)<\/strong><\/td><td>A background daemon polls image registries daily and restarts updated containers automatically.<\/td><td>Standard off-the-shelf images (Home Assistant, Node-RED, Eclipse Mosquitto).<\/td><td>Zero external infrastructure required; fully autonomous edge maintenance.<\/td><\/tr><tr><td><strong>GitOps \/ CI\/CD (GitHub Actions)<\/strong><\/td><td>Code commits trigger remote build pipelines that SSH into the Raspberry Pi and execute deployments.<\/td><td>Custom software builds, proprietary analytics tools, or multi-node infrastructures.<\/td><td>Deterministic version control, automated testing before deployment, and easy rollbacks.<\/td><\/tr><\/tbody><\/table><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">3. Implementing a GitHub Actions Deployment Pipeline<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For custom edge applications or structured infrastructure-as-code (IaC) repositories, deploying via GitHub Actions provides an audit trail of every configuration change. When updates are pushed to the main branch, a workflow connects securely to the Raspberry Pi over SSH to pull changes and reconstruct the stack.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># .github\/workflows\/deploy-edge.yml\r\nname: Deploy Stack to Raspberry Pi\r\n\r\non:\r\n  push:\r\n    branches:\r\n      - main\r\n\r\njobs:\r\n  deploy:\r\n    runs-on: ubuntu-latest\r\n    steps:\r\n      - name: Execute Remote Deployment via SSH\r\n        uses: appleboy\/ssh-action@v1.0.0\r\n        with:\r\n          host: ${{ secrets.RPI_HOST }}\r\n          username: ${{ secrets.RPI_USER }}\r\n          key: ${{ secrets.RPI_SSH_KEY }}\r\n          script: |\r\n            cd \/opt\/edge-stack\r\n            git pull origin main\r\n            docker compose pull\r\n            docker compose up -d --remove-orphans\r\n            docker system prune -f<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Summary<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Transitioning a Raspberry Pi from a manually configured single-board computer into an automated, containerized edge server minimizes administrative overhead. Whether deploying autonomous updates via Watchtower or deterministic GitOps workflows via GitHub Actions, containerization guarantees a stable, secure, and low-maintenance operational environment for smart home and analytics infrastructures.<\/p>\r\n\n\n<div class=\"lw-quellen\">\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker documentation<\/a><\/li>\n<li><a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/os.html\" target=\"_blank\" rel=\"noopener noreferrer\">Raspberry Pi OS documentation<\/a><\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Technical guide on containerizing smart home and analytics tools on a Raspberry Pi using Docker Compose, Watchtower, and GitHub Actions CI\/CD pipelines.<\/p>\n","protected":false},"author":1,"featured_media":9233,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[91106,91144,91145,91113,91181,91237],"class_list":["post-8701","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi","tag-automation","tag-devops","tag-docker","tag-homelab","tag-raspberry-pi","tag-self-hosting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments - Lukas Wojcik - Blog<\/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.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Technical guide on containerizing smart home and analytics tools on a Raspberry Pi using Docker Compose, Watchtower, and GitHub Actions CI\/CD pipelines.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-14T13:37:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments\",\"datePublished\":\"2026-08-14T13:37:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/\"},\"wordCount\":478,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg\",\"keywords\":[\"Automation\",\"DevOps\",\"Docker\",\"Homelab\",\"Raspberry Pi\",\"Self-Hosting\"],\"articleSection\":[\"Raspberry PI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/\",\"name\":\"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg\",\"datePublished\":\"2026-08-14T13:37:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/raspberry-pi\\\/automated-docker-deployments-raspberry-pi-local-first-8701\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments - Lukas Wojcik - Blog","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.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/","og_locale":"en_US","og_type":"article","og_title":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments - Lukas Wojcik - Blog","og_description":"Technical guide on containerizing smart home and analytics tools on a Raspberry Pi using Docker Compose, Watchtower, and GitHub Actions CI\/CD pipelines.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-08-14T13:37:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg","type":"image\/jpeg"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments","datePublished":"2026-08-14T13:37:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/"},"wordCount":478,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg","keywords":["Automation","DevOps","Docker","Homelab","Raspberry Pi","Self-Hosting"],"articleSection":["Raspberry PI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/","name":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg","datePublished":"2026-08-14T13:37:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-8701-automated-docker-deployments-on-the-raspberry-pi-loc.jpg","width":1200,"height":630,"caption":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/raspberry-pi\/automated-docker-deployments-raspberry-pi-local-first-8701\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Automated Docker Deployments on the Raspberry Pi: Local-First Dev Environments"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/8701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=8701"}],"version-history":[{"count":3,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/8701\/revisions"}],"predecessor-version":[{"id":10006,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/8701\/revisions\/10006"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/9233"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=8701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=8701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=8701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}