diff --git a/Dockerfile b/Dockerfile index f8430a4..6abadcb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -73,9 +73,10 @@ 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 COPY installer.css /usr/share/nginx/html RUN chown -R nginx:nginx /usr/share/nginx/html diff --git a/functions.php b/functions.php index 6146994..84e8759 100644 --- a/functions.php +++ b/functions.php @@ -1,6 +1,6 @@ connect($REDIS_HOST); if ($redis->ping()) { - $members = $redis->sMembers($group); // redis-cli -h safebox-redis smembers generated + $members = $redis->sMembers($group); // redis-cli -h redis-server smembers $group //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); + $data = json_decode($json_data,true); if ($data === null) { echo "JSON read error..."; // TODO json error } else { + return array("$member" => $data); } } } @@ -43,12 +46,12 @@ function redis_get($key) { $redis = new Redis(); $redis->connect($REDIS_HOST); if ($redis->ping()) { - //$arList = $redis->keys("*"); // ? redis-cli -h safebox-redis keys "*" + //$arList = $redis->keys("*"); // ? redis-cli -h redis-server keys "*" //echo "Stored keys in redis:"; //print_r($arList); if ($redis->exists($key)) { $value = $redis->get($key); - //redis-cli -h safebox-redis get $key + //redis-cli -h redis-server get $key return base64_decode($value); } else { echo "Key does not exist: $key"; @@ -67,10 +70,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 web_in $key + //redis-cli -h redis smembers web_in $redis->set($key, base64_encode($value)); - $redis->sAdd('webout', $key); + $redis->sAdd('web_in', $key); } else { echo "Key already exist: $key"; } @@ -79,15 +82,112 @@ function redis_set($key, $value) { function redis_remove($key) { + global $REDIS_HOST; + $redis = new Redis(); $redis->connect($REDIS_HOST); // $redis->auth('password'); if ($redis->ping()) { - //redis-cli -h redis srem webin $key + //redis-cli -h redis srem web_out $key //redis-cli -h redis del $key - $redis->srem("webin", $key); + $redis->srem("web_out", $key); $redis->del($key); } } +// not in use +function 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('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"]); + } + putenv('CRON='.$_POST["cron"]); + putenv('DISCOVERY='.$_POST["discovery"]); + + 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"]); + } + } +} + ?> diff --git a/index.html b/index.html index 5bd7575..4ed05dd 100644 --- a/index.html +++ b/index.html @@ -25,18 +25,75 @@
- + +