post2json
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
root
2024-08-07 09:17:09 +02:00
parent cdd9b51723
commit bc3fc9995e
3 changed files with 43 additions and 161 deletions

View File

@@ -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 // not in use
put_install_envs() { put_install_envs() {
@@ -247,8 +113,6 @@ put_install_envs() {
} }
putenv('LOCAL_PROXY='.$_POST["localproxy"]); putenv('LOCAL_PROXY='.$_POST["localproxy"]);
putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]);
putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]);
putenv('VPN_PROXY='.$_POST["vpn"]); putenv('VPN_PROXY='.$_POST["vpn"]);
if ($_POST["vpn"]=="yes") { if ($_POST["vpn"]=="yes") {
putenv('VPN_DOMAIN='.$_POST["vpn_domain"]); putenv('VPN_DOMAIN='.$_POST["vpn_domain"]);
@@ -257,6 +121,8 @@ put_install_envs() {
putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]); putenv('LETSENCRYPT_MAIL='.$_POST["letsencrypt_mail"]);
putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]); putenv('LETSENCRYPT_SERVERNAME='.$_POST["letsencrypt_servername"]);
} }
putenv('CRON='.$_POST["cron"]);
putenv('DISCOVERY='.$_POST["discovery"]);
if ($_POST["discovery"]=="yes") { if ($_POST["discovery"]=="yes") {
if ($_POST["DISCOVERY_DIR"] == "" ) $_POST["DISCOVERY_DIR"]="/usr/local/bin/"; if ($_POST["DISCOVERY_DIR"] == "" ) $_POST["DISCOVERY_DIR"]="/usr/local/bin/";

View File

@@ -22,7 +22,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="registry">Please fill in the docker registry name (default:registry.format.hu):</label> <label for="registry">Please fill in the docker registry name (default:registry.format.hu):</label>
<input type="registry" class="form-control" name="registry" id="registry" value="registry.format.hu" required> <input type="registry" class="form-control" name="DOCKER_REGISTRY_URL" id="registry" value="registry.format.hu" required>
<div class="invalid-feedback"> <div class="invalid-feedback">
Please enter a valid registry url. Please enter a valid registry url.
</div> </div>
@@ -31,7 +31,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="smarthost">Smarthost proxy?</label> <label for="smarthost">Smarthost proxy?</label>
<select class="custom-select d-block w-100" name="smarthost" id="smarthost"> <select class="custom-select d-block w-100" name="SMARTHOST_PROXY" id="smarthost">
<option value="yes" selected>Yes</option> <option value="yes" selected>Yes</option>
<option value="no">No</option> <option value="no">No</option>
</select> </select>
@@ -41,7 +41,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="domain">Please fill in the domain name</label> <label for="domain">Please fill in the domain name</label>
<input type="domain" class="form-control" name="domain" id="domain" value="localhost"> <input type="domain" class="form-control" name="DOMAIN" id="domain" value="localhost">
<div class="invalid-feedback"> <div class="invalid-feedback">
Please enter a valid domain. Please enter a valid domain.
</div> </div>
@@ -51,7 +51,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="localproxy">Local proxy?</label> <label for="localproxy">Local proxy?</label>
<select class="custom-select d-block w-100" name="localproxy" id="localproxy"> <select class="custom-select d-block w-100" name="LOCAL_PROXY" id="localproxy">
<option value="yes" selected>Yes</option> <option value="yes" selected>Yes</option>
<option value="no">No</option> <option value="no">No</option>
</select> </select>
@@ -60,7 +60,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="vpn">VPN proxy?</label> <label for="vpn">VPN proxy?</label>
<select class="custom-select d-block w-100" name="vpn" id="vpn"> <select class="custom-select d-block w-100" name="VPN_PROXY" id="vpn">
<option value="yes">Yes</option> <option value="yes">Yes</option>
<option value="no" selected>No</option> <option value="no" selected>No</option>
</select> </select>
@@ -70,7 +70,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="vpn_domain">Please add domain url to download the VPN hash from (default: https://demo.format.hu):</label> <label for="vpn_domain">Please add domain url to download the VPN hash from (default: https://demo.format.hu):</label>
<input type="text" class="form-control" name="vpn_domain" id="vpn_domain" value="https://demo.format.hu"> <input type="text" class="form-control" name="VPN_DOMAIN" id="vpn_domain" value="https://demo.format.hu">
<div class="invalid-feedback"> <div class="invalid-feedback">
Please enter a valid domain. Please enter a valid domain.
</div> </div>
@@ -79,13 +79,13 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="vpn_key">Please type in the generated VPN passkey (8 digits):</label> <label for="vpn_key">Please type in the generated VPN passkey (8 digits):</label>
<input type="text" class="form-control" name="vpn_key" id="vpn_key" value="" maxlength="8" size="10"> <input type="text" class="form-control" name="VPN_KEY" id="vpn_key" value="" maxlength="8" size="10">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="letsencrypt_mail">Please add the letsencrypt mail address:</label> <label for="letsencrypt_mail">Please add the letsencrypt mail address:</label>
<input type="email" class="form-control" name="letsencrypt_mail" id="letsencrypt_mail" value=""> <input type="email" class="form-control" name="LETSENCRYPT_MAIL" id="letsencrypt_mail" value="">
<div class="invalid-feedback"> <div class="invalid-feedback">
Please enter a valid email. Please enter a valid email.
</div> </div>
@@ -94,14 +94,14 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="letsencrypt_servername">Please add letsencrypt server name (default is letsencrypt but you can add zerossl too):</label> <label for="letsencrypt_servername">Please add letsencrypt server name (default is letsencrypt but you can add zerossl too):</label>
<input type="text" class="form-control" name="letsencrypt_servername" id="letsencrypt_servername" value="letsencrypt"> <input type="text" class="form-control" name="LETSENCRYPT_SERVERNAME" id="letsencrypt_servername" value="letsencrypt">
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="cron">Cron?</label> <label for="cron">Cron?</label>
<select class="custom-select d-block w-100" name="cron" id="cron"> <select class="custom-select d-block w-100" name="CRON" id="cron">
<option value="yes">Yes</option> <option value="yes">Yes</option>
<option value="no">No</option> <option value="no">No</option>
</select> </select>
@@ -114,7 +114,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="discovery">Would you like to discover services?</label> <label for="discovery">Would you like to discover services?</label>
<select class="custom-select d-block w-100" name="discovery" id="discovery"> <select class="custom-select d-block w-100" name="DISCOVERY" id="discovery">
<option value="yes" selected>Yes</option> <option value="yes" selected>Yes</option>
<option value="no">No</option> <option value="no">No</option>
</select> </select>
@@ -124,13 +124,13 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="discovery_dir">Path of service discovery scripts: (/usr/local/bin/)</label> <label for="discovery_dir">Path of service discovery scripts: (/usr/local/bin/)</label>
<input type="text" class="form-control" name="discovery_dir" id="discovery_dir" value="/usr/local/bin/"> <input type="text" class="form-control" name="DISCOVERY_DIR" id="discovery_dir" value="/usr/local/bin/">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="dicovery_config_file">Path of the discovery config file: (discovery.conf)</label> <label for="dicovery_config_file">Path of the discovery config file: (discovery.conf)</label>
<input type="text" class="form-control" name="dicovery_config_file" id="dicovery_config_file" value="discovery.conf"> <input type="text" class="form-control" name="DISCOVERY_CONFIG_FILE" id="dicovery_config_file" value="discovery.conf">
</div> </div>
</div> </div>
</div> </div>
@@ -141,7 +141,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="additionals">Would you like to install additional applications?</label> <label for="additionals">Would you like to install additional applications?</label>
<select class="custom-select d-block w-100" name="additionals" id="additionals"> <select class="custom-select d-block w-100" name="ADDITIONALS" id="additionals">
<option value="yes">Yes</option> <option value="yes">Yes</option>
<option value="no" selected>No</option> <option value="no" selected>No</option>
</select> </select>
@@ -151,13 +151,13 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="service_dir">Please add directory path of service files: (/etc/user/config/services/)</label> <label for="service_dir">Please add directory path of service files: (/etc/user/config/services/)</label>
<input type="text" class="form-control" name="service_dir" id="service_dir" value="/etc/user/config/services"> <input type="text" class="form-control" name="service_dir" id="SERVICE_DIR" value="/etc/user/config/services">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="nextcloud">Do you want to install Nextcloud?</label> <label for="nextcloud">Do you want to install Nextcloud?</label>
<select class="custom-select d-block w-100" name="nextcloud" id="nextcloud"> <select class="custom-select d-block w-100" name="NEXTCLOUD" id="nextcloud">
<option value="yes">Yes</option> <option value="yes">Yes</option>
<option value="no" selected>No</option> <option value="no" selected>No</option>
</select> </select>
@@ -168,26 +168,26 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="nextcloud_domain">Please add Nextcloud domain: </label> <label for="nextcloud_domain">Please add Nextcloud domain: </label>
<input type="text" class="form-control" name="nextcloud_domain" id="nextcloud_domain" value=""> <input type="text" class="form-control" name="NEXTCLOUD_DOMAIN" id="nextcloud_domain" value="">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="nextcloud_username">Please add Nextcloud username: </label> <label for="nextcloud_username">Please add Nextcloud username: </label>
<input type="text" class="form-control" name="nextcloud_username" id="nextcloud_username" value=""> <input type="text" class="form-control" name="NEXTCLOUD_USERNAME" id="nextcloud_username" value="">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="nextcloud_password">Please add Nextcloud password: </label> <label for="nextcloud_password">Please add Nextcloud password: </label>
<input type="text" class="form-control" name="nextcloud_password" id="nextcloud_password" value=""> <input type="text" class="form-control" name="NEXTCLOUD_PASSWORD" id="nextcloud_password" value="">
</div> </div>
</div> </div>
</fieldset> </fieldset>
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="bitwarden">Do you want to install Bitwarden?</label> <label for="bitwarden">Do you want to install Bitwarden?</label>
<select class="custom-select d-block w-100" name="bitwarden" id="bitwarden"> <select class="custom-select d-block w-100" name="BITWARDEN" id="bitwarden">
<option value="yes">Yes</option> <option value="yes">Yes</option>
<option value="no" selected>No</option> <option value="no" selected>No</option>
</select> </select>
@@ -198,7 +198,7 @@
<div class="row"> <div class="row">
<div class="mb-3"> <div class="mb-3">
<label for="bitwarden_domain">Please add Bitwarden domain: </label> <label for="bitwarden_domain">Please add Bitwarden domain: </label>
<input type="text" class="form-control" name="bitwarden_domain" id="bitwarden_domain" value=""> <input type="text" class="form-control" name="BITWARDEN_DOMAIN" id="bitwarden_domain" value="">
</div> </div>
</div> </div>
<div class="row"> <div class="row">

View File

@@ -1,17 +1,33 @@
<?php <?php
if ($_POST["smarthost"]=="Y") { if ($_POST["SMARTHOST_PROXY"]=="Y") {
if ($_POST["domain"]=="") $_POST["domain"] = "localhost"; if ($_POST["DOMAIN"]=="") $_POST["DOMAIN"] = "localhost";
# if not FQDN # if not FQDN
$arr = explode(".",$_POST["DOMAIN"]); $arr = explode(".",$_POST["DOMAIN"]);
if (count($arr)==1) { if (count($arr)==1) {
echo "Warning! It seems DOMAAIN is not an FQDN. Self-signed certificate will be created only."; echo "Warning! It seems DOMAAIN is not an FQDN. Self-signed certificate will be created only.";
$_POST["self_signed"] = "true"; $_POST["SELF_SIGNED_CERTIFICATE"] = "true";
} }
} }
create_install_json($_POST); 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";
}
if ($_POST["ADDITIONALS"]=="yes") {
if ($_POST["SERVICE_DIR"] == "" ) $_POST["SERVICE_DIR"]="/etc/user/config/services";
}
$json = json_encode($_POST);
echo $json;
// TODO redis
/* /*
put_install_envs(); put_install_envs();