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