From cb3d556d119cabb214286143d41cd771d117714d Mon Sep 17 00:00:00 2001 From: TrudeEH Date: Mon, 14 Jul 2025 22:50:09 +0100 Subject: [PATCH] Add ESPHome --- server/.env | 1 + server/docker-compose.yml | 53 ++++++++++++++++++++++++--------------- server/install-docker.sh | 39 ++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 20 deletions(-) create mode 100644 server/install-docker.sh diff --git a/server/.env b/server/.env index fb7739f5..5f0cb4b3 100644 --- a/server/.env +++ b/server/.env @@ -17,6 +17,7 @@ OWW_CUSTOM_MODEL_DIR=/mnt/md0/ha/openwakeword-model OWW_DATA=/mnt/md0/ha/openwakeword-data PIPER_DATA=/mnt/md0/ha/piper-data WHISPER_DATA=/mnt/md0/ha/whisper-data +ESPHOME_CONFIG=/mnt/md0/esphome/config # Pi-hole PIHOLE=/mnt/md0/pihole diff --git a/server/docker-compose.yml b/server/docker-compose.yml index ffe6bf5c..ed341d7d 100644 --- a/server/docker-compose.yml +++ b/server/docker-compose.yml @@ -1,5 +1,5 @@ -# docker compose down --volumes -# docker compose up -d --remove-orphans +# sudo docker compose down --volumes +# sudo docker compose up -d --remove-orphans name: server @@ -97,6 +97,19 @@ services: ports: - "8123:8123" + esphome: + container_name: esphome + image: ghcr.io/esphome/esphome:latest + volumes: + - ${ESPHOME_CONFIG}:/config + - /etc/localtime:/etc/localtime:ro + restart: unless-stopped + privileged: true + ports: + - "6052:6052" + env_file: + - .env + # openwakeword: # image: homeassistant/amd64-addon-openwakeword:latest # container_name: openwakeword @@ -160,24 +173,24 @@ services: restart: unless-stopped # --- Pi-hole --- - pihole: - container_name: pihole - image: pihole/pihole:latest - ports: - # DNS Ports - - "53:53/tcp" - - "53:53/udp" - # Default HTTP Port - - "2100:80/tcp" - - "2101:443/tcp" - env_file: - - .env - volumes: - - "${PIHOLE}:/etc/pihole" - cap_add: - # Optional, if Pi-hole should get some more processing time - - SYS_NICE - restart: unless-stopped + # pihole: + # container_name: pihole + # image: pihole/pihole:latest + # ports: + # # DNS Ports + # - "53:53/tcp" + # - "53:53/udp" + # # Default HTTP Port + # - "2100:80/tcp" + # - "2101:443/tcp" + # env_file: + # - .env + # volumes: + # - "${PIHOLE}:/etc/pihole" + # cap_add: + # # Optional, if Pi-hole should get some more processing time + # - SYS_NICE + # restart: unless-stopped # --- Nextcloud --- nextcloud-aio-mastercontainer: diff --git a/server/install-docker.sh b/server/install-docker.sh new file mode 100644 index 00000000..5c218f03 --- /dev/null +++ b/server/install-docker.sh @@ -0,0 +1,39 @@ +#!/bin/sh +set -e + +if ! command -v curl >/dev/null 2>&1; then + echo "curl is required. Installing curl..." + sudo apt update + sudo apt install -y curl +fi + +echo "Updating package index..." +sudo apt update + +echo "Installing required packages..." +sudo apt install -y ca-certificates curl gnupg lsb-release + +echo "Adding Docker's official GPG key..." +sudo mkdir -p /etc/apt/keyrings +curl -fsSL "https://download.docker.com/linux/$( + . /etc/os-release + echo "$ID" +)/gpg" | sudo gpg --dearmor >/tmp/docker.gpg +sudo mv /tmp/docker.gpg /etc/apt/keyrings/docker.gpg +sudo chmod 644 /etc/apt/keyrings/docker.gpg + +echo "Setting up the Docker repository..." +ARCH=$(dpkg --print-architecture) +OS_ID=$(awk -F= '/^ID=/{gsub(/\"/, "", $2); print $2}' /etc/os-release) +RELEASE=$(lsb_release -cs) +echo "deb [arch=$ARCH signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$OS_ID $RELEASE stable" | + sudo tee /etc/apt/sources.list.d/docker.list >/dev/null + +echo "Updating package index (with Docker repo)..." +sudo apt update + +echo "Installing Docker Engine..." +sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +echo "Docker installation complete!" +docker --version