From 1742641296fbf3ee313b2c637d70ca2caa2dca7d Mon Sep 17 00:00:00 2001 From: furyhawk Date: Thu, 2 Apr 2026 20:25:15 +0800 Subject: [PATCH] feat: add deployment configurations for Jellyfin and ESPHome services --- makefile | 15 +++++++++++++++ swarm/esphome.yml | 26 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 swarm/esphome.yml diff --git a/makefile b/makefile index a12290a..1aedf8b 100644 --- a/makefile +++ b/makefile @@ -191,5 +191,20 @@ deploy-nextcloud: pull set +a ;\ docker stack deploy --compose-file ./swarm/nextcloud.yml nextcloud ;\ } +deploy-jellyfin: pull + { \ + echo "Deploying the jellyfin stack..." ;\ + set -a ;\ + . ./swarm/.env ;\ + set +a ;\ + docker stack deploy --compose-file ./swarm/jellyfin.yml jellyfin ;\ + } +deploy-esphome: pull + { \ + echo "Deploying the esphome stack..." ;\ + set -a ;\ + . ./swarm/.env ;\ + set +a ;\ docker stack deploy --compose-file ./swarm/esphome.yml esphome ;\ + } # git submodule update --init --recursive \ No newline at end of file diff --git a/swarm/esphome.yml b/swarm/esphome.yml new file mode 100644 index 0000000..e95f292 --- /dev/null +++ b/swarm/esphome.yml @@ -0,0 +1,26 @@ +services: + esphome: + container_name: esphome + image: ghcr.io/esphome/esphome + environment: + - USERNAME=${ESPHOME_USERNAME} + - PASSWORD=${ESPHOME_PASSWORD} + volumes: + - /var/data/esphome/config:/config + - /etc/localtime:/etc/localtime:ro + restart: always + privileged: true + network_mode: host + deploy: + # placement: + # constraints: + # - node.labels.esphome.esphome_config == true + labels: + - traefik.enable=true + - traefik.swarm.network=traefik-public + - traefik.constraint-label=traefik-public + - traefik.http.routers.esphome.entrypoints=https + - traefik.http.routers.esphome.rule=Host(`esphome.${DOMAIN}`) + - traefik.http.routers.esphome.tls.certresolver=le + - traefik.http.routers.esphome.service=esphome_app + - traefik.http.services.esphome_app.loadbalancer.server.port=6052 \ No newline at end of file