diff --git a/CT-Build/Debian.Jenkinsfile b/CT-Build/Debian.Jenkinsfile index 64f3dfd..1fc4486 100644 --- a/CT-Build/Debian.Jenkinsfile +++ b/CT-Build/Debian.Jenkinsfile @@ -7,7 +7,7 @@ pipeline { string defaultValue: '192.168.200.11', description: 'Proxy server for packages, when enabled', name: 'ProxyServer' booleanParam description: 'will disable use of proxy server', name: 'DisProxy' checkboxParameter(name: 'ImgVariantList', format: 'JSON', displayNodePath: "//Variants/Variant", valueNodePath: "//Variants/Variant", description: 'Select the variant(s) that should be build', - pipelineSubmitContent: '{"Variants": [{"Variant": "minimal"},{"Variant": "default"},{"Variant": "jenkinsbuilder"},{"Variant": "imgbuilder"},{"Variant": "jenkins"},{"Variant": "mysql"},{"Variant": "pihole"},{"Variant": "collabora"},{"Variant": "jellyfin"},{"Variant": "domoticz"},{"Variant": "omadaV3"},{"Variant": "docker"},{"Variant": "smb"},{"Variant": "tvheadend"},{"Variant": "x2go"},{"Variant": "aptcacherng"},{"Variant": "elkarbackupDEB"},{"Variant": "nfs"},{"Variant": "duplicati"},{"Variant": "fileshelter"}]}') + pipelineSubmitContent: '{"Variants": [{"Variant": "minimal"},{"Variant": "default"},{"Variant": "jenkinsbuilder"},{"Variant": "imgbuilder"},{"Variant": "jenkins"},{"Variant": "mysql"},{"Variant": "pihole"},{"Variant": "collabora"},{"Variant": "jellyfin"},{"Variant": "domoticz"},{"Variant": "omadaV3"},{"Variant": "docker"},{"Variant": "smb"},{"Variant": "tvheadend"},{"Variant": "x2go"},{"Variant": "aptcacherng"},{"Variant": "elkarbackupDEB"},{"Variant": "nfs"},{"Variant": "duplicati"},{"Variant": "fileshelter"},{"Variant": "esphome"}]}') } options { skipDefaultCheckout() diff --git a/CT-Build/Debian.yaml b/CT-Build/Debian.yaml index 15e14b7..1e49536 100644 --- a/CT-Build/Debian.yaml +++ b/CT-Build/Debian.yaml @@ -1005,6 +1005,13 @@ files: variants: - fileshelter +#FileForESPHome +- path: /opt/Setup + generator: copy + source: CT-Files/epshome + variants: + - esphome + packages: manager: apt update: true @@ -1053,6 +1060,7 @@ packages: - nfs - duplicati - fileshelter + - esphome #Minimal pkgs - packages: @@ -1346,6 +1354,19 @@ packages: variants: - fileshelter +#esphome pkgs + - packages: + - python3 + - python3-venv + - python3-pip + - git + - sudo + - g++ + - nano + action: install + variants: + - esphome + repositories: - name: sources.list url: |- @@ -1493,6 +1514,7 @@ actions: - nfs - duplicati - fileshelter + - esphome #Move App update script for ProxmoxHelper/ProxMoxToolKit, if CT has this script - trigger: post-files diff --git a/CT-Files/esphome/Configs/esphome.service b/CT-Files/esphome/Configs/esphome.service new file mode 100644 index 0000000..e0f57af --- /dev/null +++ b/CT-Files/esphome/Configs/esphome.service @@ -0,0 +1,13 @@ +[Unit] +Description= ESPHome Dashboard +After=network.target + +[Service] +User=esphome +ExecStart=/opt/ESPHome/srv/bin/esphome -q dashboard /opt/ESPHome/data/ +Restart=on-failure +RestartSec=5s +Environment="PATH=$PATH:/opt/ESPHome/srv/bin" + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/CT-Files/esphome/Scripts/Init.sh b/CT-Files/esphome/Scripts/Init.sh new file mode 100644 index 0000000..f26630e --- /dev/null +++ b/CT-Files/esphome/Scripts/Init.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#Install ESPHome +mkdir -p /opt/ESPHome/srv +mkdir -p /opt/ESPHome/data +adduser --group --system --no-create-home --home /opt/ESPHome/data --shell /bin/sh esphome +chown -R esphome:esphome /opt/ESPHome +sudo -u esphome python3 -m venv /opt/ESPHome/srv +sudo -u esphome sh -c '. /opt/ESPHome/srv/bin/activate && pip install --upgrade pip && pip3 install tornado esptool esphome' + +#Update script +mv /opt/Setup/Scripts/UpdateESPHome.sh /opt/UpdateESPHome.sh + +#CleanUp +rm -rf /build/TMP/usr/lib/python3.9/__pycache__/* + +#Setup ESPHome service +mv /opt/Setup/Configs/esphome.service /lib/systemd/system/esphome.service +chmod +x /lib/systemd/system/esphome.service +ln -s /lib/systemd/system/esphome.service /etc/systemd/system/multi-user.target.wants/esphome.service diff --git a/CT-Files/esphome/Scripts/PTKAppUpdate.sh b/CT-Files/esphome/Scripts/PTKAppUpdate.sh new file mode 100644 index 0000000..d136a8e --- /dev/null +++ b/CT-Files/esphome/Scripts/PTKAppUpdate.sh @@ -0,0 +1,3 @@ +#!/bin/sh +# Update script for updating apps with ProxmoxHelper/ProxMoxToolKit +bash /opt/UpdateESPHome.sh \ No newline at end of file diff --git a/CT-Files/esphome/Scripts/UpdateESPHome.sh b/CT-Files/esphome/Scripts/UpdateESPHome.sh new file mode 100644 index 0000000..a318b85 --- /dev/null +++ b/CT-Files/esphome/Scripts/UpdateESPHome.sh @@ -0,0 +1,4 @@ +#!/bin/bash +service esphome stop +sudo -u esphome sh -c '. /opt/ESPHome/srv/activate && pip install --upgrade pip && pip3 install --upgrade tornado esptool esphome' +service esphome start \ No newline at end of file diff --git a/Readme.md b/Readme.md index 1fba6c9..b2b9c06 100644 --- a/Readme.md +++ b/Readme.md @@ -36,6 +36,7 @@ This can be done on a privileged Debian CT (make sure to enable the Fuse, Nestin | nfs | Debian | NFS server | | duplicati | Debian | Duplicati backup software | | fileshelter | Debian | FileShelter file shareing software | +| esphome | Debian | ESPHome software to manage wifi-MCUs| | gitea | Alpine | Gitea server | | nginx | Alpine | Nginx server for reverse-proxy use | | ddns | Alpine | DDNS client configured for OVH/OVH-Cloud | @@ -265,6 +266,9 @@ lxc.mount.entry: /dev/ttyACM-Zwave dev/ttyACM-Zwave none bind,optional,create=fi ## fileshelter * Available on http://``:5091 +## esphome +* Available on http://``:6052 + # Further CT documentation ## iscsi