From 7b0c98029565c17d28f505768166fc3de9f4397f Mon Sep 17 00:00:00 2001 From: root Date: Mon, 5 Aug 2024 14:11:41 +0200 Subject: [PATCH 01/29] docker run --- windows-installer.hta | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/windows-installer.hta b/windows-installer.hta index c93acb3..a106d6c 100644 --- a/windows-installer.hta +++ b/windows-installer.hta @@ -79,7 +79,21 @@ Sub StartWSL() WSL = "wsl.exe --user root --exec docker ps > C:\Users\wslresult.txt" intReturn = objShell.Run(WSL, 0, True) + + If Err.Number <> 0 Then + MsgBox (Err.number & "-" & err.Description) + else + MsgBox "Docker ps OK" + End If + WSL = "wsl.exe --user root --exec docker run -d -v /var/run/docker.sock:/var/run/docker.sock registry.format.hu/framework-scheduler" + intReturn = objShell.Run(WSL, 0, True) + + If Err.Number <> 0 Then + MsgBox (Err.number & "-" & err.Description) + else + MsgBox "Docker run OK" + End If End Sub Sub MapDrive(DriveLetter,DrivePath) From 3da721abff28a81b0bb0f2edb879c6fd771c17ea Mon Sep 17 00:00:00 2001 From: root Date: Mon, 5 Aug 2024 18:32:20 +0200 Subject: [PATCH 02/29] vbscript/js testing --- windows-installer.hta | 57 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/windows-installer.hta b/windows-installer.hta index a106d6c..4f99701 100644 --- a/windows-installer.hta +++ b/windows-installer.hta @@ -20,6 +20,9 @@ a { font-size:9pt; font-family:Verdana; } +div#output { + text-align:left; +} + @@ -201,5 +239,6 @@ End Sub
  
 
+
From 74e162ff604bdb65f10eeb0add8011d4a44d848a Mon Sep 17 00:00:00 2001 From: root Date: Mon, 5 Aug 2024 18:36:16 +0200 Subject: [PATCH 03/29] copy files --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 2be7698..4d1f9e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -74,6 +74,8 @@ COPY nginx.conf /etc/nginx/nginx.conf RUN mkdir -p /usr/share/nginx/html COPY index.html /usr/share/nginx/html COPY manage.html /usr/share/nginx/html +COPY scan.php /usr/share/nginx/html +COPY functions.php /usr/share/nginx/html COPY install.html /usr/share/nginx/html COPY install.php /usr/share/nginx/html COPY install.sh /usr/share/nginx/html From 46e7d51010db54ddcccb6ce4c47b10921e0de5d0 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 5 Aug 2024 19:29:52 +0200 Subject: [PATCH 04/29] redis check --- functions.php | 2 +- scan.php | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/functions.php b/functions.php index 6146994..5e376b4 100644 --- a/functions.php +++ b/functions.php @@ -1,6 +1,6 @@ getMessage(); + } + break; + case "docker": echo true; break; From 47635a28db2fab426256aee69cd5319624f5bc0a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Aug 2024 08:13:17 +0200 Subject: [PATCH 05/29] temp mod --- functions.php | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/functions.php b/functions.php index 5e376b4..72b129b 100644 --- a/functions.php +++ b/functions.php @@ -90,4 +90,100 @@ function redis_remove($key) { } } + +// not in use +put_install_envs() { + + // TEMP + putenv('HOME=/home/hael'); + putenv('USER=hael'); + + putenv('DOCKER_REGISTRY_URL='.$_POST["registry"]); + + putenv('SMARTHOST_PROXY='.$_POST["smarthost"]); + if ($_POST["smarthost"]=="Y") { + if ($_POST["domain"]=="") $_POST["domain"] = "localhost"; + putenv('DOMAIN='.$_POST["domain"]); + # if not FQDN + $arr = explode(".",$_POST["DOMAIN"]); + if (count($arr)==1) { + echo "Warning! It seems DOMAAIN is not an FQDN. Self-signed certificate will be created only."; + putenv('SELF_SIGNED_CERTIFICATE=true'); + } + + } + + putenv('LOCAL_PROXY='.$_POST["localproxy"]); + putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); + putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); + putenv('VPN_PROXY='.$_POST["vpn"]); + if ($_POST["vpn"]=="yes") { + putenv('VPN_DOMAIN='.$_POST["vpn_domain"]); + putenv('VPN_KEY='.$_POST["vpn_key"]); + + putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); + putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); + } + + if ($_POST["discovery"]=="yes") { + if ($_POST["DISCOVERY_DIR"] == "" ) $_POST["DISCOVERY_DIR"]="/usr/local/bin/"; + if (substr($_POST["DISCOVERY_DIR"],0,1)!="/") { + echo "The path must be absolute, for example /usr/local/bin/. Please type it again."; + exit; + } + if ($_POST["DISCOVERY_CONFIG_FILE"] == "" ) $_POST["DISCOVERY_CONFIG_FILE"]="discovery.conf"; + putenv('DISCOVERY_DIR='.$_POST["discovery_dir"]); + putenv('DISCOVERY_CONFIG_FILE='.$_POST["discovery_config_file"]); + } + + + putenv('ADDITIONALS='.$_POST["additionals"]); + if ($_POST["additionals"]=="yes") { + if ($_POST["SERVICE_DIR"] == "" ) $_POST["SERVICE_DIR"]="/etc/user/config/services"; + putenv('SERVICE_DIR='.$_POST["service_dir"]); + + putenv('NEXTCLOUD='.$_POST["nextcloud"]); + putenv('BITWARDEN='.$_POST["bitwarden"]); + putenv('GUACAMOLE='.$_POST["guacamole"]); + putenv('SMTP='.$_POST["smtp_server"]); + putenv('ROUNDCUBE='.$_POST["roundcube"]); + + if ($_POST["nextcloud"]=="yes") { + putenv('NEXTCLOUD_DOMAIN='.$_POST["nextcloud_domain"]); + putenv('NEXTCLOUD_USERNAME='.$_POST["nextcloud_username"]); + putenv('NEXTCLOUD_PASSWORD='.$_POST["nextcloud_password"]); + } + if ($_POST["bitwarden"]=="yes") { + putenv('BITWARDEN_DOMAIN='.$_POST["bitwarden_domain"]); + putenv('SMTP_SERVER='.$_POST["bitwarden_smtp_server"]); + putenv('SMTP_HOST='.$_POST["bitwarden_smtp_host"]); + putenv('SMTP_PORT='.$_POST["bitwarden_smtp_port"]); + putenv('SMTP_SECURITY='.$_POST["bitwarden_smtp_security"]); + putenv('SMTP_FROM='.$_POST["bitwarden_smtp_from"]); + putenv('SMTP_USERNAME='.$_POST["bitwarden_smtp_username"]); + putenv('SMTP_PASSWORD='.$_POST["bitwarden_smtp_password"]); + putenv('DOMAINS_WHITELIST='.$_POST["bitwarden_domains_whitelist"]); + } + if ($_POST["guacamole"]=="yes") { + putenv('GUACAMOLE_DOMAIN='.$_POST["bitwarden_domain"]); + putenv('GUACAMOLE_ADMIN_NAME='.$_POST["bitwarden_smtp_username"]); + putenv('GUACAMOLE_ADMIN_PASSWORD='.$_POST["bitwarden_smtp_password"]); + if ($_POST["bitwarden_totp"]=="yes") putenv('TOTP_USE=true'); + if ($_POST["bitwarden_ban_duration"]=="") $_POST["bitwarden_ban_duration"]="5"; + putenv('BAN_DURATION='.$_POST["bitwarden_ban_duration"]); + } + if ($_POST["roundcube"]=="yes") { + if ($_POST["roundcube_imap_port"]=="") $_POST["roundcube_imap_port"]="143"; + if ($_POST["roundcube_smtp_port"]=="") $_POST["roundcube_smtp_port"]="25"; + if ($_POST["roundcube_upload"]=="") $_POST["roundcube_smtp_port"]="50M"; + putenv('ROUNDCUBE_IMAP_HOST='.$_POST["roundcube_imap_host"]); + putenv('ROUNDCUBE_IMAP_PORT='.$_POST["roundcube_imap_port"]); + putenv('ROUNDCUBE_SMTP_HOST='.$_POST["roundcube_smtp_host"]); + putenv('ROUNDCUBE_SMTP_PORT='.$_POST["roundcube_smtp_port"]); + putenv('ROUNDCUBE_UPLOAD_MAX_FILESIZE='.$_POST["roundcube_upload"]); + putenv('ROUNDCUBE_DOMAIN='.$_POST["roundcube_domain"]); + } + } +} + ?> From 058e51b76186fe718ba3de7669802c0ebfb7c0cf Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Aug 2024 08:13:53 +0200 Subject: [PATCH 06/29] temp mod --- install.php | 93 ++--------------------------------------------------- 1 file changed, 3 insertions(+), 90 deletions(-) diff --git a/install.php b/install.php index c490c14..7ac785a 100644 --- a/install.php +++ b/install.php @@ -1,95 +1,7 @@ ".$output.""; //$output = shell_exec("sh install.sh"); //echo $output; +*/ ?> From cdd9b51723b76b2de675f73645438c774ceade77 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Aug 2024 08:23:52 +0200 Subject: [PATCH 07/29] temp mod3 --- functions.php | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++ install.php | 13 +++++ 2 files changed, 146 insertions(+) diff --git a/functions.php b/functions.php index 72b129b..7d1ebbe 100644 --- a/functions.php +++ b/functions.php @@ -90,6 +90,139 @@ function redis_remove($key) { } } +function create_install_json($data) { + + + +echo '{ + "DOCKER_REGISTRY_URL": '.$data["registry"].', + "SMARTHOST_PROXY": '.$data["smarthost"].', + "DOMAIN": '.$data["domain"].', + "SELF_SIGNED_CERTIFICATE": '.$data["self_signed"].', + "LOCAL_PROXY": '.$data["localproxy"].', + + + "containers": [ + { + "IMAGE": "redis:'$REDIS_VERSION'", + "NAME": "'$REDIS_SERVER'", + "UPDATE": "true", + "MEMORY": "64M", + "NETWORK": "'$FRAMEWORK_SCHEDULER_NETWORK'", + '$ADDITIONAL', + "PORTS":[ + { "SOURCE": "null", + "DEST": "6379", + "TYPE": "tcp" + } + ], + "POST_START": [] + }, + { + "IMAGE": "'$DOCKER_REGISTRY_URL'/'$FRAMEWORK_SCHEDULER_IMAGE':'$FRAMEWORK_SCHEDULER_VERSION'", + "NAME": "'$FRAMEWORK_SCHEDULER_NAME'", + "UPDATE": "true", + "MEMORY": "256M", + "NETWORK": "'$FRAMEWORK_SCHEDULER_NETWORK'", + '$ADDITIONAL', + "POST_START": [] + }, + { + "IMAGE": "'$DOCKER_REGISTRY_URL'/'$WEB_IMAGE':'$WEBSERVER_VERSION'", + "NAME": "'$WEB_SERVER'", + "UPDATE": "true", + "MEMORY": "128M", + "NETWORK": "'$FRAMEWORK_SCHEDULER_NETWORK'", + '$ADDITIONAL', + "PORTS":[ + { "SOURCE": "'$WEBSERVER_PORT'", + "DEST": "80", + "TYPE": "tcp" + } + ], + "POST_START": [] + } + ] +} + ' | jq -r . >/etc/user/config/services/service-framework.json + + + +putenv('HOME=/home/hael'); +putenv('USER=hael'); + +putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); +putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); +putenv('VPN_PROXY='.$_POST["vpn"]); +if ($_POST["vpn"]=="yes") { + putenv('VPN_DOMAIN='.$_POST["vpn_domain"]); + putenv('VPN_KEY='.$_POST["vpn_key"]); + + putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); + putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); +} + +if ($_POST["discovery"]=="yes") { + if ($_POST["DISCOVERY_DIR"] == "" ) $_POST["DISCOVERY_DIR"]="/usr/local/bin/"; + if (substr($_POST["DISCOVERY_DIR"],0,1)!="/") { + echo "The path must be absolute, for example /usr/local/bin/. Please type it again."; + exit; + } + if ($_POST["DISCOVERY_CONFIG_FILE"] == "" ) $_POST["DISCOVERY_CONFIG_FILE"]="discovery.conf"; + putenv('DISCOVERY_DIR='.$_POST["discovery_dir"]); + putenv('DISCOVERY_CONFIG_FILE='.$_POST["discovery_config_file"]); +} + + +putenv('ADDITIONALS='.$_POST["additionals"]); +if ($_POST["additionals"]=="yes") { + if ($_POST["SERVICE_DIR"] == "" ) $_POST["SERVICE_DIR"]="/etc/user/config/services"; + putenv('SERVICE_DIR='.$_POST["service_dir"]); + + putenv('NEXTCLOUD='.$_POST["nextcloud"]); + putenv('BITWARDEN='.$_POST["bitwarden"]); + putenv('GUACAMOLE='.$_POST["guacamole"]); + putenv('SMTP='.$_POST["smtp_server"]); + putenv('ROUNDCUBE='.$_POST["roundcube"]); + + if ($_POST["nextcloud"]=="yes") { + putenv('NEXTCLOUD_DOMAIN='.$_POST["nextcloud_domain"]); + putenv('NEXTCLOUD_USERNAME='.$_POST["nextcloud_username"]); + putenv('NEXTCLOUD_PASSWORD='.$_POST["nextcloud_password"]); + } + if ($_POST["bitwarden"]=="yes") { + putenv('BITWARDEN_DOMAIN='.$_POST["bitwarden_domain"]); + putenv('SMTP_SERVER='.$_POST["bitwarden_smtp_server"]); + putenv('SMTP_HOST='.$_POST["bitwarden_smtp_host"]); + putenv('SMTP_PORT='.$_POST["bitwarden_smtp_port"]); + putenv('SMTP_SECURITY='.$_POST["bitwarden_smtp_security"]); + putenv('SMTP_FROM='.$_POST["bitwarden_smtp_from"]); + putenv('SMTP_USERNAME='.$_POST["bitwarden_smtp_username"]); + putenv('SMTP_PASSWORD='.$_POST["bitwarden_smtp_password"]); + putenv('DOMAINS_WHITELIST='.$_POST["bitwarden_domains_whitelist"]); + } + if ($_POST["guacamole"]=="yes") { + putenv('GUACAMOLE_DOMAIN='.$_POST["bitwarden_domain"]); + putenv('GUACAMOLE_ADMIN_NAME='.$_POST["bitwarden_smtp_username"]); + putenv('GUACAMOLE_ADMIN_PASSWORD='.$_POST["bitwarden_smtp_password"]); + if ($_POST["bitwarden_totp"]=="yes") putenv('TOTP_USE=true'); + if ($_POST["bitwarden_ban_duration"]=="") $_POST["bitwarden_ban_duration"]="5"; + putenv('BAN_DURATION='.$_POST["bitwarden_ban_duration"]); + } + if ($_POST["roundcube"]=="yes") { + if ($_POST["roundcube_imap_port"]=="") $_POST["roundcube_imap_port"]="143"; + if ($_POST["roundcube_smtp_port"]=="") $_POST["roundcube_smtp_port"]="25"; + if ($_POST["roundcube_upload"]=="") $_POST["roundcube_smtp_port"]="50M"; + putenv('ROUNDCUBE_IMAP_HOST='.$_POST["roundcube_imap_host"]); + putenv('ROUNDCUBE_IMAP_PORT='.$_POST["roundcube_imap_port"]); + putenv('ROUNDCUBE_SMTP_HOST='.$_POST["roundcube_smtp_host"]); + putenv('ROUNDCUBE_SMTP_PORT='.$_POST["roundcube_smtp_port"]); + putenv('ROUNDCUBE_UPLOAD_MAX_FILESIZE='.$_POST["roundcube_upload"]); + putenv('ROUNDCUBE_DOMAIN='.$_POST["roundcube_domain"]); + } +} + +} // not in use put_install_envs() { diff --git a/install.php b/install.php index 7ac785a..b6191f8 100644 --- a/install.php +++ b/install.php @@ -1,5 +1,18 @@ Date: Wed, 7 Aug 2024 09:17:09 +0200 Subject: [PATCH 08/29] post2json --- functions.php | 138 +------------------------------------------------- install.html | 42 +++++++-------- install.php | 24 +++++++-- 3 files changed, 43 insertions(+), 161 deletions(-) diff --git a/functions.php b/functions.php index 7d1ebbe..6ba6f9d 100644 --- a/functions.php +++ b/functions.php @@ -90,140 +90,6 @@ function redis_remove($key) { } } -function create_install_json($data) { - - - -echo '{ - "DOCKER_REGISTRY_URL": '.$data["registry"].', - "SMARTHOST_PROXY": '.$data["smarthost"].', - "DOMAIN": '.$data["domain"].', - "SELF_SIGNED_CERTIFICATE": '.$data["self_signed"].', - "LOCAL_PROXY": '.$data["localproxy"].', - - - "containers": [ - { - "IMAGE": "redis:'$REDIS_VERSION'", - "NAME": "'$REDIS_SERVER'", - "UPDATE": "true", - "MEMORY": "64M", - "NETWORK": "'$FRAMEWORK_SCHEDULER_NETWORK'", - '$ADDITIONAL', - "PORTS":[ - { "SOURCE": "null", - "DEST": "6379", - "TYPE": "tcp" - } - ], - "POST_START": [] - }, - { - "IMAGE": "'$DOCKER_REGISTRY_URL'/'$FRAMEWORK_SCHEDULER_IMAGE':'$FRAMEWORK_SCHEDULER_VERSION'", - "NAME": "'$FRAMEWORK_SCHEDULER_NAME'", - "UPDATE": "true", - "MEMORY": "256M", - "NETWORK": "'$FRAMEWORK_SCHEDULER_NETWORK'", - '$ADDITIONAL', - "POST_START": [] - }, - { - "IMAGE": "'$DOCKER_REGISTRY_URL'/'$WEB_IMAGE':'$WEBSERVER_VERSION'", - "NAME": "'$WEB_SERVER'", - "UPDATE": "true", - "MEMORY": "128M", - "NETWORK": "'$FRAMEWORK_SCHEDULER_NETWORK'", - '$ADDITIONAL', - "PORTS":[ - { "SOURCE": "'$WEBSERVER_PORT'", - "DEST": "80", - "TYPE": "tcp" - } - ], - "POST_START": [] - } - ] -} - ' | jq -r . >/etc/user/config/services/service-framework.json - - - -putenv('HOME=/home/hael'); -putenv('USER=hael'); - -putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); -putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); -putenv('VPN_PROXY='.$_POST["vpn"]); -if ($_POST["vpn"]=="yes") { - putenv('VPN_DOMAIN='.$_POST["vpn_domain"]); - putenv('VPN_KEY='.$_POST["vpn_key"]); - - putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); - putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); -} - -if ($_POST["discovery"]=="yes") { - if ($_POST["DISCOVERY_DIR"] == "" ) $_POST["DISCOVERY_DIR"]="/usr/local/bin/"; - if (substr($_POST["DISCOVERY_DIR"],0,1)!="/") { - echo "The path must be absolute, for example /usr/local/bin/. Please type it again."; - exit; - } - if ($_POST["DISCOVERY_CONFIG_FILE"] == "" ) $_POST["DISCOVERY_CONFIG_FILE"]="discovery.conf"; - putenv('DISCOVERY_DIR='.$_POST["discovery_dir"]); - putenv('DISCOVERY_CONFIG_FILE='.$_POST["discovery_config_file"]); -} - - -putenv('ADDITIONALS='.$_POST["additionals"]); -if ($_POST["additionals"]=="yes") { - if ($_POST["SERVICE_DIR"] == "" ) $_POST["SERVICE_DIR"]="/etc/user/config/services"; - putenv('SERVICE_DIR='.$_POST["service_dir"]); - - putenv('NEXTCLOUD='.$_POST["nextcloud"]); - putenv('BITWARDEN='.$_POST["bitwarden"]); - putenv('GUACAMOLE='.$_POST["guacamole"]); - putenv('SMTP='.$_POST["smtp_server"]); - putenv('ROUNDCUBE='.$_POST["roundcube"]); - - if ($_POST["nextcloud"]=="yes") { - putenv('NEXTCLOUD_DOMAIN='.$_POST["nextcloud_domain"]); - putenv('NEXTCLOUD_USERNAME='.$_POST["nextcloud_username"]); - putenv('NEXTCLOUD_PASSWORD='.$_POST["nextcloud_password"]); - } - if ($_POST["bitwarden"]=="yes") { - putenv('BITWARDEN_DOMAIN='.$_POST["bitwarden_domain"]); - putenv('SMTP_SERVER='.$_POST["bitwarden_smtp_server"]); - putenv('SMTP_HOST='.$_POST["bitwarden_smtp_host"]); - putenv('SMTP_PORT='.$_POST["bitwarden_smtp_port"]); - putenv('SMTP_SECURITY='.$_POST["bitwarden_smtp_security"]); - putenv('SMTP_FROM='.$_POST["bitwarden_smtp_from"]); - putenv('SMTP_USERNAME='.$_POST["bitwarden_smtp_username"]); - putenv('SMTP_PASSWORD='.$_POST["bitwarden_smtp_password"]); - putenv('DOMAINS_WHITELIST='.$_POST["bitwarden_domains_whitelist"]); - } - if ($_POST["guacamole"]=="yes") { - putenv('GUACAMOLE_DOMAIN='.$_POST["bitwarden_domain"]); - putenv('GUACAMOLE_ADMIN_NAME='.$_POST["bitwarden_smtp_username"]); - putenv('GUACAMOLE_ADMIN_PASSWORD='.$_POST["bitwarden_smtp_password"]); - if ($_POST["bitwarden_totp"]=="yes") putenv('TOTP_USE=true'); - if ($_POST["bitwarden_ban_duration"]=="") $_POST["bitwarden_ban_duration"]="5"; - putenv('BAN_DURATION='.$_POST["bitwarden_ban_duration"]); - } - if ($_POST["roundcube"]=="yes") { - if ($_POST["roundcube_imap_port"]=="") $_POST["roundcube_imap_port"]="143"; - if ($_POST["roundcube_smtp_port"]=="") $_POST["roundcube_smtp_port"]="25"; - if ($_POST["roundcube_upload"]=="") $_POST["roundcube_smtp_port"]="50M"; - putenv('ROUNDCUBE_IMAP_HOST='.$_POST["roundcube_imap_host"]); - putenv('ROUNDCUBE_IMAP_PORT='.$_POST["roundcube_imap_port"]); - putenv('ROUNDCUBE_SMTP_HOST='.$_POST["roundcube_smtp_host"]); - putenv('ROUNDCUBE_SMTP_PORT='.$_POST["roundcube_smtp_port"]); - putenv('ROUNDCUBE_UPLOAD_MAX_FILESIZE='.$_POST["roundcube_upload"]); - putenv('ROUNDCUBE_DOMAIN='.$_POST["roundcube_domain"]); - } -} - -} - // not in use put_install_envs() { @@ -247,8 +113,6 @@ put_install_envs() { } putenv('LOCAL_PROXY='.$_POST["localproxy"]); - putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); - putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); putenv('VPN_PROXY='.$_POST["vpn"]); if ($_POST["vpn"]=="yes") { putenv('VPN_DOMAIN='.$_POST["vpn_domain"]); @@ -257,6 +121,8 @@ put_install_envs() { putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); } + putenv('CRON='.$_POST["cron"]); + putenv('DISCOVERY='.$_POST["discovery"]); if ($_POST["discovery"]=="yes") { if ($_POST["DISCOVERY_DIR"] == "" ) $_POST["DISCOVERY_DIR"]="/usr/local/bin/"; diff --git a/install.html b/install.html index e2c7c71..13487fc 100644 --- a/install.html +++ b/install.html @@ -22,7 +22,7 @@
- +
Please enter a valid registry url.
@@ -31,7 +31,7 @@
- @@ -41,7 +41,7 @@
- +
Please enter a valid domain.
@@ -51,7 +51,7 @@
- @@ -60,7 +60,7 @@
- @@ -70,7 +70,7 @@
- +
Please enter a valid domain.
@@ -79,13 +79,13 @@
- +
- +
Please enter a valid email.
@@ -94,14 +94,14 @@
- +
- @@ -114,7 +114,7 @@
- @@ -124,13 +124,13 @@
- +
- +
@@ -141,7 +141,7 @@
- @@ -151,13 +151,13 @@
- +
- @@ -168,26 +168,26 @@
- +
- +
- +
- @@ -198,7 +198,7 @@
- +
diff --git a/install.php b/install.php index b6191f8..f33d374 100644 --- a/install.php +++ b/install.php @@ -1,17 +1,33 @@ Date: Wed, 7 Aug 2024 09:35:02 +0200 Subject: [PATCH 09/29] syntax fix --- functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions.php b/functions.php index 6ba6f9d..89c39c3 100644 --- a/functions.php +++ b/functions.php @@ -91,7 +91,7 @@ function redis_remove($key) { } // not in use -put_install_envs() { +function put_install_envs() { // TEMP putenv('HOME=/home/hael'); From a5eb9fb6e19ff185cadf12686e446c77c29aed8d Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Aug 2024 10:02:40 +0200 Subject: [PATCH 10/29] webin/out --- functions.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/functions.php b/functions.php index 89c39c3..bb472be 100644 --- a/functions.php +++ b/functions.php @@ -12,7 +12,7 @@ function ping_redis() { else return false; } -function check_redis($group="webin") { +function check_redis($group="schedulerin") { global $REDIS_HOST; @@ -67,10 +67,10 @@ function redis_set($key, $value) { if ($redis->ping()) { if (!$redis->exists($key)) { //redis-cli -h redis set $key "$value" - //redis-cli -h redis sadd webout $key - //redis-cli -h redis smembers webout + //redis-cli -h redis sadd webin $key + //redis-cli -h redis smembers webin $redis->set($key, base64_encode($value)); - $redis->sAdd('webout', $key); + $redis->sAdd('webin', $key); } else { echo "Key already exist: $key"; } @@ -83,9 +83,9 @@ function redis_remove($key) { $redis->connect($REDIS_HOST); // $redis->auth('password'); if ($redis->ping()) { - //redis-cli -h redis srem webin $key + //redis-cli -h redis srem webout $key //redis-cli -h redis del $key - $redis->srem("webin", $key); + $redis->srem("webout", $key); $redis->del($key); } } From 58c12741c07a817be897bdb881b62e4c73625a5e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Aug 2024 10:03:16 +0200 Subject: [PATCH 11/29] redis, uppercase --- install.html | 48 ++++++++++++++++++++++++------------------------ install.php | 10 +++++++--- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/install.html b/install.html index 13487fc..1cd2368 100644 --- a/install.html +++ b/install.html @@ -151,7 +151,7 @@
- +
@@ -204,7 +204,7 @@
- @@ -215,51 +215,51 @@
- +
- +
- +
- +
- +
- +
- +
- @@ -270,25 +270,25 @@
- +
- +
- +
- @@ -298,14 +298,14 @@
- +
- @@ -314,7 +314,7 @@
- @@ -325,37 +325,37 @@
- +
- +
- +
- +
- +
- +
@@ -376,7 +376,7 @@ + From 1f3fc24a3eae62282aa47c277870787e4e26b54f Mon Sep 17 00:00:00 2001 From: root Date: Tue, 13 Aug 2024 12:19:43 +0200 Subject: [PATCH 27/29] install.sh --- install.sh | 516 ----------------------------------------------------- 1 file changed, 516 deletions(-) delete mode 100755 install.sh diff --git a/install.sh b/install.sh deleted file mode 100755 index 03f3381..0000000 --- a/install.sh +++ /dev/null @@ -1,516 +0,0 @@ -#!/bin/bash - -ask_envs() { - echo "VPN proxy? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "n" ] || [ "$ANSWER" == "N" ]; then - VPN_PROXY="no"; - else - VPN_PROXY="yes"; - - - if [ "$VPN_PASS" != "" ]; then - dateFromServer=$(curl -v --silent https://demo.format.hu/ 2>&1 | grep -i '< date' | sed -e 's/< date: //gi') - VPN_DATE=$(date +"%Y%m%d" -d "$dateFromServer"); - VPN_HASH=$(echo -n $(( $VPN_PASS * $VPN_DATE )) | sha256sum | cut -d " " -f1); - VPN_URL="$VPN_DOMAIN/$VPN_HASH/secret"; - echo "DEBUG: $VPN_DATE"; - echo "DEBUG: $VPN_URL"; - HTTP_CODE=$(curl -s -I -w "%{http_code}" $VPN_URL -o /dev/null); - break; - fi; - - echo "DEBUG: $HTTP_CODE"; - if [ "$HTTP_CODE" == "200" ]; then - # download VPN key - VPN_KEY=$(curl -s $VPN_URL); - echo $VPN_KEY; - - $SUDO_CMD mkdir -p /etc/user/secret/vpn-proxy; - echo $VPN_KEY | base64 -d > /tmp/wg0.conf; - $SUDO_CMD mv /tmp/wg0.conf /etc/user/secret/vpn-proxy/; - break; - else - echo "Download of VPN KEY was unsuccessful from URL: $VPN_URL"; - - echo "Do you want to retry? (Y/n)"; - read -r VPN_RETRY; - if [ "$VPN_RETRY" == "n" ] || [ "$VPN_RETRY" == "N" ]; then - VPN_PROXY="no"; - echo "VPN proxy was skipped."; - break; - fi - fi; - - if [ "$VPN_PROXY" == "yes" ]; then - if [ "$LETSENCRYPT_SERVERNAME" = "" ]; then - LETSENCRYPT_SERVERNAME="letsencrypt"; - fi; - fi; - fi -} - -discover_services() { - if [ "$DISCOVERY" == "yes" ]; then - if [ "$DISCOVERY_CONFIG_FILE" == "discovery.conf" ] ; then - DISCOVERY_CONFIG_FILE=$PWD"/discovery.conf"; - if [ ! -f $DISCOVERY_CONFIG_FILE ]; then - USE_SUDO=$(whoami); - if [ "$USE_SUDO" == "root" ]; then - USE_SUDO=0; - else - USE_SUDO=1; - fi - - { - echo '#!/bin/bash'; - echo 'SOURCE_DIRS="/etc/user/data/ /etc/user/config/"; # separator space or |'; - echo 'DIRNAME="services misc"; # separator space or |'; - echo 'FILENAME="service healthcheck"; # separator space or |'; - echo 'KEYS="START_ON_BOOT"; # separator space or |'; - echo 'DEST_FILE="results.txt";'; - echo 'USE_SUDO='$USE_SUDO';'; - - } >> $DISCOVERY_CONFIG_FILE; - fi - fi - DISCOVERY_CONFIG_DIR=$(dirname $DISCOVERY_CONFIG_FILE) - if [ "$DISCOVERY_CONFIG_DIR" == "/root" ]; then - DISCOVERY_CONFIG_DIR=""; - fi - - fi -} - -check_dirs_and_files() { # TODO? - - if [ ! -f "$HOME/.ssh/installer" ]; then - echo "No ssh key files found. Please paste base64 content of the installer private key: "; - while read -r INSTALLER; do - if [ "$INSTALLER" != "" ]; then - break; - fi; - done - echo $INSTALLER > $HOME/.ssh/installer; - fi; - chmod 0600 $HOME/.ssh/installer; - - if [ ! -d "/etc/user/config" ]; then - $SUDO_CMD mkdir -p "/etc/user/config" - fi; - if [ ! -d "/etc/system" ]; then - $SUDO_CMD mkdir "/etc/system" - fi; - if [ ! -d "/etc/user/secret" ]; then - $SUDO_CMD mkdir -p "/etc/user/secret" - fi; - - if [ ! -f "/etc/user/config/system.json" ]; then - { - echo ' -{ - "NETWORK": { - "IP_POOL_START": "172.19.0.0", - "IP_POOL_END": "172.19.254.0", - "IP_SUBNET": "24" - } -} -'; - } > /tmp/system.json - - $SUDO_CMD mv /tmp/system.json /etc/user/config/system.json - fi; - - { - echo "alias service-debian='$SUDO_CMD docker run --rm \ - -w /services/ \ - -e DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \ - -e USER_INIT_PATH=/etc/user/config \ - -e CA_PATH=/etc/ssl/certs \ - -e DNS_DIR=/etc/system/data/dns \ - -e HOST_FILE=/etc/dns/hosts.local \ - -v /etc/system/data/dns:/etc/dns:rw \ - -v /etc/ssl/certs:/etc/ssl/certs:ro \ - -v /etc/user/config/user.json:/etc/user/config/user.json:ro \ - -v /etc/user/config/system.json:/etc/user/config/system.json:ro \ - -v /etc/user/config/services/:/services/:ro \ - -v /etc/user/config/services/tmp:/services/tmp:rw \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v /usr/bin/docker:/usr/bin/docker:ro \ - $DOCKER_REGISTRY_URL/setup'"; - } > $HOME/.bash_aliases - -} - -check_running() { - - DOCKERD_STATUS="0"; - - ### From Redis - # bridge check - BRIDGE_NUM=$($SUDO_CMD docker network ls | grep bridge | awk '{print $2":"$3}' | sort | uniq | wc -l); - - CONTAINER_NUM=$($SUDO_CMD docker ps -a | wc -l); - - if [ "$BRIDGE_NUM" != "1" ] && [ "$CONTAINER_NUM" != "1" ]; then - - echo "There are existing containers and/or networks."; - echo "Please select from the following options (1/2/3):"; - - echo "1 - Delete all existing containers and networks before installation"; - echo "2 - Stop the installation process"; - echo "3 - Just continue on my own risk"; - - read -r ANSWER; - - if [ "$ANSWER" == "1" ]; then - echo "1 - Removing exising containers and networks"; - # delete and continue - $SUDO_CMD docker stop $($SUDO_CMD docker ps |grep Up | awk '{print $1}') - $SUDO_CMD docker system prune -a - - elif [ "$ANSWER" == "3" ]; then - echo "3 - You have chosen to continue installation process." - - else # default: 2 - stop installastion - echo "2 - Installation process was stopped"; - exit; - fi; - - fi; - # visszairni redis - ha redisbol minden 1, akkor manager mode -} - -SUDO_CMD=""; - -# first install -if [ ! -f "/etc/user/config/system.json" ]; then - - INIT="true"; - - check_running; - - check_dirs_and_files; - - discover_services; - - # base variables - - if [ "$DOCKER_REGISTRY_URL" != "" ]; then - VAR_DOCKER_REGISTRY_URL="--env DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL"; - fi - - if [ "$SMARTHOST_PROXY" != "" ]; then - VAR_SMARTHOST_PROXY="--env SMARTHOST_PROXY=$SMARTHOST_PROXY"; - fi - - if [ "$LOCAL_PROXY" != "" ]; then - VAR_LOCAL_PROXY="--env LOCAL_PROXY=$LOCAL_PROXY"; - fi - - if [ "$VPN_PROXY" != "" ]; then - VAR_VPN_PROXY="--env VPN_PROXY=$VPN_PROXY"; - fi - - if [ "$DOMAIN" != "" ]; then - VAR_DOMAIN="--env DOMAIN=$DOMAIN"; - fi - - if [ "$CRON" != "" ]; then - VAR_CRON="--env CRON=$CRON"; - fi - - # discovery - - if [ "$DISCOVERY" != "" ]; then - VAR_DISCOVERY="--env DISCOVERY=$DISCOVERY"; - fi - - if [ "$DISCOVERY_DIR" != "" ]; then - VAR_DISCOVERY_DIR="--env DISCOVERY_DIR=$DISCOVERY_DIR"; - VAR_DISCOVERY_DIRECTORY="--volume $DISCOVERY_DIR/:$DISCOVERY_DIR/"; - fi - - if [ "$DISCOVERY_CONFIG_FILE" != "" ]; then - VAR_DISCOVERY_CONFIG_FILE="--env DISCOVERY_CONFIG_FILE=$DISCOVERY_CONFIG_FILE"; - if [ "$DISCOVERY_CONFIG_DIR" != "" ]; then - VAR_DISCOVERY_CONFIG_DIRECTORY="--volume $DISCOVERY_CONFIG_DIR/:$DISCOVERY_CONFIG_DIR/"; - fi - fi - - # Run installer tool - - $SUDO_CMD docker run \ - $VAR_DOCKER_REGISTRY_URL \ - $VAR_SMARTHOST_PROXY \ - $VAR_LOCAL_PROXY \ - $VAR_VPN_PROXY \ - $VAR_DOMAIN \ - $VAR_CRON \ - $VAR_DISCOVERY \ - $VAR_DISCOVERY_DIR \ - $VAR_DISCOVERY_DIRECTORY \ - $VAR_DISCOVERY_CONFIG_FILE \ - $VAR_DISCOVERY_CONFIG_DIRECTORY \ - --volume $HOME/.ssh/installer:/root/.ssh/id_rsa \ - --volume /etc/user/:/etc/user/ \ - --volume /etc/system/:/etc/system/ \ - --env LETSENCRYPT_MAIL=$LETSENCRYPT_MAIL \ - --env LETSENCRYPT_SERVERNAME=$LETSENCRYPT_SERVERNAME \ - $DOCKER_REGISTRY_URL/installer-tool -else - - $SUDO_CMD docker pull $DOCKER_REGISTRY_URL/installer-tool - $SUDO_CMD docker pull $DOCKER_REGISTRY_URL/setup - -fi; - - # test - alias doesn't work inside a function - # must be outside of if - shopt -s expand_aliases - source $HOME/.bash_aliases - -if [ "$INIT" == "true" ]; then - - INIT_SERVICE_PATH=/etc/user/config/services - - type -a service-debian - - service-debian core-dns start - echo "$INIT_SERVICE_PATH/core-dns.json" >> $PWD/.init_services - - if [ "$CRON" == "yes" ]; then - service-debian cron start - echo "$INIT_SERVICE_PATH/cron.json" >> $PWD/.init_services - fi - - if [ "$VPN_PROXY" == "yes" ]; then - service-debian vpn-proxy start - echo "$INIT_SERVICE_PATH/vpn-proxy.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-vpn-smarthost-loadbalancer" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-vpn-proxy-postrouting" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-vpn-proxy-prerouting" >> $PWD/.init_services - - fi - - if [ "$SMARTHOST_PROXY" == "yes" ]; then - service-debian smarthost-proxy start - service-debian smarthost-proxy-scheduler start - service-debian local-proxy start - - echo "$INIT_SERVICE_PATH/smarthost-proxy.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthost-loadbalancer-dns.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-letsencrypt.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthostloadbalancer-from-publicbackend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthost-backend-dns.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthost-to-backend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/smarthost-proxy-scheduler.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/local-proxy.json" >> $PWD/.init_services - - echo "Would you like to run local backend? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - service-debian local-backend start - echo "$INIT_SERVICE_PATH/local-backend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-local-backend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/domain-local-backend.json" >> $PWD/.init_services - fi - fi - -fi; - -# install additionals - run installer-tool again but additional_install.sh instead of deploy.sh -if [ "$ADDITIONALS" == "yes" ]; then - - ADDITIONAL_SERVICES=""; - - if [ "$NEXTCLOUD" == "yes" ]; then - VAR_NEXTCLOUD="--env NEXTCLOUD=$NEXTCLOUD"; - VAR_NEXTCLOUD="$VAR_NEXTCLOUD --env NEXTCLOUD_DOMAIN=$NEXTCLOUD_DOMAIN"; - VAR_NEXTCLOUD="$VAR_NEXTCLOUD --env NEXTCLOUD_USERNAME=$NEXTCLOUD_USERNAME"; - VAR_NEXTCLOUD="$VAR_NEXTCLOUD --env NEXTCLOUD_PASSWORD=$NEXTCLOUD_PASSWORD"; - - if [ ! -d "/etc/user/data/nextcloud" ]; then - for DIR in data apps config ; do - $SUDO_CMD mkdir -p "/etc/user/data/nextcloud/$DIR" - $SUDO_CMD chown -R 82:82 "/etc/user/data/nextcloud/$DIR" - done - fi; - - echo "Would you like to run Nextcloud after install? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - ADDITIONAL_SERVICES="$ADDITIONAL_SERVICES nextcloud"; - fi - fi - - if [ "$BITWARDEN" == "yes" ]; then - VAR_BITWARDEN="--env BITWARDEN=$BITWARDEN"; - VAR_BITWARDEN="$VAR_BITWARDEN --env BITWARDEN_DOMAIN=$BITWARDEN_DOMAIN"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_SERVER=$SMTP_SERVER"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_HOST=$SMTP_HOST"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_PORT=$SMTP_PORT"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_SECURITY=$SMTP_SECURITY"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_FROM=$SMTP_FROM"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_USERNAME=$SMTP_USERNAME"; - VAR_BITWARDEN="$VAR_BITWARDEN --env SMTP_PASSWORD=$SMTP_PASSWORD"; - VAR_BITWARDEN="$VAR_BITWARDEN --env DOMAINS_WHITELIST=$DOMAINS_WHITELIST"; - - echo " "; - echo "######################################################################################"; - echo "# You can access your bitwarden admin page here: https://$BITWARDEN_DOMAIN/admin #"; - echo "# You will find ADMIN TOKEN in this file: /etc/user/secret/bitwarden.json #"; - echo "######################################################################################"; - echo " "; - echo "Would you like to run Bitwarden after install? (Y/n)"; - - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - ADDITIONAL_SERVICES="$ADDITIONAL_SERVICES bitwarden"; - fi - fi - - if [ "$GUACAMOLE" == "yes" ]; then - VAR_GUACAMOLE="--env GUACAMOLE=$GUACAMOLE"; - VAR_GUACAMOLE="$VAR_GUACAMOLE --env GUACAMOLE_DOMAIN=$GUACAMOLE_DOMAIN"; - VAR_GUACAMOLE="$VAR_GUACAMOLE --env GUACAMOLE_ADMIN_NAME=$GUACAMOLE_ADMIN_NAME"; - VAR_GUACAMOLE="$VAR_GUACAMOLE --env GUACAMOLE_ADMIN_PASSWORD=$GUACAMOLE_ADMIN_PASSWORD"; - VAR_GUACAMOLE="$VAR_GUACAMOLE --env TOTP_USE=$TOTP_USE"; - VAR_GUACAMOLE="$VAR_GUACAMOLE --env BAN_DURATION=$BAN_DURATION"; - - echo "Would you like to run Guacamole after install? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - ADDITIONAL_SERVICES="$ADDITIONAL_SERVICES guacamole"; - fi - fi - - if [ "$SMTP" == "yes" ]; then - VAR_SMTP="--env SMTP=$SMTP"; - - echo "Would you like to run SMTP after install? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - ADDITIONAL_SERVICES="$ADDITIONAL_SERVICES smtp"; - fi - fi - - if [ "$ROUNDCUBE" == "yes" ]; then - VAR_ROUNDCUBE="--env ROUNDCUBE=$ROUNDCUBE"; - VAR_ROUNDCUBE="$VAR_ROUNDCUBE --env ROUNDCUBE_IMAP_HOST=$ROUNDCUBE_IMAP_HOST"; - VAR_ROUNDCUBE="$VAR_ROUNDCUBE --env ROUNDCUBE_IMAP_PORT=$ROUNDCUBE_IMAP_PORT"; - VAR_ROUNDCUBE="$VAR_ROUNDCUBE --env ROUNDCUBE_SMTP_HOST=$ROUNDCUBE_SMTP_HOST"; - VAR_ROUNDCUBE="$VAR_ROUNDCUBE --env ROUNDCUBE_SMTP_PORT=$ROUNDCUBE_SMTP_PORT"; - VAR_ROUNDCUBE="$VAR_ROUNDCUBE --env ROUNDCUBE_UPLOAD_MAX_FILESIZE=$ROUNDCUBE_UPLOAD_MAX_FILESIZE"; - VAR_ROUNDCUBE="$VAR_ROUNDCUBE --env ROUNDCUBE_DOMAIN=$ROUNDCUBE_DOMAIN"; - - echo "Would you like to run roundcube after install? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - ADDITIONAL_SERVICES="$ADDITIONAL_SERVICES roundcube"; - fi - fi - - # Run installer tool - $SUDO_CMD docker run \ - --env ADDITIONALS=true \ - --env SERVICE_DIR=$SERVICE_DIR\ - $VAR_NEXTCLOUD \ - $VAR_BITWARDEN \ - $VAR_GUACAMOLE \ - $VAR_SMTP \ - $VAR_ROUNDCUBE \ - --volume $HOME/.ssh/installer:/root/.ssh/id_rsa \ - --volume /etc/user/:/etc/user/ \ - --volume /etc/system/:/etc/system/ \ - $DOCKER_REGISTRY_URL/installer-tool -fi - -shopt -s expand_aliases -source $HOME/.bash_aliases - -if [ "$ADDITIONAL_SERVICES" != "" ]; then - for ADDITIONAL_SERVICE in $(echo $ADDITIONAL_SERVICES); do - service-debian $ADDITIONAL_SERVICE start - echo "$INIT_SERVICE_PATH/$ADDITIONAL_SERVICE.json" >> $PWD/.init_services - done -fi - -if [ "$DISCOVERY" != "yes" ] ; then - discover_services; -fi; - -if [ "$DISCOVERY" == "yes" ] ; then - $SUDO_CMD chmod a+x $DISCOVERY_DIR/service-discovery.sh - $DISCOVERY_DIR/service-discovery.sh $DISCOVERY_CONFIG_FILE; - source $DISCOVERY_CONFIG_FILE; - cat $DEST_FILE; - - echo "Would you like to run discovered services? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - $SUDO_CMD chmod a+x $DISCOVERY_DIR/service-files.sh - $DISCOVERY_DIR/service-files.sh $DEST_FILE & - fi; -fi; - -if [ "$DEBIAN" == "true" ] || [ "$GENTOO" == "true" ] ; then - - echo "Do you want to start the discovered and actually started services at the next time when your system restarting? (Y/n)"; - read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - - cp $DISCOVERY_CONFIG_FILE $DISCOVERY_CONFIG_FILE".copy"; - cp $DEST_FILE $DEST_FILE".copy"; - - DISCOVERY_CONFIG_FILENAME=$(basename $DISCOVERY_CONFIG_FILE); - source $DISCOVERY_CONFIG_FILE; - { - echo '#!/bin/bash'; - echo 'SOURCE_DIRS="'$SOURCE_DIRS'"; # separator space or |'; - echo 'DIRNAME="'$DIRNAME'"; # separator space or |'; - echo 'FILENAME="'$FILENAME'"; # separator space or |'; - echo 'KEYS="'$KEYS'"; # separator space or |'; - echo 'DEST_FILE="/usr/local/etc/results.txt";'; - echo 'USE_SUDO=0;'; - } > /tmp/$DISCOVERY_CONFIG_FILENAME - - $SUDO_CMD mkdir -p /usr/local/etc; - - $SUDO_CMD mv /tmp/$DISCOVERY_CONFIG_FILENAME /usr/local/etc/$DISCOVERY_CONFIG_FILENAME - - { - cat $PWD/.init_services; - cat $DEST_FILE; - } > /tmp/$DEST_FILE - - $SUDO_CMD mv /tmp/$DEST_FILE /usr/local/etc/$DEST_FILE - - - if [ "$DEBIAN" == "true" ] ; then - { - echo " -[Unit] -Description=Discover services - -[Service] -Type=oneshot -ExecStart=/usr/local/bin/service-files.sh /usr/local/etc/results.txt restart - -[Install] -WantedBy=multi-user.target -"; - - } > /tmp/discovery.service - $SUDO_CMD mv /tmp/discovery.service /etc/systemd/system/discovery.service - $SUDO_CMD systemctl enable discovery.service - - elif [ "$GENTOO" == "true" ] ; then - $SUDO_CMD echo "/usr/local/bin/service-files.sh /usr/local/etc/results.txt restart" > /etc/local.d/service-file.start; - $SUDO_CMD chmod a+x /etc/local.d/service-file.start; - fi; - fi; -fi; - -rm $PWD/.init_services - From e76f402c66fa4bef9c6b689283ddf52e1c16f1ca Mon Sep 17 00:00:00 2001 From: root Date: Tue, 13 Aug 2024 13:07:03 +0200 Subject: [PATCH 28/29] install.sh removed from Docker file --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4d1f9e7..aad97cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -78,7 +78,6 @@ COPY scan.php /usr/share/nginx/html COPY functions.php /usr/share/nginx/html COPY install.html /usr/share/nginx/html COPY install.php /usr/share/nginx/html -COPY install.sh /usr/share/nginx/html COPY installer.css /usr/share/nginx/html RUN chown -R nginx:nginx /usr/share/nginx/html From 961765f5d064e30ced1b2147e283519ceab61e7b Mon Sep 17 00:00:00 2001 From: root Date: Fri, 16 Aug 2024 12:13:57 +0200 Subject: [PATCH 29/29] .... --- functions.php | 4 ++- install.php | 70 ++++++++++++++++++++++++++++++++++++++++++++++++--- scan.php | 15 +++++++++++ 3 files changed, 85 insertions(+), 4 deletions(-) diff --git a/functions.php b/functions.php index ab1b104..84e8759 100644 --- a/functions.php +++ b/functions.php @@ -12,7 +12,7 @@ function ping_redis() { else return false; } -function check_redis($group="scheduler_in") { +function check_redis($group="scheduler_in", $key="") { global $REDIS_HOST; @@ -23,6 +23,8 @@ function check_redis($group="scheduler_in") { //print_r($members); foreach ($members as $member) { + if ($key!="" && $member!=$key) continue; // check a specific key in a group + $value = $redis->get($member); $json_data = base64_decode($value); $data = json_decode($json_data,true); diff --git a/install.php b/install.php index 9d5da35..9a65969 100644 --- a/install.php +++ b/install.php @@ -28,10 +28,11 @@ if ($_POST["ADDITIONALS"]=="yes") { $json = json_encode($_POST, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); //echo $json; -$op = "install:".date("YmdHis"); -redis_set($op,$json); +// TODO preview about selected options? +// TODO - new install in progress? -//echo redis_get($op); +$key = "install:".date("YmdHis"); +redis_set($key,$json); /* put_install_envs(); @@ -45,3 +46,66 @@ echo "
".$output."
"; */ ?> + + + + + + +INSTALLER TOOL + + + + + + +
+
+

Installing in progress... Please wait...

+
+
+
+
+ + + + + + + + diff --git a/scan.php b/scan.php index 74f9808..b79f973 100644 --- a/scan.php +++ b/scan.php @@ -32,6 +32,21 @@ switch ($_GET["op"]) { } else echo "WAIT"; break; + case "check_install": + $arr = check_redis("web_out",$_GET["key"]); + if (!empty($arr)) { + foreach ($arr as $key=>$data) { + //echo $key."-".$_GET["key"]; + if ($key==$_GET["key"]) { // if install key moved to web_out + if ($data["INSTALL_STATUS"]==1) { + redis_remove("$key"); + echo "INSTALLED"; + } + } + } + } + else echo "NOT EXISTS"; + break; case "docker": echo true; break;