diff --git a/CT-Build/Alpine.yaml b/CT-Build/Alpine.yaml index c3554ab..55c5165 100644 --- a/CT-Build/Alpine.yaml +++ b/CT-Build/Alpine.yaml @@ -1,6 +1,6 @@ image: distribution: "alpinelinux" - release: "3.16" + release: "3.17" source: downloader: alpinelinux-http @@ -456,34 +456,34 @@ packages: #PKGS for nextcloud - packages: - - php8-pdo_mysql - - php8-pecl-imagick - - php8-cli - - php8-pecl-apcu - - php8-pecl-redis - - php8-fpm - - php8-cgi - - php8-common - - php8-mbstring - - php8-curl - - php8-gd - - php8-intl - - php8-soap - - php8-xml - - php8-zip - - php8-pear - - php8-session - - php8-posix - - php8-pdo - - php8-dom - - php8-simplexml - - php8-xmlreader - - php8-xmlwriter - - php8-opcache - - php8-pcntl - - php8-fileinfo - - php8-bcmath - - php8-gmp + - php81-pdo_mysql + - php81-pecl-imagick + - php81-cli + - php81-pecl-apcu + - php81-pecl-redis + - php81-fpm + - php81-cgi + - php81-common + - php81-mbstring + - php81-curl + - php81-gd + - php81-intl + - php81-soap + - php81-xml + - php81-zip + - php81-pear + - php81-session + - php81-posix + - php81-pdo + - php81-dom + - php81-simplexml + - php81-xmlreader + - php81-xmlwriter + - php81-opcache + - php81-pcntl + - php81-fileinfo + - php81-bcmath + - php81-gmp - libpng - zlib - imagemagick @@ -510,7 +510,7 @@ packages: - python3-dev - ca-certificates - libffi-dev - - libressl-dev + - openssl-dev - nmap - iputils - build-base @@ -528,12 +528,12 @@ packages: #PKGS for MailBackup - packages: - dovecot - - php8-xml - - php8-fpm - - php8-curl - - php8-dom - - php8-zip - - php8-mbstring + - php81-xml + - php81-fpm + - php81-curl + - php81-dom + - php81-zip + - php81-mbstring - php-openssl - py3-pip - sudo @@ -571,19 +571,19 @@ packages: #PKGS for Heimdall - packages: - git - - php8 - - php8-ctype - - php8-curl - - php8-pdo_sqlite - - php8-mbstring - - php8-json - - php8-zip - - php8-xml - - php8-fpm - - php8-session - - php8-openssl - - php8-tokenizer - - php8-fileinfo + - php81 + - php81-ctype + - php81-curl + - php81-pdo_sqlite + - php81-mbstring + - php81-json + - php81-zip + - php81-xml + - php81-fpm + - php81-session + - php81-openssl + - php81-tokenizer + - php81-fileinfo action: install variants: - heimdall @@ -639,6 +639,7 @@ actions: #!/bin/sh #Install pm2 npm install -g pm2 + chown -R root:root /usr/local/lib/node_modules/pm2/node_modules #Add NodeJS `node` service user addgroup node adduser -S -s /bin/ash -h /home/node -D -G node node 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..c8050ef 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/esphome + 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..20cf886 --- /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=/usr/local/bin:/usr/bin:/bin:/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..cd9f6f5 --- /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/bin/activate && pip install --upgrade pip && pip3 install --upgrade tornado esptool esphome' +service esphome start \ No newline at end of file diff --git a/CT-Files/heimdall/Configs/nginx.conf b/CT-Files/heimdall/Configs/nginx.conf index 4984116..5d02dd9 100644 --- a/CT-Files/heimdall/Configs/nginx.conf +++ b/CT-Files/heimdall/Configs/nginx.conf @@ -37,7 +37,7 @@ http { } location ~ \.php$ { include fastcgi_params; - fastcgi_pass unix:/run/php-fpm8/php-fpm.sock; + fastcgi_pass unix:/run/php-fpm81/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; diff --git a/CT-Files/heimdall/Configs/php.conf b/CT-Files/heimdall/Configs/php.conf index ed5f2fc..010669c 100644 --- a/CT-Files/heimdall/Configs/php.conf +++ b/CT-Files/heimdall/Configs/php.conf @@ -1,7 +1,7 @@ [heimdall] user = nginx group = nginx -listen = /run/php-fpm8/php-fpm.sock +listen = /run/php-fpm81/php-fpm.sock listen.owner = nginx listen.group = nginx php_admin_value[disable_functions] = exec,passthru,system @@ -27,7 +27,7 @@ php_admin_value[max_input_time] = 15 php_admin_value[cgi.fix_pathinfo] = 0 php_admin_value[allow_url_fopen] = 1 php_admin_value[file_uploads] = On -php_admin_value[open_basedir] = /opt/heimdall:/run/php-fpm8/php-fpm.sock:/tmp +php_admin_value[open_basedir] = /opt/heimdall:/run/php-fpm81/php-fpm.sock:/tmp php_admin_value[session.use_strict_mode] = 1 php_admin_value[session.cookie_httponly] = 1 diff --git a/CT-Files/heimdall/Scripts/Init.sh b/CT-Files/heimdall/Scripts/Init.sh index 9ab0198..050ad6b 100644 --- a/CT-Files/heimdall/Scripts/Init.sh +++ b/CT-Files/heimdall/Scripts/Init.sh @@ -5,9 +5,9 @@ rm -rf /etc/nginx/conf.d mv /opt/Setup/Configs/nginx.conf /etc/nginx/nginx.conf #Configure Php-Fpm -rm -rf /etc/php8/php-fpm.d/* -mv /opt/Setup/Configs/php.conf /etc/php8/php-fpm.d/heimdall.conf -mv /opt/Setup/Configs/phpTimezone.ini /etc/php8/conf.d/04_date_timezone.ini +rm -rf /etc/php81/php-fpm.d/* +mv /opt/Setup/Configs/php.conf /etc/php81/php-fpm.d/heimdall.conf +mv /opt/Setup/Configs/phpTimezone.ini /etc/php81/conf.d/04_date_timezone.ini #Install Heimdall git clone -b 2.x https://github.com/linuxserver/Heimdall.git /opt/heimdall @@ -15,4 +15,4 @@ chown -R nginx:nginx /opt/heimdall #Enable services on boot rc-update add nginx -rc-update add php-fpm8 \ No newline at end of file +rc-update add php-fpm81 \ No newline at end of file diff --git a/CT-Files/nextcloud/Configs/nginx.conf b/CT-Files/nextcloud/Configs/nginx.conf index 6c20b92..0fc1430 100644 --- a/CT-Files/nextcloud/Configs/nginx.conf +++ b/CT-Files/nextcloud/Configs/nginx.conf @@ -86,7 +86,7 @@ http { fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; - fastcgi_pass unix:/run/php-fpm8/php-fpm.sock; + fastcgi_pass unix:/run/php-fpm81/php-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; } diff --git a/CT-Files/nextcloud/Configs/php.conf b/CT-Files/nextcloud/Configs/php.conf index 7acc9d5..fc4db7e 100644 --- a/CT-Files/nextcloud/Configs/php.conf +++ b/CT-Files/nextcloud/Configs/php.conf @@ -1,7 +1,7 @@ [nextcloud] user = nginx group = nginx -listen = /run/php-fpm8/php-fpm.sock +listen = /run/php-fpm81/php-fpm.sock listen.owner = nginx listen.group = nginx php_admin_value[disable_functions] = exec,passthru,system @@ -27,7 +27,7 @@ php_admin_value[memory_limit] = 512M php_admin_value[cgi.fix_pathinfo] = 0 php_admin_value[allow_url_fopen] = Off php_admin_value[file_uploads] = on -php_admin_value[open_basedir] = /opt/nextcloud/:/var/nextcloud:/run/php-fpm8/php-fpm.sock:/run/redis/redis.sock:/proc/meminfo:/proc/cpuinfo:/dev/urandom:/tmp +php_admin_value[open_basedir] = /opt/nextcloud/:/var/nextcloud:/run/php-fpm81/php-fpm.sock:/run/redis/redis.sock:/proc/meminfo:/proc/cpuinfo:/dev/urandom:/tmp php_admin_value[session.use_strict_mode] = 1 php_admin_value[session.cookie_httponly] = 1 ;HTTPSONLY php_admin_value[session.cookie_samesite] = Strict diff --git a/CT-Files/nextcloud/Scripts/FirstRun.sh b/CT-Files/nextcloud/Scripts/FirstRun.sh index 43fe8fe..905a4d0 100644 --- a/CT-Files/nextcloud/Scripts/FirstRun.sh +++ b/CT-Files/nextcloud/Scripts/FirstRun.sh @@ -18,24 +18,24 @@ if [ $ThisScriptConfigured = no ]; then echo "Script is not configured" exit fi -sudo -u nginx php8 /opt/nextcloud/occ maintenance:install --database mysql --database-name "$MysqlDatabase" --database-host "$MysqlIP" --database-port "$MysqlPort" --database-user "$MysqlUsername" --database-pass "$MysqlPassword" --database-table-space "" --admin-user "$NextcloudUsername" --admin-pass "$NexcloudPassword" --data-dir /var/nextcloud +sudo -u nginx php81 /opt/nextcloud/occ maintenance:install --database mysql --database-name "$MysqlDatabase" --database-host "$MysqlIP" --database-port "$MysqlPort" --database-user "$MysqlUsername" --database-pass "$MysqlPassword" --database-table-space "" --admin-user "$NextcloudUsername" --admin-pass "$NexcloudPassword" --data-dir /var/nextcloud sed -n -i '/#SetupBlockStart/{:a;N;/#SetupBlockEnd/!ba;N;s/.*//};p' /etc/nginx/nginx.conf service nginx reload -sudo -u nginx php8 /opt/nextcloud/occ db:convert-filecache-bigint -sudo -u nginx php8 /opt/nextcloud/occ db:add-missing-indices -#sudo -u nginx php8 /opt/nextcloud/occ app:disable firstrunwizard -sudo -u nginx php8 /opt/nextcloud/occ config:system:set default_language --value=nl -sudo -u nginx php8 /opt/nextcloud/occ config:system:set default_locale --value=nl -sudo -u nginx php8 /opt/nextcloud/occ config:system:set default_phone_region --value=nl -sudo -u nginx php8 /opt/nextcloud/occ config:system:set skeletondirectory --value= -sudo -u nginx php8 /opt/nextcloud/occ config:system:set memcache.local --value='\OC\Memcache\APCu' -sudo -u nginx php8 /opt/nextcloud/occ config:system:set trashbin_retention_obligation --value=30,30 -sudo -u nginx php8 /opt/nextcloud/occ config:system:set memcache.distributed --value='\OC\Memcache\Redis' -sudo -u nginx php8 /opt/nextcloud/occ config:system:set memcache.locking --value='\OC\Memcache\Redis' -sudo -u nginx php8 /opt/nextcloud/occ config:system:set redis host --value=localhost -sudo -u nginx php8 /opt/nextcloud/occ config:system:set redis port --value=6379 -sudo -u nginx php8 /opt/nextcloud/occ config:system:set trusted_domains 1 --value="$(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1)" -sudo -u nginx php8 /opt/nextcloud/occ config:system:set overwrite.cli.url --value="$NextcloudWebProto://$(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1)" -sudo -u nginx php8 /opt/nextcloud/occ config:system:set overwriteprotocol --value="$NextcloudWebProto" \ No newline at end of file +sudo -u nginx php81 /opt/nextcloud/occ db:convert-filecache-bigint +sudo -u nginx php81 /opt/nextcloud/occ db:add-missing-indices +#sudo -u nginx php81 /opt/nextcloud/occ app:disable firstrunwizard +sudo -u nginx php81 /opt/nextcloud/occ config:system:set default_language --value=nl +sudo -u nginx php81 /opt/nextcloud/occ config:system:set default_locale --value=nl +sudo -u nginx php81 /opt/nextcloud/occ config:system:set default_phone_region --value=nl +sudo -u nginx php81 /opt/nextcloud/occ config:system:set skeletondirectory --value= +sudo -u nginx php81 /opt/nextcloud/occ config:system:set memcache.local --value='\OC\Memcache\APCu' +sudo -u nginx php81 /opt/nextcloud/occ config:system:set trashbin_retention_obligation --value=30,30 +sudo -u nginx php81 /opt/nextcloud/occ config:system:set memcache.distributed --value='\OC\Memcache\Redis' +sudo -u nginx php81 /opt/nextcloud/occ config:system:set memcache.locking --value='\OC\Memcache\Redis' +sudo -u nginx php81 /opt/nextcloud/occ config:system:set redis host --value=localhost +sudo -u nginx php81 /opt/nextcloud/occ config:system:set redis port --value=6379 +sudo -u nginx php81 /opt/nextcloud/occ config:system:set trusted_domains 1 --value="$(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1)" +sudo -u nginx php81 /opt/nextcloud/occ config:system:set overwrite.cli.url --value="$NextcloudWebProto://$(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1)" +sudo -u nginx php81 /opt/nextcloud/occ config:system:set overwriteprotocol --value="$NextcloudWebProto" \ No newline at end of file diff --git a/CT-Files/nextcloud/Scripts/Init.sh b/CT-Files/nextcloud/Scripts/Init.sh index bd60d0a..672e84f 100644 --- a/CT-Files/nextcloud/Scripts/Init.sh +++ b/CT-Files/nextcloud/Scripts/Init.sh @@ -7,12 +7,12 @@ rm -rf /etc/nginx/conf.d mv /opt/Setup/Configs/nginx.conf /etc/nginx/nginx.conf #Configure Php-Cli -sed -i '/memory_limit =/c\memory_limit = 512M' /etc/php8/php.ini +sed -i '/memory_limit =/c\memory_limit = 512M' /etc/php81/php.ini #Configure Php-Fpm -rm -rf /etc/php8/php-fpm.d/* -mv /opt/Setup/Configs/php.conf /etc/php8/php-fpm.d/nextcloud.conf -mv /opt/Setup/Configs/phpTimezone.ini /etc/php8/conf.d/04_date_timezone.ini +rm -rf /etc/php81/php-fpm.d/* +mv /opt/Setup/Configs/php.conf /etc/php81/php-fpm.d/nextcloud.conf +mv /opt/Setup/Configs/phpTimezone.ini /etc/php81/conf.d/04_date_timezone.ini #Install Nextcloud mkdir /opt/nextcloud /var/nextcloud @@ -20,9 +20,9 @@ tar jxf /opt/Setup/nextcloud.tar.bz2 -C /opt/nextcloud --strip 1 rm -rf /opt/Setup/nextcloud.tar.bz2 chown -R nginx:nginx /opt/nextcloud chown -R nginx:nginx /var/nextcloud -echo "*/5 * * * * php8 -f /opt/nextcloud/cron.php > /dev/null 2>&1" >> /etc/crontabs/nginx -echo "apc.enable_cli=1" >> /etc/php8/php.ini +echo "*/5 * * * * php81 -f /opt/nextcloud/cron.php > /dev/null 2>&1" >> /etc/crontabs/nginx +echo "apc.enable_cli=1" >> /etc/php81/php.ini #Enable services on boot rc-update add nginx -rc-update add php-fpm8 +rc-update add php-fpm81 rc-update add redis \ No newline at end of file diff --git a/CT-Files/nextcloud/Scripts/PTKAppUpdate.sh b/CT-Files/nextcloud/Scripts/PTKAppUpdate.sh index ae41326..2ee193b 100644 --- a/CT-Files/nextcloud/Scripts/PTKAppUpdate.sh +++ b/CT-Files/nextcloud/Scripts/PTKAppUpdate.sh @@ -1,3 +1,3 @@ #!/bin/sh # Update script for updating apps with ProxmoxHelper/ProxMoxToolKit -sudo -u nginx php8 /opt/nextcloud/updater/updater.phar --no-interaction \ No newline at end of file +sudo -u nginx php81 /opt/nextcloud/updater/updater.phar --no-interaction \ 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