1 Commits
1.0.1 ... 1.0.2

Author SHA1 Message Date
6a7451de83 letsencrypt request
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2025-05-07 11:09:37 +00:00
5 changed files with 65 additions and 21 deletions

View File

@@ -71,15 +71,10 @@ RUN apk --no-cache add php${PHP_VERSION} \
COPY nginx.conf /etc/nginx/nginx.conf
RUN mkdir -p /usr/share/nginx/html
COPY index.html /usr/share/nginx/html
COPY scan.html /usr/share/nginx/html
COPY manage.html /usr/share/nginx/html
COPY scan.php /usr/share/nginx/html
COPY letsencrypt_log.php /usr/share/nginx/html
COPY functions.php /usr/share/nginx/html
COPY install.html /usr/share/nginx/html
COPY install.php /usr/share/nginx/html
COPY installer.css /usr/share/nginx/html
COPY *.html /usr/share/nginx/html
COPY *.php /usr/share/nginx/html
COPY *.css /usr/share/nginx/html
COPY *.js /usr/share/nginx/html
RUN chown -R nginx:nginx /usr/share/nginx/html
RUN mkdir -p /usr/share/nginx/html/shared

View File

@@ -258,6 +258,28 @@ function confirm_uninstall(additional) {
});
}
function request_letsencrypt(domain) {
var url = 'scan.php?op=letsencrypt&domain='+domain;
jQuery.get(url, function(data) {
console.log('letsencrypt '+domain);
if (data!="") {
jQuery("#letsencrypt").html(data);
}
setTimeout(check_letsencrypt, 2000, domain);
});
}
function check_letsencrypt(domain) {
var url = 'scan.php?op=check_letsencrypt&domain='+domain;
jQuery.get(url, function(data) {
console.log('check_letsencrypt '+domain);
if (data!="") {
jQuery("#letsencrypt").html(data);
}
//setTimeout(check_letsencrypt, 1500, domain);
});
}
function check_deployment(additional) {
var url = 'scan.php?op=check_deployment&additional='+additional;
jQuery.get(url, function(data) {

View File

@@ -305,6 +305,18 @@ function check_files($dir,$key) {
return $result;
}
function show_letsencrypt($letsencrypt, $domain) {
if (!empty($letsencrypt[$domain])) {
echo "LETSENCRYPT: ".$letsencrypt[$domain]["status"]." - ".$letsencrypt[$domain]["date"];
echo " - <a href=\"letsencrypt_log.php?domain={$domain}\" target=\"_blank\">LOG</a>";
if (date("Y-m-d",time()-60*24*3600)>substr($letsencrypt[$domain]["date"],0,10) || $letsencrypt[$domain]["status"]=="failed") {
echo " - <a href=\"#\" onclick=\"request_letsencrypt('{$domain}')\">Request new certificate</a>";
}
echo "<br><br>";
}
else echo "LETSENCRYPT in progress for {$domain}.<script>check_letsencrypt('{$domain}')</script>";
}
function check_letsencrypt() {
global $SHARED_DIR;
@@ -314,8 +326,7 @@ function check_letsencrypt() {
$json_data = file_get_contents($input_file);
$data = json_decode($json_data,true);
if ($data === null) {
echo "JSON read error...";
// TODO json error
return "ERROR";
}
else {
foreach ($data as $domain => $domain_data) {

View File

@@ -562,6 +562,6 @@
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.14.6/dist/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.2.1/dist/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
<script src="common.js?t=3"></script>
<script src="common.js?t=4"></script>
</body>
</html>

View File

@@ -179,22 +179,21 @@ switch ($_GET["op"]) {
if ($data["STATUS"]=="0") { // ask
$template = json_decode(base64_decode($data["TEMPLATE"]));
echo "<fieldset><form action=\"#\" method=\"post\" id=\"deploy_{$template->name}_form\"><br>";
echo '<div id="letsencrypt">';
if ($reinstall) {
//var_dump($template);
//var_dump($template);
$letsencrypt = check_letsencrypt();
if (empty($letsencrypt)) echo "LETSENCRYPT in progress...";
if (empty($letsencrypt)) echo "LETSENCRYPT file doesn't exists...";
elseif ($letsencrypt=="ERROR") echo "LETSENCRYPT file: read JSON error...";
else {
$domain = "";
foreach ($template->fields as $field) {
if ($field->key=="DOMAIN") {
if (!empty($letsencrypt[$field->value])) {
echo "LETSENCRYPT: ".$letsencrypt[$field->value]["status"]." - ".$letsencrypt[$field->value]["date"];
echo " - <a href=\"letsencrypt_log.php?domain={$field->value}\" target=\"_blank\">LOG</a><br><br>";
}
else echo "LETSENCRYPT in progress for {$field->value}.";
}
if ($field->key=="DOMAIN") $domain = $field->value;
}
if (!empty($domain)) show_letsencrypt($letsencrypt, $domain);
}
}
echo '</div>';
foreach ($template->fields as $field) {
if (isset($field->generated)) {
echo "<input type=\"hidden\" value=\"generated:{$field->generated}\" name=\"{$field->key}\" id=\"{$template->name}_{$field->key}\" class=\"additional_{$template->name}\">";
@@ -264,6 +263,23 @@ switch ($_GET["op"]) {
else echo ""; // no deployment, finished
}
break;
case "letsencrypt":
$domain = $_GET["domain"];
$arr = array($domain => array("status" => "requested"));
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
if (set_output("letsencrypt2",$json)) echo "LETSENCRYPT in progress for {$domain}.<br><br>";
else echo "ERROR";
break;
case "check_letsencrypt":
$domain = $_GET["domain"];
$letsencrypt = check_letsencrypt();
if (empty($letsencrypt)) echo "LETSENCRYPT file doesn't exists...";
elseif ($letsencrypt=="ERROR") echo "LETSENCRYPT file: read JSON error...";
else {
show_letsencrypt($letsencrypt, $domain);
}
break;
case "redeploy":
case "deploy":
if ($key=check_deploy($_GET["additional"])) {