db backup for mysql
authorKilian Saffran <ksaffran@dks.lu>
Wed, 20 Feb 2019 09:54:02 +0000 (10:54 +0100)
committerKilian Saffran <ksaffran@dks.lu>
Wed, 20 Feb 2019 09:54:02 +0000 (10:54 +0100)
78 files changed:
.gitignore [new file with mode: 0644]
bin/Module/OpenVPN.pm [moved from Module/OpenVPN.pm with 100% similarity, mode: 0644]
bin/Module/SSH.pm [moved from Module/SSH.pm with 100% similarity, mode: 0644]
bin/Module/Service.pm [moved from Module/Service.pm with 100% similarity, mode: 0644]
bin/Module/System.pm [moved from Module/System.pm with 100% similarity, mode: 0644]
bin/Module/Test.pm [moved from Module/Test.pm with 100% similarity, mode: 0644]
bin/backup_station.pl [moved from backup_station.pl with 100% similarity, mode: 0644]
bin/db_backup.sh [new file with mode: 0644]
bin/dksnas.pl [moved from dksnas.pl with 100% similarity, mode: 0644]
bin/external_ip.sh [moved from external_ip.sh with 100% similarity, mode: 0644]
bin/external_ip.xml [moved from external_ip.xml with 100% similarity, mode: 0644]
bin/gitweb/GITWEB-BUILD-OPTIONS [moved from gitweb/GITWEB-BUILD-OPTIONS with 100% similarity, mode: 0644]
bin/gitweb/INSTALL [moved from gitweb/INSTALL with 100% similarity, mode: 0644]
bin/gitweb/Makefile [moved from gitweb/Makefile with 100% similarity, mode: 0644]
bin/gitweb/README [moved from gitweb/README with 100% similarity, mode: 0644]
bin/gitweb/gitweb.cgi [moved from gitweb/gitweb.cgi with 100% similarity, mode: 0644]
bin/gitweb/static/git-favicon.png [moved from gitweb/static/git-favicon.png with 100% similarity, mode: 0644]
bin/gitweb/static/git-logo.png [moved from gitweb/static/git-logo.png with 100% similarity, mode: 0644]
bin/gitweb/static/gitweb.css [moved from gitweb/static/gitweb.css with 100% similarity, mode: 0644]
bin/gitweb/static/gitweb.js [moved from gitweb/static/gitweb.js with 100% similarity, mode: 0644]
bin/gitweb/static/js/README [moved from gitweb/static/js/README with 100% similarity, mode: 0644]
bin/gitweb/static/js/adjust-timezone.js [moved from gitweb/static/js/adjust-timezone.js with 100% similarity, mode: 0644]
bin/gitweb/static/js/blame_incremental.js [moved from gitweb/static/js/blame_incremental.js with 100% similarity, mode: 0644]
bin/gitweb/static/js/javascript-detection.js [moved from gitweb/static/js/javascript-detection.js with 100% similarity, mode: 0644]
bin/gitweb/static/js/lib/common-lib.js [moved from gitweb/static/js/lib/common-lib.js with 100% similarity, mode: 0644]
bin/gitweb/static/js/lib/cookies.js [moved from gitweb/static/js/lib/cookies.js with 100% similarity, mode: 0644]
bin/gitweb/static/js/lib/datetime.js [moved from gitweb/static/js/lib/datetime.js with 100% similarity, mode: 0644]
bin/jsontobashvar.pl [new file with mode: 0644]
bin/mountdrives.pl [moved from mountdrives.pl with 76% similarity, mode: 0644]
bin/station/configuration.html [moved from station/configuration.html with 96% similarity, mode: 0644]
bin/station/css/station.css [moved from station/css/station.css with 89% similarity, mode: 0644]
bin/station/index.html [moved from station/index.html with 97% similarity, mode: 0644]
bin/station/js/browser.js [moved from station/js/browser.js with 97% similarity, mode: 0644]
bin/station/js/configure.js [moved from station/js/configure.js with 97% similarity, mode: 0644]
bin/station/js/dksnas.js [moved from station/js/dksnas.js with 94% similarity, mode: 0644]
bin/station/test.html [moved from station/test.html with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-grid.css [moved from station/vendor/bootstrap/css/bootstrap-grid.css with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-grid.css.map [moved from station/vendor/bootstrap/css/bootstrap-grid.css.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-grid.min.css [moved from station/vendor/bootstrap/css/bootstrap-grid.min.css with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-grid.min.css.map [moved from station/vendor/bootstrap/css/bootstrap-grid.min.css.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-reboot.css [moved from station/vendor/bootstrap/css/bootstrap-reboot.css with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-reboot.css.map [moved from station/vendor/bootstrap/css/bootstrap-reboot.css.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-reboot.min.css [moved from station/vendor/bootstrap/css/bootstrap-reboot.min.css with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap-reboot.min.css.map [moved from station/vendor/bootstrap/css/bootstrap-reboot.min.css.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap.css [moved from station/vendor/bootstrap/css/bootstrap.css with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap.css.map [moved from station/vendor/bootstrap/css/bootstrap.css.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap.min.css [moved from station/vendor/bootstrap/css/bootstrap.min.css with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/css/bootstrap.min.css.map [moved from station/vendor/bootstrap/css/bootstrap.min.css.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.bundle.js [moved from station/vendor/bootstrap/js/bootstrap.bundle.js with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.bundle.js.map [moved from station/vendor/bootstrap/js/bootstrap.bundle.js.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.bundle.min.js [moved from station/vendor/bootstrap/js/bootstrap.bundle.min.js with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.bundle.min.js.map [moved from station/vendor/bootstrap/js/bootstrap.bundle.min.js.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.js [moved from station/vendor/bootstrap/js/bootstrap.js with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.js.map [moved from station/vendor/bootstrap/js/bootstrap.js.map with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.min.js [moved from station/vendor/bootstrap/js/bootstrap.min.js with 100% similarity, mode: 0644]
bin/station/vendor/bootstrap/js/bootstrap.min.js.map [moved from station/vendor/bootstrap/js/bootstrap.min.js.map with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/css/fa-svg-with-js.css [moved from station/vendor/fontawesome/css/fa-svg-with-js.css with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-brands.js [moved from station/vendor/fontawesome/js/fa-brands.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-brands.min.js [moved from station/vendor/fontawesome/js/fa-brands.min.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-regular.js [moved from station/vendor/fontawesome/js/fa-regular.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-regular.min.js [moved from station/vendor/fontawesome/js/fa-regular.min.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-solid.js [moved from station/vendor/fontawesome/js/fa-solid.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-solid.min.js [moved from station/vendor/fontawesome/js/fa-solid.min.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-v4-shims.js [moved from station/vendor/fontawesome/js/fa-v4-shims.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fa-v4-shims.min.js [moved from station/vendor/fontawesome/js/fa-v4-shims.min.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fontawesome-all.js [moved from station/vendor/fontawesome/js/fontawesome-all.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fontawesome-all.min.js [moved from station/vendor/fontawesome/js/fontawesome-all.min.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fontawesome.js [moved from station/vendor/fontawesome/js/fontawesome.js with 100% similarity, mode: 0644]
bin/station/vendor/fontawesome/js/fontawesome.min.js [moved from station/vendor/fontawesome/js/fontawesome.min.js with 100% similarity, mode: 0644]
bin/station/vendor/jquery/jquery-3.2.1.min.js [moved from station/vendor/jquery/jquery-3.2.1.min.js with 100% similarity, mode: 0644]
certserver.pl [deleted file]
checkip.cgi [deleted file]
conf/db_backup.json [new file with mode: 0644]
conf/drives.json [new file with mode: 0644]
conf/smb.conf [new file with mode: 0644]
dev/install.sh [new file with mode: 0644]
package-lock.json [new file with mode: 0644]
package.json [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..2709666
--- /dev/null
@@ -0,0 +1,2 @@
+node_modules/*
+.vscode/*
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from Module/OpenVPN.pm
rename to bin/Module/OpenVPN.pm
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from Module/SSH.pm
rename to bin/Module/SSH.pm
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from Module/Service.pm
rename to bin/Module/Service.pm
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from Module/System.pm
rename to bin/Module/System.pm
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from Module/Test.pm
rename to bin/Module/Test.pm
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from backup_station.pl
rename to bin/backup_station.pl
diff --git a/bin/db_backup.sh b/bin/db_backup.sh
new file mode 100644 (file)
index 0000000..e69b7c8
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+#CFGFILE="/mnt/c/Users/ksaff/Workspace/dksnas/.dksnas/db_backup.json"
+CFGFILE="/home/dks/backup/webserver/conf/db_backup.json"
+CFGDIR=`dirname ${CFGFILE}`;
+KEYS=`cat ${CFGFILE} | jq -c keys | tr -d '[]"' | sed 's/,/\n/g'`
+IFS='
+'
+SDB=( ${KEYS} )
+for cdb in "${SDB[@]}"
+do
+  echo `date`": backup DB : $cdb"
+  DATA=`cat ${CFGFILE} | jq -c ".$cdb" | tr -d '{}"' | sed 's/,/\n/g' | sed 's/:/=/'`
+  echo ${DATA} > ${CFGDIR}'/cbackupvars.sh';
+  source ${CFGDIR}'/cbackupvars.sh';
+  rm ${CFGDIR}'/cbackupvars.sh'
+  CDATE=`date +%Y%m%d_%H%M%S`
+  OUTFILE=${bkppath}"/"$cdb"_"${CDATE}".sql"
+  #echo ${OUTFILE}
+  if [ ! -d ${bkppath}]
+  then
+    mkdir -p ${bkppath}
+  fi
+  if [ "${type}" = "mysql" ]
+  then
+    mysqldump -h ${dbhost} -u ${dbuser} -p${dbpwd} ${dbname} > ${OUTFILE}
+    gzip ${OUTFILE};
+  fi
+  find "${bkppath}" -name "*.sql.gz" | sort -r | sed -e '1,${minfiles}d' | xargs rm
+done
+exit 0
+
+
+
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from dksnas.pl
rename to bin/dksnas.pl
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from external_ip.sh
rename to bin/external_ip.sh
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from external_ip.xml
rename to bin/external_ip.xml
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/GITWEB-BUILD-OPTIONS
rename to bin/gitweb/GITWEB-BUILD-OPTIONS
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/INSTALL
rename to bin/gitweb/INSTALL
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/Makefile
rename to bin/gitweb/Makefile
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/README
rename to bin/gitweb/README
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/gitweb.cgi
rename to bin/gitweb/gitweb.cgi
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/git-favicon.png
rename to bin/gitweb/static/git-favicon.png
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/git-logo.png
rename to bin/gitweb/static/git-logo.png
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/gitweb.css
rename to bin/gitweb/static/gitweb.css
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/gitweb.js
rename to bin/gitweb/static/gitweb.js
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/js/README
rename to bin/gitweb/static/js/README
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/js/adjust-timezone.js
rename to bin/gitweb/static/js/adjust-timezone.js
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/js/blame_incremental.js
rename to bin/gitweb/static/js/blame_incremental.js
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/js/lib/common-lib.js
rename to bin/gitweb/static/js/lib/common-lib.js
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/js/lib/cookies.js
rename to bin/gitweb/static/js/lib/cookies.js
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from gitweb/static/js/lib/datetime.js
rename to bin/gitweb/static/js/lib/datetime.js
diff --git a/bin/jsontobashvar.pl b/bin/jsontobashvar.pl
new file mode 100644 (file)
index 0000000..e69de29
old mode 100755 (executable)
new mode 100644 (file)
similarity index 76%
rename from mountdrives.pl
rename to bin/mountdrives.pl
index 394832b..27a72b1
@@ -1,13 +1,23 @@
-#!/usr/bin/perl
+#!C:\Strawberry\perl\bin\perl.exe
 
 use strict;
 use File::Basename;
 use Data::Dumper;
+use JSON::PP;
 
-my $config->{drives}->{'222239212D6A'} = {path => '/home/dks/private',uid=>1001,gid=>1001,type=>'rw'};
-$config->{drives}->{'94M3TGRGT'} = {path => '/home/dks/mirror',uid=>1001,gid=>1001,type=>'rw'};
-$config->{drives}->{'94M1TP66T'} = {path => '/home/dks/music',uid=>1001,gid=>1001,type=>'rw'};
-$config->{drives}->{'22223921335B'} = {path => '/home/dks/backup',uid=>1001,gid=>1001,type=>'rw'};
+$cfgfile = dirname(dirname($0)).'/.dksnas/drives.conf';
+my $strcfg = "";
+open(CFG,$cfgfile);
+while (my $l = <CFG>){
+       $strcfg .= $l;
+} 
+close(CFG);
+$config = json_decode($strcfg);
+# my $config->{drives}->{'222239212D6A'} = {path => '/home/dks/private',uid=>1001,gid=>1001,type=>'rw'};
+# $config->{drives}->{'94M3TGRGT'} = {path => '/home/dks/mirror',uid=>1001,gid=>1001,type=>'rw'};
+# $config->{drives}->{'94M1TP66T'} = {path => '/home/dks/music',uid=>1001,gid=>1001,type=>'rw'};
+# $config->{drives}->{'22223921335B'} = {path => '/home/dks/backup',uid=>1001,gid=>1001,type=>'rw'};
+# print encode_json($config);
 my $connecteddrives = &getconnecteddrives();
 my $mounts  = &getcurrentmountpoints();
 #print Dumper($mounts);
old mode 100755 (executable)
new mode 100644 (file)
similarity index 96%
rename from station/configuration.html
rename to bin/station/configuration.html
index a0796ec..d870731
-<!doctype html>\r
-<html lang="en">\r
-<head>\r
-<meta charset="utf-8">\r
-<meta name="viewport"\r
-       content="width=device-width, initial-scale=1, shrink-to-fit=no">\r
-<meta name="description" content="">\r
-<meta name="author" content="">\r
-\r
-\r
-<title>DKS - NAS - Configuration</title>\r
-\r
-<!-- Bootstrap core CSS -->\r
-<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">\r
-<link href="css/station.css" rel="stylesheet">\r
-</head>\r
-\r
-<body>\r
-       <header>\r
-               <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">\r
-                       <a class="navbar-brand" href="#">DKS NAS</a>\r
-                       <button class="navbar-toggler d-lg-none" type="button"\r
-                               data-toggle="collapse" data-target="#navbarsExampleDefault"\r
-                               aria-controls="navbarsExampleDefault" aria-expanded="false"\r
-                               aria-label="Toggle navigation">\r
-                               <span class="navbar-toggler-icon"></span>\r
-                       </button>\r
-\r
-                       <div class="collapse navbar-collapse" id="navbarsExampleDefault">\r
-                               <ul class="navbar-nav mr-auto">\r
-                                       <li class="nav-item"><a class="nav-link" href="index.html">Home</a>\r
-                                       </li>\r
-                                       <li class="nav-item"><a class="nav-link" href="configuration.html">Configuration</a>\r
-                                       </li>\r
-                               </ul>\r
-                               \r
-                       </div>\r
-               </nav>\r
-       </header>\r
-\r
-       <div class="container-fluid">\r
-               <div class="row">\r
-\r
-                       <main role="main" class="col-sm-12 col-md-12"\r
-                               style="margin-top: 100px;">\r
-                       <div class="row justify-content-center">\r
-                               <div class="card col-md-6 ">\r
-                                       <h4 class="card-header">DKS NAS</h4>\r
-                                       <div class="card-body">\r
-                                               <button class="btn btn-primary" id="btn_restart">Restart</button>\r
-                                               <button class="btn btn-primary" id="btn_shutdown">Shutdown</button>\r
-\r
-                                       </div>\r
-                               </div>\r
-                       </div>\r
-                       <div class="row justify-content-center">\r
-                               <div class="card col-md-6 ">\r
-                                       <h4 class="card-header">Protect Web-Interface</h4>\r
-                                       <div class="card-body">\r
-                                               <form>\r
-                                                       <div class="form-row">\r
-                                                       <div class="col col-md-6">\r
-                                                                       <input type="text" class="form-control" id="login"\r
-                                                                               placeholder="username">\r
-                                                               </div>\r
-                                                       </div>\r
-                                                       <br/>\r
-                                                       <div class="form-row">\r
-\r
-                                                               <div class="col">\r
-                                                                       <input type="password" class="form-control" id="apppassword1"\r
-                                                                               placeholder="password...">\r
-                                                               </div>\r
-                                                               <div class="col">\r
-                                                                       <input type="password" class="form-control"\r
-                                                                               placeholder="retype password" id="apppassword2">\r
-                                                               </div>\r
-                                                               <div class="col">\r
-                                                                       <a href="#" class="btn btn-primary"\r
-                                                                               onclick="config.setlogin();">Save</a>\r
-                                                               </div>\r
-\r
-                                                       </div>\r
-                                               </form>\r
-\r
-                                       </div>\r
-                               </div>\r
-                       </div>\r
-                       <!-- <div class="row justify-content-center">\r
-                               <div class="card col-md-6 ">\r
-                                       <h4 class="card-header">System User</h4>\r
-                                       <div class="card-body">\r
-                                       <form>\r
-                                                       <div class="form-row">\r
-                                                       <div class="col col-md-4">\r
-                                                                       <select id="sysuser" class="form-control">\r
-                                                                       </select>\r
-                                                               </div>\r
-                                                       </div>\r
-                                                       <div class="form-row">\r
-\r
-                                                               <div class="col">\r
-                                                                       <input type="password" class="form-control" id="syspassword1"\r
-                                                                               placeholder="password...">\r
-                                                               </div>\r
-                                                               <div class="col">\r
-                                                                       <input type="password" class="form-control"\r
-                                                                               placeholder="retype password" id="syspassword2">\r
-                                                               </div>\r
-                                                       </div>\r
-                                                       <div class="col">\r
-                                                                       <a href="#" class="btn btn-primary"\r
-                                                                               onclick="config.setsyspasswd();">Save</a>\r
-                                                               </div>\r
-                                               </form>\r
-                                       </div>\r
-                               </div>\r
-                       </div> -->\r
-                       <div class="row justify-content-center">\r
-                       <div class="card col-md-6 " >\r
-  <h4 class="card-header">Cable LAN</h4>\r
-  <div class="card-body">\r
-    <form class="form-row">\r
-     <div class="form-check form-check-inline">\r
-  <label class="form-check-label">\r
-    <input class="form-check-input" type="radio" name="cable_type" id="cablenet_type_dhcp" value="dhcp"> DHCP\r
-  </label>\r
-</div>\r
-<div class="form-check form-check-inline">\r
-  <label class="form-check-label">\r
-    <input class="form-check-input" type="radio" name="cable_type" id="cablenet_type_static" value="static"> Static\r
-  </label>\r
-</div>\r
-\r
-     <div class="col">\r
-       <input type="text" class="form-control" placeholder="IP" disabled="1" id="cablenet_ip">\r
-    </div>\r
-    <div class="col">\r
-       <input type="text" class="form-control" placeholder="Subnet"  disabled="1" id="cablenet_subnet">\r
-    </div>\r
-    <div class="col">\r
-       <input type="text" class="form-control" placeholder="Gateway"  disabled="1" id="cablenet_gateway">\r
-    </div>\r
-    <div class="col">\r
-       <input type="text" class="form-control" placeholder="DNS"  disabled="1" id="cablenet_dns">\r
-    </div>\r
-    <div class="col">\r
-       <a href="#" class="btn btn-primary">Save</a>\r
-    </div>     \r
-       \r
-    </form>\r
-    \r
-  </div>\r
-</div>\r
-</div>\r
-\r
-<div class="row justify-content-center">\r
-                       <div class="card col-md-6 " >\r
-  <h4 class="card-header">Wireless LAN</h4>\r
-  <div class="card-body">\r
-    <form class="form-row">\r
-   \r
-     <div class="col">\r
-       <input type="text" class="form-control" placeholder="SSID">\r
-    </div>\r
-    <div class="col">\r
-       <input type="password" class="form-control" placeholder="Password">\r
-    </div>\r
-    <div class="col">\r
-       <a href="#" class="btn btn-primary">Save</a>\r
-    </div>     \r
-       \r
-    </form>\r
-    \r
-  </div>\r
-</div>\r
-</div>\r
-\r
-<div class="row justify-content-center">\r
-                       <div class="card col-md-6 " >\r
-  <h4 class="card-header">Current OpenVPN Configuration</h4>\r
-  <div class="card-body">\r
-    <form> \r
-   \r
-     \r
-     <div class="col col-md-6">\r
-       <input type="file" class="form-control" placeholder="Browse File.. (*.ovpn)">\r
-    </div>\r
-     <div class="form-row">\r
-     <div class="form-check form-check-inline">\r
-  <label class="form-check-label">\r
-    <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> Enable\r
-  </label>\r
-</div>\r
-<div class="form-check form-check-inline">\r
-  <label class="form-check-label">\r
-    <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> Disable\r
-  </label>\r
-</div>\r
-</div>\r
-    <div class="alert alert-success" role="alert">\r
-  <h4 class="alert-heading">Status!</h4>\r
-  <p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>\r
-</div>\r
-    \r
-       \r
-\r
-    <div class="col">\r
-       <a href="#" class="btn btn-primary">Save</a>\r
-    </div>     \r
-       \r
-    </form>\r
-    \r
-  </div>\r
-</div>\r
-</div>\r
-\r
-<div class="row justify-content-center">\r
-                       <div class="card col-md-6 " >\r
-  <h4 class="card-header">External Drives</h4>\r
-  <div class="card-body">\r
-    <table class="table table-striped" id="tbl_extdrives">\r
-    <thead><tr>\r
-    <th>NAME</th>\r
-    <th>Size</th>\r
-    <th>File-System</th>\r
-    <th>Mount-Folder</th>\r
-    <th>Action</th>\r
-    </tr>\r
-    </thead>\r
-    <tbody>\r
-    \r
-    </tbody>\r
-    </table>\r
-    \r
-</div>\r
-</div>\r
-</div>\r
-\r
-<div class="row justify-content-center">\r
-                       <div class="card col-md-6 " >\r
-  <h4 class="card-header">Share Users</h4>\r
-  <div class="card-body">\r
-    <div class="form-inline">\r
-       <input type="text" placeholder="username" class="form-control" id="newshareusername"/>\r
-       <input type="password" placeholder="password" class="form-control" id="newsharepassword"/>\r
-       <button class="btn btn-info" id="btn_addshareuser">add User</button>\r
-    </div>\r
-    <table class="table table-striped" id="tbl_shareusers">\r
-    <thead><tr>\r
-    <th>Name</th>\r
-    <th>Password</th>\r
-    <th>Action</th>\r
-    </tr>\r
-    </thead>\r
-    <tbody>\r
-    </tbody>\r
-    </table>\r
-</div>\r
-</div>\r
-</div>\r
-\r
-<div class="row justify-content-center">\r
-                       <div class="card col-md-6 " >\r
-  <h4 class="card-header">Shared Folders</h4>\r
-  <div class="card-body">\r
-       <div class="">\r
-               <h4>Global <button id="savesharesglobal" class="btn btn-info">Save</button></h4>\r
-               <div class="form-group row">\r
-               <label for="shareworkgroup" class="col-sm-2 col-form-label">Workgroup</label>\r
-               <div class="col-sm-10">\r
-                       <input type="text" class="form-control" id="shareworkgroup">\r
-               </div>\r
-               </div>\r
-               <div class="form-group row">\r
-               <label for="shareserverdesc" class="col-sm-2 col-form-label">Description</label>\r
-               <div class="col-sm-10">\r
-                       <input type="text" class="form-control" id="shareserverdesc">\r
-               </div>\r
-               </div>\r
-               <div class="form-group row">\r
-               <label for="sharenetbios" class="col-sm-2 col-form-label">NetBIOS Name</label>\r
-               <div class="col-sm-10">\r
-                       <input type="text" class="form-control" id="sharenetbios">\r
-               </div>\r
-               </div>\r
-               \r
-       </div>\r
-       <div >\r
-       <h4>New Share <button id="savenewshare" class="btn btn-info">Save</button></h4>\r
-       <div class="form-group row">\r
-       <label for="newsharename" class="col-sm-2 col-form-label">Name</label>\r
-       <div class="col-sm-10">\r
-               <input type="text" class="form-control" placeholder="name" id="newsharename"/>\r
-       </div>\r
-       </div>\r
-       <div class="form-group row">\r
-       <label for="newsharedescription" class="col-sm-2 col-form-label">Description</label>\r
-       <div class="col-sm-10">\r
-               <input type="text" class="form-control" placeholder="description" id="newsharedescription"/>\r
-       </div>\r
-       </div>\r
-       <div class="form-group row">\r
-       <label for="newsharedrive" class="col-sm-2 col-form-label">Description</label>\r
-       <div class="col-sm-10 form-inline">\r
-               <select id="newsharedrive" class="form-control"><option value="">select base-folder...</option></select>\r
-               <input type="text" class="form-control" placeholder="subfolder" id="newsharesubfolder"/>\r
-       </div>\r
-\r
-       </div>\r
-       </div>\r
-       <h4>Current Shares</h4>\r
-       <table class="table table-striped" id="tbl_shares">\r
-    <thead><tr>\r
-    <th>Name</th>\r
-    <th>Description</th>\r
-    <th>Authorized Users</th>\r
-    <th>Action</th>\r
-    </tr>\r
-    </thead>\r
-    <tbody>\r
-    </tbody>\r
-    </table>\r
-    \r
-</div>\r
-</div>\r
-</div>\r
-                       </main>\r
-               </div>\r
-       </div>\r
-\r
-       <script src="vendor/jquery/jquery-3.2.1.min.js"></script>\r
-\r
-       <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>\r
-       <script src="js/configure.js"></script>\r
-       <script src="js/dksnas.js"></script>\r
-</body>\r
-</html>\r
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8">
+<meta name="viewport"
+       content="width=device-width, initial-scale=1, shrink-to-fit=no">
+<meta name="description" content="">
+<meta name="author" content="">
+
+
+<title>DKS - NAS - Configuration</title>
+
+<!-- Bootstrap core CSS -->
+<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+<link href="css/station.css" rel="stylesheet">
+</head>
+
+<body>
+       <header>
+               <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+                       <a class="navbar-brand" href="#">DKS NAS</a>
+                       <button class="navbar-toggler d-lg-none" type="button"
+                               data-toggle="collapse" data-target="#navbarsExampleDefault"
+                               aria-controls="navbarsExampleDefault" aria-expanded="false"
+                               aria-label="Toggle navigation">
+                               <span class="navbar-toggler-icon"></span>
+                       </button>
+
+                       <div class="collapse navbar-collapse" id="navbarsExampleDefault">
+                               <ul class="navbar-nav mr-auto">
+                                       <li class="nav-item"><a class="nav-link" href="index.html">Home</a>
+                                       </li>
+                                       <li class="nav-item"><a class="nav-link" href="configuration.html">Configuration</a>
+                                       </li>
+                               </ul>
+                               
+                       </div>
+               </nav>
+       </header>
+
+       <div class="container-fluid">
+               <div class="row">
+
+                       <main role="main" class="col-sm-12 col-md-12"
+                               style="margin-top: 100px;">
+                       <div class="row justify-content-center">
+                               <div class="card col-md-6 ">
+                                       <h4 class="card-header">DKS NAS</h4>
+                                       <div class="card-body">
+                                               <button class="btn btn-primary" id="btn_restart">Restart</button>
+                                               <button class="btn btn-primary" id="btn_shutdown">Shutdown</button>
+
+                                       </div>
+                               </div>
+                       </div>
+                       <div class="row justify-content-center">
+                               <div class="card col-md-6 ">
+                                       <h4 class="card-header">Protect Web-Interface</h4>
+                                       <div class="card-body">
+                                               <form>
+                                                       <div class="form-row">
+                                                       <div class="col col-md-6">
+                                                                       <input type="text" class="form-control" id="login"
+                                                                               placeholder="username">
+                                                               </div>
+                                                       </div>
+                                                       <br/>
+                                                       <div class="form-row">
+
+                                                               <div class="col">
+                                                                       <input type="password" class="form-control" id="apppassword1"
+                                                                               placeholder="password...">
+                                                               </div>
+                                                               <div class="col">
+                                                                       <input type="password" class="form-control"
+                                                                               placeholder="retype password" id="apppassword2">
+                                                               </div>
+                                                               <div class="col">
+                                                                       <a href="#" class="btn btn-primary"
+                                                                               onclick="config.setlogin();">Save</a>
+                                                               </div>
+
+                                                       </div>
+                                               </form>
+
+                                       </div>
+                               </div>
+                       </div>
+                       <!-- <div class="row justify-content-center">
+                               <div class="card col-md-6 ">
+                                       <h4 class="card-header">System User</h4>
+                                       <div class="card-body">
+                                       <form>
+                                                       <div class="form-row">
+                                                       <div class="col col-md-4">
+                                                                       <select id="sysuser" class="form-control">
+                                                                       </select>
+                                                               </div>
+                                                       </div>
+                                                       <div class="form-row">
+
+                                                               <div class="col">
+                                                                       <input type="password" class="form-control" id="syspassword1"
+                                                                               placeholder="password...">
+                                                               </div>
+                                                               <div class="col">
+                                                                       <input type="password" class="form-control"
+                                                                               placeholder="retype password" id="syspassword2">
+                                                               </div>
+                                                       </div>
+                                                       <div class="col">
+                                                                       <a href="#" class="btn btn-primary"
+                                                                               onclick="config.setsyspasswd();">Save</a>
+                                                               </div>
+                                               </form>
+                                       </div>
+                               </div>
+                       </div> -->
+                       <div class="row justify-content-center">
+                       <div class="card col-md-6 " >
+  <h4 class="card-header">Cable LAN</h4>
+  <div class="card-body">
+    <form class="form-row">
+     <div class="form-check form-check-inline">
+  <label class="form-check-label">
+    <input class="form-check-input" type="radio" name="cable_type" id="cablenet_type_dhcp" value="dhcp"> DHCP
+  </label>
+</div>
+<div class="form-check form-check-inline">
+  <label class="form-check-label">
+    <input class="form-check-input" type="radio" name="cable_type" id="cablenet_type_static" value="static"> Static
+  </label>
+</div>
+
+     <div class="col">
+       <input type="text" class="form-control" placeholder="IP" disabled="1" id="cablenet_ip">
+    </div>
+    <div class="col">
+       <input type="text" class="form-control" placeholder="Subnet"  disabled="1" id="cablenet_subnet">
+    </div>
+    <div class="col">
+       <input type="text" class="form-control" placeholder="Gateway"  disabled="1" id="cablenet_gateway">
+    </div>
+    <div class="col">
+       <input type="text" class="form-control" placeholder="DNS"  disabled="1" id="cablenet_dns">
+    </div>
+    <div class="col">
+       <a href="#" class="btn btn-primary">Save</a>
+    </div>     
+       
+    </form>
+    
+  </div>
+</div>
+</div>
+
+<div class="row justify-content-center">
+                       <div class="card col-md-6 " >
+  <h4 class="card-header">Wireless LAN</h4>
+  <div class="card-body">
+    <form class="form-row">
+   
+     <div class="col">
+       <input type="text" class="form-control" placeholder="SSID">
+    </div>
+    <div class="col">
+       <input type="password" class="form-control" placeholder="Password">
+    </div>
+    <div class="col">
+       <a href="#" class="btn btn-primary">Save</a>
+    </div>     
+       
+    </form>
+    
+  </div>
+</div>
+</div>
+
+<div class="row justify-content-center">
+                       <div class="card col-md-6 " >
+  <h4 class="card-header">Current OpenVPN Configuration</h4>
+  <div class="card-body">
+    <form> 
+   
+     
+     <div class="col col-md-6">
+       <input type="file" class="form-control" placeholder="Browse File.. (*.ovpn)">
+    </div>
+     <div class="form-row">
+     <div class="form-check form-check-inline">
+  <label class="form-check-label">
+    <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> Enable
+  </label>
+</div>
+<div class="form-check form-check-inline">
+  <label class="form-check-label">
+    <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> Disable
+  </label>
+</div>
+</div>
+    <div class="alert alert-success" role="alert">
+  <h4 class="alert-heading">Status!</h4>
+  <p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
+</div>
+    
+       
+
+    <div class="col">
+       <a href="#" class="btn btn-primary">Save</a>
+    </div>     
+       
+    </form>
+    
+  </div>
+</div>
+</div>
+
+<div class="row justify-content-center">
+                       <div class="card col-md-6 " >
+  <h4 class="card-header">External Drives</h4>
+  <div class="card-body">
+    <table class="table table-striped" id="tbl_extdrives">
+    <thead><tr>
+    <th>NAME</th>
+    <th>Size</th>
+    <th>File-System</th>
+    <th>Mount-Folder</th>
+    <th>Action</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+    </tbody>
+    </table>
+    
+</div>
+</div>
+</div>
+
+<div class="row justify-content-center">
+                       <div class="card col-md-6 " >
+  <h4 class="card-header">Share Users</h4>
+  <div class="card-body">
+    <div class="form-inline">
+       <input type="text" placeholder="username" class="form-control" id="newshareusername"/>
+       <input type="password" placeholder="password" class="form-control" id="newsharepassword"/>
+       <button class="btn btn-info" id="btn_addshareuser">add User</button>
+    </div>
+    <table class="table table-striped" id="tbl_shareusers">
+    <thead><tr>
+    <th>Name</th>
+    <th>Password</th>
+    <th>Action</th>
+    </tr>
+    </thead>
+    <tbody>
+    </tbody>
+    </table>
+</div>
+</div>
+</div>
+
+<div class="row justify-content-center">
+                       <div class="card col-md-6 " >
+  <h4 class="card-header">Shared Folders</h4>
+  <div class="card-body">
+       <div class="">
+               <h4>Global <button id="savesharesglobal" class="btn btn-info">Save</button></h4>
+               <div class="form-group row">
+               <label for="shareworkgroup" class="col-sm-2 col-form-label">Workgroup</label>
+               <div class="col-sm-10">
+                       <input type="text" class="form-control" id="shareworkgroup">
+               </div>
+               </div>
+               <div class="form-group row">
+               <label for="shareserverdesc" class="col-sm-2 col-form-label">Description</label>
+               <div class="col-sm-10">
+                       <input type="text" class="form-control" id="shareserverdesc">
+               </div>
+               </div>
+               <div class="form-group row">
+               <label for="sharenetbios" class="col-sm-2 col-form-label">NetBIOS Name</label>
+               <div class="col-sm-10">
+                       <input type="text" class="form-control" id="sharenetbios">
+               </div>
+               </div>
+               
+       </div>
+       <div >
+       <h4>New Share <button id="savenewshare" class="btn btn-info">Save</button></h4>
+       <div class="form-group row">
+       <label for="newsharename" class="col-sm-2 col-form-label">Name</label>
+       <div class="col-sm-10">
+               <input type="text" class="form-control" placeholder="name" id="newsharename"/>
+       </div>
+       </div>
+       <div class="form-group row">
+       <label for="newsharedescription" class="col-sm-2 col-form-label">Description</label>
+       <div class="col-sm-10">
+               <input type="text" class="form-control" placeholder="description" id="newsharedescription"/>
+       </div>
+       </div>
+       <div class="form-group row">
+       <label for="newsharedrive" class="col-sm-2 col-form-label">Description</label>
+       <div class="col-sm-10 form-inline">
+               <select id="newsharedrive" class="form-control"><option value="">select base-folder...</option></select>
+               <input type="text" class="form-control" placeholder="subfolder" id="newsharesubfolder"/>
+       </div>
+
+       </div>
+       </div>
+       <h4>Current Shares</h4>
+       <table class="table table-striped" id="tbl_shares">
+    <thead><tr>
+    <th>Name</th>
+    <th>Description</th>
+    <th>Authorized Users</th>
+    <th>Action</th>
+    </tr>
+    </thead>
+    <tbody>
+    </tbody>
+    </table>
+    
+</div>
+</div>
+</div>
+                       </main>
+               </div>
+       </div>
+
+       <script src="vendor/jquery/jquery-3.2.1.min.js"></script>
+
+       <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
+       <script src="js/configure.js"></script>
+       <script src="js/dksnas.js"></script>
+</body>
+</html>
old mode 100755 (executable)
new mode 100644 (file)
similarity index 89%
rename from station/css/station.css
rename to bin/station/css/station.css
index fcf3343..6fc3734
@@ -1,12 +1,12 @@
-.card {\r
-       margin: 5px;\r
-       padding: 0px;\r
-}\r
-\r
-.card-body {\r
-       margin: 0px;\r
-}\r
-\r
-.card-header {\r
-       margin: 0px;\r
-}\r
+.card {
+       margin: 5px;
+       padding: 0px;
+}
+
+.card-body {
+       margin: 0px;
+}
+
+.card-header {
+       margin: 0px;
+}
old mode 100755 (executable)
new mode 100644 (file)
similarity index 97%
rename from station/index.html
rename to bin/station/index.html
index c272600..5e1189d
@@ -1,89 +1,89 @@
-<!doctype html>\r
-<html lang="en">\r
-  <head>\r
-    <meta charset="utf-8">\r
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">\r
-    <meta name="description" content="">\r
-    <meta name="author" content="">\r
-\r
-\r
-    <title>DKS NAS</title>\r
-\r
-    <!-- Bootstrap core CSS -->\r
-    <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">\r
-    <link href="vendor/fontawesome/css/fa-svg-with-js.css" rel="stylesheet">\r
-    <link href="css/station.css" rel="stylesheet">\r
-    <style>\r
-       .card:hover {\r
-                       background-color: #0080ff;\r
-               }\r
-    </style>\r
-  </head>\r
-\r
-  <body>\r
-    <header>\r
-      <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">\r
-        <a class="navbar-brand" href="#">DKS NAS</a>\r
-        <button class="navbar-toggler d-lg-none" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">\r
-          <span class="navbar-toggler-icon"></span>\r
-        </button>\r
-\r
-        <div class="collapse navbar-collapse" id="navbarsExampleDefault">\r
-          <ul class="navbar-nav mr-auto">\r
-          <li class="nav-item">\r
-              <a class="nav-link" href="index.html">Home</a>\r
-            </li>\r
-            <li class="nav-item">\r
-              <a class="nav-link" href="configuration.html">Configuration</a>\r
-            </li>\r
-               \r
-          </ul>\r
-            \r
-         \r
-        </div>\r
-      </nav>\r
-    </header>\r
-\r
-    <div class="container">\r
-      <div class="row justify-content-center">\r
-        <main role="main" class="col-sm-12 col-md-12" style="margin-top: 100px;">\r
-                       \r
-          <section class="row col-md-12">\r
-               <nav class="navbar navbar-expand-lg navbar-dark bg-dark" style="width: 100%;">\r
-  <a class="navbar-brand" href="#"></a>\r
-  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarbrowsedata" aria-controls="navbarbrowsedata" aria-expanded="false" aria-label="Toggle navigation">\r
-    <span class="navbar-toggler-icon"></span>\r
-  </button>\r
-  <div class="collapse navbar-collapse" id="navbarbrowsedata">\r
-    <div class="navbar-nav">\r
-      <button class="btn btn-info" id="btn-home" data-folder=""><i class="fas fa-home"></i></button>&nbsp;\r
-      <button class="btn btn-info" id="btn-share" data-folder=""><i class="fas fa-share"></i>&nbsp;set folder shared</button>&nbsp;\r
-      <button class="btn btn-default" id="btn-currentfolder" data-folder=""><i class="fas fa-sync"></i>&nbsp;<span id="current_folder"></span></button>\r
-    </div>\r
-  </div>\r
-</nav>\r
-\r
-            \r
-          </section>\r
-                 <section class="row">\r
-               <table class="table table-striped table-bordered" id="browsetable">\r
-               <thead><tr><th style="width: 50px;"><button id="btn-folderup" class="btn btn-info" data-folder=""><i class="fas fa-level-up-alt"></i></button></th><th>Name</th><th style="width: 50px;">Action</th></tr></thead>\r
-               <tbody></tbody>\r
-               </table>\r
-\r
-            \r
-          </section>\r
-          \r
-        </main>\r
-      </div>\r
-    </div>\r
-\r
-    <script src="vendor/jquery/jquery-3.2.1.min.js"></script>\r
-    \r
-    <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>\r
-    <script src="vendor/fontawesome/js/fontawesome-all.min.js"></script>\r
-    <script src="js/browser.js"></script>\r
-    <script src="js/dksnas.js"></script>\r
-    \r
-  </body>\r
-</html>\r
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+
+    <title>DKS NAS</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+    <link href="vendor/fontawesome/css/fa-svg-with-js.css" rel="stylesheet">
+    <link href="css/station.css" rel="stylesheet">
+    <style>
+       .card:hover {
+                       background-color: #0080ff;
+               }
+    </style>
+  </head>
+
+  <body>
+    <header>
+      <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+        <a class="navbar-brand" href="#">DKS NAS</a>
+        <button class="navbar-toggler d-lg-none" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+
+        <div class="collapse navbar-collapse" id="navbarsExampleDefault">
+          <ul class="navbar-nav mr-auto">
+          <li class="nav-item">
+              <a class="nav-link" href="index.html">Home</a>
+            </li>
+            <li class="nav-item">
+              <a class="nav-link" href="configuration.html">Configuration</a>
+            </li>
+               
+          </ul>
+            
+         
+        </div>
+      </nav>
+    </header>
+
+    <div class="container">
+      <div class="row justify-content-center">
+        <main role="main" class="col-sm-12 col-md-12" style="margin-top: 100px;">
+                       
+          <section class="row col-md-12">
+               <nav class="navbar navbar-expand-lg navbar-dark bg-dark" style="width: 100%;">
+  <a class="navbar-brand" href="#"></a>
+  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarbrowsedata" aria-controls="navbarbrowsedata" aria-expanded="false" aria-label="Toggle navigation">
+    <span class="navbar-toggler-icon"></span>
+  </button>
+  <div class="collapse navbar-collapse" id="navbarbrowsedata">
+    <div class="navbar-nav">
+      <button class="btn btn-info" id="btn-home" data-folder=""><i class="fas fa-home"></i></button>&nbsp;
+      <button class="btn btn-info" id="btn-share" data-folder=""><i class="fas fa-share"></i>&nbsp;set folder shared</button>&nbsp;
+      <button class="btn btn-default" id="btn-currentfolder" data-folder=""><i class="fas fa-sync"></i>&nbsp;<span id="current_folder"></span></button>
+    </div>
+  </div>
+</nav>
+
+            
+          </section>
+                 <section class="row">
+               <table class="table table-striped table-bordered" id="browsetable">
+               <thead><tr><th style="width: 50px;"><button id="btn-folderup" class="btn btn-info" data-folder=""><i class="fas fa-level-up-alt"></i></button></th><th>Name</th><th style="width: 50px;">Action</th></tr></thead>
+               <tbody></tbody>
+               </table>
+
+            
+          </section>
+          
+        </main>
+      </div>
+    </div>
+
+    <script src="vendor/jquery/jquery-3.2.1.min.js"></script>
+    
+    <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
+    <script src="vendor/fontawesome/js/fontawesome-all.min.js"></script>
+    <script src="js/browser.js"></script>
+    <script src="js/dksnas.js"></script>
+    
+  </body>
+</html>
old mode 100755 (executable)
new mode 100644 (file)
similarity index 97%
rename from station/js/browser.js
rename to bin/station/js/browser.js
index 574518b..14a8b76
@@ -1,85 +1,85 @@
- function initdata(){\r
-        browser.getdirectory(null);\r
- }\r
\r
-var mimetypeicons = {\r
-               "unknown":"file",\r
-               "text/csv":"file-alt",\r
-               "text/plain":"file-alt",\r
-               "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"file-excel",\r
-               "application/vnd.openxmlformats-officedocument.wordprocessingml.document":"file-word",\r
-               "application/pdf":"file-pdf",\r
-               "image/svg+xml":"image",\r
-               "image/png":"image",\r
-               "application/javascript":"file-code",\r
-               "application/zip":"file-archive",\r
-               "image/jpeg":"image",\r
-               "image/tif":"image",\r
-               "image/jpeg":"image",\r
-               "audio/mpeg":"file-audio",\r
-               "audio/ogg":"file-audio"\r
-}\r
-\r
-$("#btn-home").on('click',function(){\r
-       browser.getdirectory(dksnas.info.home);\r
-});\r
-\r
-$("#btn-folderup").on('click',function(){\r
-       browser.getdirectory($("#btn-folderup").attr('data-folder'));\r
-});\r
-\r
-$("#btn-share").on('click',function(){\r
-       alert($("#btn-share").attr('data-folder'));\r
-});\r
-\r
-$("#btn-currentfolder").on('click',function(){\r
-       browser.getdirectory($("#btn-currentfolder").attr('data-folder'));\r
-});\r
\r
- var browser = {\r
-                getdirectory: function(dir){\r
-                        if (!dir){\r
-                                dir = dksnas.info.home;\r
-                        }\r
-                        dir = dir.replace(/\\/g,'/');\r
-                        if (dir == dksnas.info.home){\r
-                                $('#btn-currentfolder').hide();\r
-                                $('#btn-share').hide();\r
-                                $('#btn-folderup').hide();\r
-                        } else {\r
-                                $('#btn-currentfolder').show();\r
-                                $('#btn-currentfolder').attr("data-folder",dir);\r
-                                $('#btn-share').show();\r
-                                $('#btn-share').attr("data-folder",dir);\r
-                                $('#btn-folderup').show();\r
-                                var parent = dir.substring(0,dir.lastIndexOf('/'));\r
-                                $('#btn-folderup').attr("data-folder",parent);\r
-                        }\r
-                        var displaycurdir = dir.substring(dksnas.info.home.length);\r
-                        console.log(displaycurdir);\r
-                        $('#current_folder').html(displaycurdir);\r
-                        $('#browsetable > tbody').html("");\r
-                        console.log(dir);\r
-                        console.log(window.location.origin + "/system/directory/list?path=" + encodeURIComponent(dir));\r
-                        $.ajax({\r
-                                       encoding:"UTF-8",\r
-                                       url: window.location.origin + "/system/directory/list?path=" + encodeURIComponent(dir) ,\r
-                                       success: function (data){\r
-                                                       console.log(data.result.file);\r
-                                                   for (var i=0;i<data.result.directory.length;i++){\r
-                                                       $('#browsetable > tbody:last-child').append('<tr><td><i class="fas fa-folder"></i></td><td><a href="javascript:browser.getdirectory(\'' + dir + '/' + data.result.directory[i] +'\');">'+data.result.directory[i]+ '</a></td><td><button class="btn btn-info"><i class="fas fa-download"></i></button></td></tr>');\r
-                                                   }\r
-                                                   for (var i=0;i<data.result.file.length;i++){\r
-                                                       var fd = data.result.file[i];\r
-                                                       \r
-                                                       $('#browsetable > tbody:last-child').append('<tr><td><i class="far fa-'+ (mimetypeicons[fd.mimetype]?mimetypeicons[fd.mimetype]:'file')+'"></i></td><td>'+fd.name+ '</td><td><button class="btn btn-info"><i class="fas fa-download"></i></button></td></tr>');\r
-                                                   }\r
-                                               },\r
-                                               error: function(data){\r
-                                                       alert("Error:" + JSON.stringify(data));\r
-                                                       console.log("Error:" + JSON.stringify(data));\r
-                                               },\r
-                                       async:true\r
-                               });\r
-                }\r
+ function initdata(){
+        browser.getdirectory(null);
+ }
+var mimetypeicons = {
+               "unknown":"file",
+               "text/csv":"file-alt",
+               "text/plain":"file-alt",
+               "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"file-excel",
+               "application/vnd.openxmlformats-officedocument.wordprocessingml.document":"file-word",
+               "application/pdf":"file-pdf",
+               "image/svg+xml":"image",
+               "image/png":"image",
+               "application/javascript":"file-code",
+               "application/zip":"file-archive",
+               "image/jpeg":"image",
+               "image/tif":"image",
+               "image/jpeg":"image",
+               "audio/mpeg":"file-audio",
+               "audio/ogg":"file-audio"
+}
+
+$("#btn-home").on('click',function(){
+       browser.getdirectory(dksnas.info.home);
+});
+
+$("#btn-folderup").on('click',function(){
+       browser.getdirectory($("#btn-folderup").attr('data-folder'));
+});
+
+$("#btn-share").on('click',function(){
+       alert($("#btn-share").attr('data-folder'));
+});
+
+$("#btn-currentfolder").on('click',function(){
+       browser.getdirectory($("#btn-currentfolder").attr('data-folder'));
+});
+ var browser = {
+                getdirectory: function(dir){
+                        if (!dir){
+                                dir = dksnas.info.home;
+                        }
+                        dir = dir.replace(/\\/g,'/');
+                        if (dir == dksnas.info.home){
+                                $('#btn-currentfolder').hide();
+                                $('#btn-share').hide();
+                                $('#btn-folderup').hide();
+                        } else {
+                                $('#btn-currentfolder').show();
+                                $('#btn-currentfolder').attr("data-folder",dir);
+                                $('#btn-share').show();
+                                $('#btn-share').attr("data-folder",dir);
+                                $('#btn-folderup').show();
+                                var parent = dir.substring(0,dir.lastIndexOf('/'));
+                                $('#btn-folderup').attr("data-folder",parent);
+                        }
+                        var displaycurdir = dir.substring(dksnas.info.home.length);
+                        console.log(displaycurdir);
+                        $('#current_folder').html(displaycurdir);
+                        $('#browsetable > tbody').html("");
+                        console.log(dir);
+                        console.log(window.location.origin + "/system/directory/list?path=" + encodeURIComponent(dir));
+                        $.ajax({
+                                       encoding:"UTF-8",
+                                       url: window.location.origin + "/system/directory/list?path=" + encodeURIComponent(dir) ,
+                                       success: function (data){
+                                                       console.log(data.result.file);
+                                                   for (var i=0;i<data.result.directory.length;i++){
+                                                       $('#browsetable > tbody:last-child').append('<tr><td><i class="fas fa-folder"></i></td><td><a href="javascript:browser.getdirectory(\'' + dir + '/' + data.result.directory[i] +'\');">'+data.result.directory[i]+ '</a></td><td><button class="btn btn-info"><i class="fas fa-download"></i></button></td></tr>');
+                                                   }
+                                                   for (var i=0;i<data.result.file.length;i++){
+                                                       var fd = data.result.file[i];
+                                                       
+                                                       $('#browsetable > tbody:last-child').append('<tr><td><i class="far fa-'+ (mimetypeicons[fd.mimetype]?mimetypeicons[fd.mimetype]:'file')+'"></i></td><td>'+fd.name+ '</td><td><button class="btn btn-info"><i class="fas fa-download"></i></button></td></tr>');
+                                                   }
+                                               },
+                                               error: function(data){
+                                                       alert("Error:" + JSON.stringify(data));
+                                                       console.log("Error:" + JSON.stringify(data));
+                                               },
+                                       async:true
+                               });
+                }
  } 
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
similarity index 97%
rename from station/js/configure.js
rename to bin/station/js/configure.js
index 73f0f3e..57d33e8
- function initdata(){\r
-        $.ajax({\r
-                       encoding:"UTF-8",\r
-                       url:"/app/config",\r
-                       success: function (data){\r
-                               console.log("DATA");\r
-                               config.fillconfig(data.result);\r
-                               },\r
-                               error: function(data){\r
-                                       console.log("Error:" + JSON.stringify(data));\r
-                               },\r
-                       async:false\r
-               });\r
- }\r
\r
- var config = {\r
-                setlogin: function(){\r
-                        var bok = 0;\r
-                        var errmsg = "Please fill all fields!";\r
-                        if (($("#login").val() != "") && ($("#apppassword2").val() != "") &&  ($("#apppassword1").val() != "")){\r
-                                if ($("#apppassword2").val() != $("#apppassword1").val()){\r
-                                        errmsg = "Passwords does not match eachother!"; \r
-                                }else if ($("#apppassword1").val().length < 8 ){\r
-                                        errmsg = "Passwords length must have at least 8 characters!";\r
-                                }else {\r
-                                        bok=1;\r
-                                }\r
-                        }\r
-                        if (bok == 0){\r
-                                alert(errmsg);\r
-                        }else {\r
-                                $.ajax({\r
-                                               method: 'POST',\r
-                                               encoding:"UTF-8",\r
-                                               url:"/app/save/login",\r
-                                               data: "login=" + encodeURIComponent($("#login").val()) + "&pwd=" + encodeURIComponent($("#apppassword1").val()),\r
-                                               success: function (data){\r
-                                                       console.log("Error:" + JSON.stringify(data));\r
-                                                       },\r
-                                                       error: function(data){\r
-                                                               console.log("Error:" + JSON.stringify(data));\r
-                                                       },\r
-                                               async:false\r
-                                       });\r
-                        }\r
-                },\r
-                fillconfig: function(data){\r
-                        console.log(data);\r
-                        if (data){\r
-                                if (data.weblogin){\r
-                                        if (data.weblogin.user){\r
-                                                $("#login").val(data.weblogin.user);\r
-                                        }\r
-                                }\r
-                                if (data.cablenet){\r
-                                        if (data.cablenet.type){\r
-                                                $("#cablenet_type_"+ data.cablenet.type).prop("checked",true);\r
-                                                \r
-                                        }\r
-                                        \r
-                                }\r
-                                if (data.extdrives){\r
-                                        $("#tbl_extdrives > tbody").html("");\r
-                                        for (var drv in data.extdrives){\r
-                                                var trow = '<tr>';\r
-                                                trow += '<td>'+ data.extdrives[drv].label+'<br/>('+ data.extdrives[drv].serial +')</td>';\r
-                                                trow += '<td>'+ data.extdrives[drv].size +'</td>';\r
-                                                trow += '<td>'+ data.extdrives[drv].fs+ '</td>';\r
-                                                if (data.extdrives[drv].mounted){\r
-                                                        trow += '<td><input type="text" class="form-control" value="'+data.extdrives[drv].mountpoint+'" id="extdrv_folder_'+data.extdrives[drv].dev+'" placeholder="folder" disabled="1"></td>';\r
-                                                        trow += '<td><button class="btn btn-info" id="btn_mount_'+data.extdrives[drv].dev+'">Unmount</button></td>';\r
-                                                }\r
-                                                else {\r
-                                                        \r
-                                                        trow += '<td><input type="text" class="form-control" value="'+((data.extdrives[drv].mountpoint)?data.extdrives[drv].mountpoint:"")+'" id="extdrv_folder_'+data.extdrives[drv].dev+'" placeholder="folder"></td>';\r
-                                                        trow += '<td><button class="btn btn-info" id="btn_mount_'+data.extdrives[drv].dev+'">Mount</button></td>';\r
-                                                }\r
-                                                trow += '</tr>';\r
-                                                $("#tbl_extdrives > tbody").append(trow);\r
-                                        }\r
-                                }\r
-                                if (data.shareusers){\r
-                                        $('#tbl_shareusers > tbody').html("");\r
-                                                for (var u in data.shareusers){\r
-                                                        var trow = '<tr>';\r
-                                                        trow += '<td>'+u+'</td>';\r
-                                                        trow += '<td><input type="password" class="form-control" placeholder="user password" id="shareuserpwd_'+u+'"></td>';\r
-                                                        trow += '<td><button class="btn btn-info" id="btn_pwdshareuser_'+u+'">Save Password</button>&nbsp;<button class="btn btn-info" id="btn_delshareuser_'+u+'">Delete User</button></td>';\r
-                                                        trow += '</tr>';\r
-                                                        $("#tbl_shareusers> tbody").append(trow);\r
-                                                }\r
-                                }\r
-                                if (data.shares){\r
-                                        if (data.shares.global){\r
-                                                $("#shareworkgroup").val(data.shares.global.workgroup);\r
-                                                $("#shareserverdesc").val(data.shares.global["server string"]);\r
-                                                $("#sharenetbios").val(data.shares.global["netbios name"]);\r
-                                        }\r
-                                        $('#tbl_shares > tbody').html("");\r
-                                        if (data.shares.folders){\r
-                                                for (var f in data.shares.folders){\r
-                                                        var trow = '<tr>';\r
-                                                        trow += '<td>'+f+'</td>';\r
-                                                        trow += '<td>'+data.shares.folders[f].comment+'</td>';\r
-                                                        \r
-                                                        trow += '<td><div class="btn-group">';\r
-                                                        trow += '<button type="button" class="btn btn-secondary" id="shareusers_'+f+'">'+data.shares.folders[f]["valid users"].join(",")+'</button>';\r
-                                                        trow += '<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="sr-only">Toggle Dropdown</span></button><div class="dropdown-menu">';\r
-                                                        for (var v in data.shares.folders[f]["valid users"]){\r
-                                                                trow += '<a class="dropdown-item"><input class="form-check-input" type="checkbox" id="shareuser_'+data.shares.folders[f]["valid users"][v]+'_'+ f +'" value="static">&nbsp;'+data.shares.folders[f]["valid users"][v]+'</a>';\r
-                                                        }\r
-                                                        trow += '</div></div></td>';\r
-                                                        trow += '<td><button class="btn btn-info" id="btn_saveshareusers_'+f+'">Save Users</button>&nbsp;<button class="btn btn-info" id="btn_delshare_'+u+'">Delete Share</button></td>';\r
-                                                        trow += '</tr>';\r
-                                                        $("#tbl_shares > tbody").append(trow);\r
-                                                }\r
-                                        }\r
-                                }\r
-                        }\r
-                }\r
- };\r
\r
\r
\r
- $('input[name="cable_type"]:radio').on('change',function() {\r
-        console.log("TEST RADIO CHECK!");\r
-        if (this.value == 'dhcp'){\r
-                $("#cablenet_ip").prop("disabled",true);\r
-                $("#cablenet_subnet").prop("disabled",true);\r
-                $("#cablenet_gateway").prop("disabled",true);\r
-                $("#cablenet_dns").prop("disabled",true);\r
-        } else {\r
-                $("#cablenet_ip").prop("disabled",false);\r
-                $("#cablenet_subnet").prop("disabled",false);\r
-                $("#cablenet_gateway").prop("disabled",false);\r
-                $("#cablenet_dns").prop("disabled",false);\r
-        } \r
- });\r
\r
- $('#btn_shudown').on('click',function(){\r
-        if (confirm("shutdown DKS-NAS now?")){\r
-                $.ajax({\r
-                               encoding:"UTF-8",\r
-                               url:"/app/shutdown",\r
-                               success: function (data){\r
-                                       console.log("Success:" + data);\r
-                                       },\r
-                                       error: function(data){\r
-                                               console.log("Error:" + data);\r
-                                       },\r
-                               async:false\r
-                       });\r
-        }\r
- });\r
\r
- $('#btn_restart').on('click',function(){\r
-        if (confirm("restart DKS-NAS now?")){\r
-                $.ajax({\r
-                               encoding:"UTF-8",\r
-                               url:"/app/restart",\r
-                               success: function (data){\r
-                                       console.log("Success:" + data);\r
-                                       },\r
-                                       error: function(data){\r
-                                               console.log("Error:" + data);\r
-                                       },\r
-                               async:false\r
-                       });\r
-        }\r
+ function initdata(){
+        $.ajax({
+                       encoding:"UTF-8",
+                       url:"/app/config",
+                       success: function (data){
+                               console.log("DATA");
+                               config.fillconfig(data.result);
+                               },
+                               error: function(data){
+                                       console.log("Error:" + JSON.stringify(data));
+                               },
+                       async:false
+               });
+ }
+ var config = {
+                setlogin: function(){
+                        var bok = 0;
+                        var errmsg = "Please fill all fields!";
+                        if (($("#login").val() != "") && ($("#apppassword2").val() != "") &&  ($("#apppassword1").val() != "")){
+                                if ($("#apppassword2").val() != $("#apppassword1").val()){
+                                        errmsg = "Passwords does not match eachother!"; 
+                                }else if ($("#apppassword1").val().length < 8 ){
+                                        errmsg = "Passwords length must have at least 8 characters!";
+                                }else {
+                                        bok=1;
+                                }
+                        }
+                        if (bok == 0){
+                                alert(errmsg);
+                        }else {
+                                $.ajax({
+                                               method: 'POST',
+                                               encoding:"UTF-8",
+                                               url:"/app/save/login",
+                                               data: "login=" + encodeURIComponent($("#login").val()) + "&pwd=" + encodeURIComponent($("#apppassword1").val()),
+                                               success: function (data){
+                                                       console.log("Error:" + JSON.stringify(data));
+                                                       },
+                                                       error: function(data){
+                                                               console.log("Error:" + JSON.stringify(data));
+                                                       },
+                                               async:false
+                                       });
+                        }
+                },
+                fillconfig: function(data){
+                        console.log(data);
+                        if (data){
+                                if (data.weblogin){
+                                        if (data.weblogin.user){
+                                                $("#login").val(data.weblogin.user);
+                                        }
+                                }
+                                if (data.cablenet){
+                                        if (data.cablenet.type){
+                                                $("#cablenet_type_"+ data.cablenet.type).prop("checked",true);
+                                                
+                                        }
+                                        
+                                }
+                                if (data.extdrives){
+                                        $("#tbl_extdrives > tbody").html("");
+                                        for (var drv in data.extdrives){
+                                                var trow = '<tr>';
+                                                trow += '<td>'+ data.extdrives[drv].label+'<br/>('+ data.extdrives[drv].serial +')</td>';
+                                                trow += '<td>'+ data.extdrives[drv].size +'</td>';
+                                                trow += '<td>'+ data.extdrives[drv].fs+ '</td>';
+                                                if (data.extdrives[drv].mounted){
+                                                        trow += '<td><input type="text" class="form-control" value="'+data.extdrives[drv].mountpoint+'" id="extdrv_folder_'+data.extdrives[drv].dev+'" placeholder="folder" disabled="1"></td>';
+                                                        trow += '<td><button class="btn btn-info" id="btn_mount_'+data.extdrives[drv].dev+'">Unmount</button></td>';
+                                                }
+                                                else {
+                                                        
+                                                        trow += '<td><input type="text" class="form-control" value="'+((data.extdrives[drv].mountpoint)?data.extdrives[drv].mountpoint:"")+'" id="extdrv_folder_'+data.extdrives[drv].dev+'" placeholder="folder"></td>';
+                                                        trow += '<td><button class="btn btn-info" id="btn_mount_'+data.extdrives[drv].dev+'">Mount</button></td>';
+                                                }
+                                                trow += '</tr>';
+                                                $("#tbl_extdrives > tbody").append(trow);
+                                        }
+                                }
+                                if (data.shareusers){
+                                        $('#tbl_shareusers > tbody').html("");
+                                                for (var u in data.shareusers){
+                                                        var trow = '<tr>';
+                                                        trow += '<td>'+u+'</td>';
+                                                        trow += '<td><input type="password" class="form-control" placeholder="user password" id="shareuserpwd_'+u+'"></td>';
+                                                        trow += '<td><button class="btn btn-info" id="btn_pwdshareuser_'+u+'">Save Password</button>&nbsp;<button class="btn btn-info" id="btn_delshareuser_'+u+'">Delete User</button></td>';
+                                                        trow += '</tr>';
+                                                        $("#tbl_shareusers> tbody").append(trow);
+                                                }
+                                }
+                                if (data.shares){
+                                        if (data.shares.global){
+                                                $("#shareworkgroup").val(data.shares.global.workgroup);
+                                                $("#shareserverdesc").val(data.shares.global["server string"]);
+                                                $("#sharenetbios").val(data.shares.global["netbios name"]);
+                                        }
+                                        $('#tbl_shares > tbody').html("");
+                                        if (data.shares.folders){
+                                                for (var f in data.shares.folders){
+                                                        var trow = '<tr>';
+                                                        trow += '<td>'+f+'</td>';
+                                                        trow += '<td>'+data.shares.folders[f].comment+'</td>';
+                                                        
+                                                        trow += '<td><div class="btn-group">';
+                                                        trow += '<button type="button" class="btn btn-secondary" id="shareusers_'+f+'">'+data.shares.folders[f]["valid users"].join(",")+'</button>';
+                                                        trow += '<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="sr-only">Toggle Dropdown</span></button><div class="dropdown-menu">';
+                                                        for (var v in data.shares.folders[f]["valid users"]){
+                                                                trow += '<a class="dropdown-item"><input class="form-check-input" type="checkbox" id="shareuser_'+data.shares.folders[f]["valid users"][v]+'_'+ f +'" value="static">&nbsp;'+data.shares.folders[f]["valid users"][v]+'</a>';
+                                                        }
+                                                        trow += '</div></div></td>';
+                                                        trow += '<td><button class="btn btn-info" id="btn_saveshareusers_'+f+'">Save Users</button>&nbsp;<button class="btn btn-info" id="btn_delshare_'+u+'">Delete Share</button></td>';
+                                                        trow += '</tr>';
+                                                        $("#tbl_shares > tbody").append(trow);
+                                                }
+                                        }
+                                }
+                        }
+                }
+ };
+ $('input[name="cable_type"]:radio').on('change',function() {
+        console.log("TEST RADIO CHECK!");
+        if (this.value == 'dhcp'){
+                $("#cablenet_ip").prop("disabled",true);
+                $("#cablenet_subnet").prop("disabled",true);
+                $("#cablenet_gateway").prop("disabled",true);
+                $("#cablenet_dns").prop("disabled",true);
+        } else {
+                $("#cablenet_ip").prop("disabled",false);
+                $("#cablenet_subnet").prop("disabled",false);
+                $("#cablenet_gateway").prop("disabled",false);
+                $("#cablenet_dns").prop("disabled",false);
+        } 
+ });
+ $('#btn_shudown').on('click',function(){
+        if (confirm("shutdown DKS-NAS now?")){
+                $.ajax({
+                               encoding:"UTF-8",
+                               url:"/app/shutdown",
+                               success: function (data){
+                                       console.log("Success:" + data);
+                                       },
+                                       error: function(data){
+                                               console.log("Error:" + data);
+                                       },
+                               async:false
+                       });
+        }
+ });
+ $('#btn_restart').on('click',function(){
+        if (confirm("restart DKS-NAS now?")){
+                $.ajax({
+                               encoding:"UTF-8",
+                               url:"/app/restart",
+                               success: function (data){
+                                       console.log("Success:" + data);
+                                       },
+                                       error: function(data){
+                                               console.log("Error:" + data);
+                                       },
+                               async:false
+                       });
+        }
  });
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
similarity index 94%
rename from station/js/dksnas.js
rename to bin/station/js/dksnas.js
index 1a17613..24e1c76
@@ -1,25 +1,25 @@
-var dksnas = {\r
-               info: null,\r
-               getinfo: function(){\r
-                       $.ajax({\r
-                               encoding:"UTF-8",\r
-                               url:"/app/info" ,\r
-                               success: function (data){\r
-                                       //dump(data + "\n");\r
-                                               dksnas.info=data.result;\r
-                                               dksnas.info.home = dksnas.info.home.replace(/\\/g,'/'); \r
-                                       },\r
-                                       error: function(data){\r
-                                               alert("Error:" + JSON.stringify(data));\r
-                                               console.log("Error:" + JSON.stringify(data));\r
-                                       },\r
-                               async:false\r
-                       });\r
-                       \r
-               }\r
-}; \r
-\r
-$(document).ready(function() {\r
-       dksnas.getinfo();\r
-       initdata();\r
+var dksnas = {
+               info: null,
+               getinfo: function(){
+                       $.ajax({
+                               encoding:"UTF-8",
+                               url:"/app/info" ,
+                               success: function (data){
+                                       //dump(data + "\n");
+                                               dksnas.info=data.result;
+                                               dksnas.info.home = dksnas.info.home.replace(/\\/g,'/'); 
+                                       },
+                                       error: function(data){
+                                               alert("Error:" + JSON.stringify(data));
+                                               console.log("Error:" + JSON.stringify(data));
+                                       },
+                               async:false
+                       });
+                       
+               }
+}; 
+
+$(document).ready(function() {
+       dksnas.getinfo();
+       initdata();
 });
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from station/test.html
rename to bin/station/test.html
diff --git a/certserver.pl b/certserver.pl
deleted file mode 100755 (executable)
index 5c4812a..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use File::Basename;
-use Getopt::Long;
-use Time::HiRes;
-use Data::Dumper;
-use lib (dirname($0));
-use lib ('/home/dks/perl5/lib/perl5');
-# if ($^O ne "MSWin32" ){
-#      use lib (dirname($0));
-#      #use lib ($ENV{HOME}.'/perl5/lib/perl5');
-# }
-#if ($^O eq "darwin"){
-# use lib ($ENV{HOME}.'/perl5/lib/perl5');
-#}
-use Plack::Builder;
-use Plack::App::File;
-use Plack::App::Directory;
-#use Plack::App::WrapCGI;
-#use Plack::Middleware::Auth::Basic;
-use Plack::Request; 
-use Plack::Runner;
-#use Module::Service;
-#use Module::Test;
-#use Module::SQLite;
-#use Module::Audio; 
-#use Module::System; 
-#use Module::OpenVPN; 
-#use Module::SSH; 
-#use JSON::PP;
-
-print $^O."\n";
-
-
-my @match =  grep { /par-.*inc$/} @INC;
-
-my $basedir = dirname($0);
-if (scalar(@match) > 0){
-       $basedir = $match[0];
-}
-
-my $cfgpath = "";
-print "BASEDIR:".$basedir."\n";
-my $name = basename($0);
-$name =~ s/\.pl$//;
-$name =~ s/\.exe$//;
-
-# if ($^O eq "MSWin32"){
-#      $cfgpath = $ENV{APPDATA}.'/'.$name;
-# } 
-# elsif ($^O eq "darwin"){
-#      $cfgpath = $ENV{HOME}.'/Library/Application Support/'.$name;
-# } else {
-       $cfgpath = $ENV{HOME}.'/.'.$name;
-# }    
-# sub version {
-#     require Twiggy;
-#     print "Twiggy $Twiggy::VERSION\n";
-# }
-
-print "ConfigPath:".$cfgpath."\n";
-
-# sub authen_cb {
-#       my($username, $password, $env) = @_;
-#       my $auth = 0;
-#       #print "Check AUTH\n";
-#       if (-e $cfgpath.'/'.$name.'.passwd'){
-#              open(AUTH,$cfgpath.'/'.$name.'.passwd');
-#              while (my $l = <AUTH>){
-#                      chomp($l);
-#                      if ($l eq $username.'='.$password){
-#                              $auth = 1;
-#                              last;
-#                      }
-#              }
-#              close(AUTH);
-#       }
-#       return $auth;
-#   }
-
-my $allapp = builder {
-  #  if (-e $cfgpath.'/'.$name.'.passwd'){
-  #            enable "Auth::Basic", authenticator => \&authen_cb;     
-  #  }
-   #enable "DirIndex";
-   mount "/" => Plack::App::Directory->new(root => dirname($0)."/cert")->to_app;
-   #mount "/app" => Module::Service->new(); 
-   #mount "/system" => Module::System->new();
-   #mount "/test" => Module::Test->new();
-   #mount "/openvpn" => Module::OpenVPN->new();
-   #mount "/ssh" => Module::SSH->new();
-   #mount "/audio" => Module::Audio->new(binpath => dirname($0).'/');
-   #mount "/sqlite" => Module::SQLite->new();
-   #mount "/summernote" =>  Plack::App::File->new(root => dirname($0)."/summernote")->to_app;
-   #mount "/codemirror" =>  Plack::App::File->new(root => dirname($0)."/codemirror")->to_app;
-   #mount "/station" => Plack::App::File->new(root => dirname($0)."/station")->to_app;
-   #mount "/cert" => Plack::App::File->new(root => dirname($0).'/cert')->to_app;
-   #mount "/spotify" => Plack::App::File->new(root => dirname($0)."/testspotify")->to_app;
-};
-
-
-my @args = ("-p","80");
-my $runner = Plack::Runner->new(server => 'Starlight', env => 'deployment', ipv6 => '1' );#env => development, test 
-$runner->parse_options(@args);
-$runner->run($allapp);
-
-print "Started\n";
diff --git a/checkip.cgi b/checkip.cgi
deleted file mode 100755 (executable)
index b36765f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/perl
-
-use CGI;
-
-my $cgi = new CGI();
-print $cgi->header(-type=> 'text/html', -charset=>"utf-8");
-print $ENV{REMOTE_ADDR};
\ No newline at end of file
diff --git a/conf/db_backup.json b/conf/db_backup.json
new file mode 100644 (file)
index 0000000..c9c944c
--- /dev/null
@@ -0,0 +1,42 @@
+{
+    "juridig": {
+        "type":"mysql",
+        "dbhost": "sql615.your-server.de",
+        "dbname": "juridig_db",
+        "dbuser": "juridig",
+        "dbpwd": "fnx4HYwYCKRNR694",
+        "bkppath": "/home/dks/backup/webserver/db/juridig"
+    },
+    "fanclubf91_lu": {
+        "type":"mysql",
+        "dbhost": "sql588.your-server.de",
+        "dbname": "wp_dksalu_db0",
+        "dbuser": "wp_dksalu_0",
+        "dbpwd": "B4Q3Zs4nKf4i4KM1",
+        "bkppath": "/home/dks/backup/webserver/db/fanclubf91_lu"
+    },
+    "dateschutz_lu": {
+        "type":"mysql",
+        "dbhost": "sql247.your-server.de",
+        "dbname": "wp_dksalu_db1",
+        "dbuser": "wp_dksalu_1",
+        "dbpwd": "AASEV6zRxQDkmZ8Z",
+        "bkppath": "/home/dks/backup/webserver/db/dateschutz_lu"
+    },
+    "solarch_dbsite": {
+        "type":"mysql",
+        "dbhost": "sql537.your-server.de",
+        "dbname": "solarch_db1",
+        "dbuser": "solarch_1",
+        "dbpwd": "F8LVv6iwjLkdLCMM",
+        "bkppath": "/home/dks/backup/webserver/db/solarch_dbsite"
+    },
+    "solarch_dbprojectplan": {
+        "type":"mysql",
+        "dbhost": "sql635.your-server.de",
+        "dbname": "solarch_db2",
+        "dbuser": "solarch_2",
+        "dbpwd": "y8UvMP97pVeA7KTm",
+        "bkppath": "/home/dks/backup/webserver/db/solarch_dbprojectplan"
+    }
+}
\ No newline at end of file
diff --git a/conf/drives.json b/conf/drives.json
new file mode 100644 (file)
index 0000000..a021da9
--- /dev/null
@@ -0,0 +1,28 @@
+{
+    "drives": {
+        "222239212D6A": {
+            "gid": 1001,
+            "uid": 1001,
+            "type": "rw",
+            "path": "/home/dks/private"
+        },
+        "94M1TP66T": {
+            "uid": 1001,
+            "gid": 1001,
+            "type": "rw",
+            "path": "/home/dks/music"
+        },
+        "94M3TGRGT": {
+            "type": "rw",
+            "path": "/home/dks/mirror",
+            "uid": 1001,
+            "gid": 1001
+        },
+        "22223921335B": {
+            "gid": 1001,
+            "uid": 1001,
+            "type": "rw",
+            "path": "/home/dks/backup"
+        }
+    }
+}
\ No newline at end of file
diff --git a/conf/smb.conf b/conf/smb.conf
new file mode 100644 (file)
index 0000000..18b3c82
--- /dev/null
@@ -0,0 +1,58 @@
+[global]
+workgroup = DKS
+server string = DKS Home Backup System %v
+netbios name = home-backup
+security = user
+map to guest = bad user
+dns proxy = no
+
+[bin]
+  comment = bin folder
+  path = /home/dks/bin
+  valid users = kilian
+  force group = dks
+  force user = dks
+  create mask = 0660
+  directory mask = 0771
+  writable = yes
+
+[mirror]
+  comment = Mirror Drive
+  path = /home/dks/mirror
+  valid users = kilian
+  force group = dks
+  force user = dks
+  create mask = 0660
+  directory mask = 0771
+  writable = yes
+
+[backup]
+  comment = Backup Drive
+  path = /home/dks/backup
+  valid users = kilian
+  force group = dks
+  force user = dks
+  create mask = 0660
+  directory mask = 0771
+  writable = yes
+
+[music]
+  comment = Music Drive
+  path = /home/dks/music
+  valid users = kilian
+  force group = dks
+  force user = dks
+  create mask = 0660
+  directory mask = 0771
+  writable = yes
+
+[private]
+  comment = Private Family Drive
+  path = /home/dks/private
+  valid users = kilian
+  force group = dks
+  force user = dks
+  create mask = 0660
+  directory mask = 0771
+  writable = yes
+
diff --git a/dev/install.sh b/dev/install.sh
new file mode 100644 (file)
index 0000000..e7d5b55
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+#add group dks
+#add user dks
+
+#add smbusers -> (must have real user with: -g <user> -G dks -s /bin/false -d /dev/null
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644 (file)
index 0000000..2ce6804
--- /dev/null
@@ -0,0 +1,38 @@
+{
+  "name": "dksnas",
+  "version": "0.1.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@fortawesome/fontawesome-free": {
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.7.2.tgz",
+      "integrity": "sha512-Ha4HshKdCVKgu4TVCtG8XyPPYdzTzNW4/fvPnn+LT7AosRABryhlRv4cc4+o84dgpvVJN9reN7jo/c+nYujFug==",
+      "dev": true
+    },
+    "bootstrap": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz",
+      "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==",
+      "dev": true
+    },
+    "bootstrap-table": {
+      "version": "1.13.4",
+      "resolved": "https://registry.npmjs.org/bootstrap-table/-/bootstrap-table-1.13.4.tgz",
+      "integrity": "sha512-033fnjYKgFZO98PL6E0JAqmwTJ2isoQxJBFU6BwEbIMmRZETk5iDoPGgV+7wORt4c+yABNWj8EnbFBWAHz5YPw==",
+      "dev": true
+    },
+    "jquery": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
+      "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==",
+      "dev": true
+    },
+    "popper.js": {
+      "version": "1.14.7",
+      "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.7.tgz",
+      "integrity": "sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ==",
+      "dev": true
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644 (file)
index 0000000..f4d664c
--- /dev/null
@@ -0,0 +1,14 @@
+{
+  "name": "dksnas",
+  "version": "0.1.0",
+  "description": "NAS Server",
+  "author": "Kilian Saffran",
+  "license": "MIT",
+  "devDependencies": {
+    "@fortawesome/fontawesome-free": "^5.7.2",
+    "bootstrap": "^4.3.1",
+    "bootstrap-table": "^1.13.4",
+    "jquery": "^3.3.1",
+    "popper.js": "^1.14.7"
+  }
+}