UI - basic services list
This commit is contained in:
parent
c5f283b00e
commit
59b2fed416
@ -1,7 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# load default values
|
# load default values
|
||||||
|
set -a
|
||||||
. /opt/entrypoint/defaults.sh
|
. /opt/entrypoint/defaults.sh
|
||||||
|
set +a
|
||||||
|
|
||||||
# load some functions
|
# load some functions
|
||||||
. /opt/entrypoint/utils.sh
|
. /opt/entrypoint/utils.sh
|
||||||
@ -10,6 +12,20 @@
|
|||||||
NGINX_PREFIX="/etc/nginx/"
|
NGINX_PREFIX="/etc/nginx/"
|
||||||
if [ "$MULTISITE" = "yes" ] ; then
|
if [ "$MULTISITE" = "yes" ] ; then
|
||||||
NGINX_PREFIX="${NGINX_PREFIX}${1}/"
|
NGINX_PREFIX="${NGINX_PREFIX}${1}/"
|
||||||
|
if [ ! -d "$NGINX_PREFIX" ] ; then
|
||||||
|
mkdir "$NGINX_PREFIX"
|
||||||
|
fi
|
||||||
|
ROOT_FOLDER="${ROOT_FOLDER}/$1"
|
||||||
|
fi
|
||||||
|
env | grep -E -v "^(HOSTNAME|PWD|PKG_RELEASE|NJS_VERSION|SHLVL|PATH|_|NGINX_VERSION)=" > "${NGINX_PREFIX}nginx.env"
|
||||||
|
|
||||||
|
if [ "$MULTISITE" = "yes" ] ; then
|
||||||
|
sed -i "s~^SERVER_NAME=.*~SERVER_NAME=$1~" "${NGINX_PREFIX}nginx.env"
|
||||||
|
for server in $SERVER_NAME ; do
|
||||||
|
if [ "$server" != "$1" ] ; then
|
||||||
|
sed -i "/^${server}_.*=.*/d" "${NGINX_PREFIX}nginx.env"
|
||||||
|
fi
|
||||||
|
done
|
||||||
for var in $(env) ; do
|
for var in $(env) ; do
|
||||||
name=$(echo "$var" | cut -d '=' -f 1)
|
name=$(echo "$var" | cut -d '=' -f 1)
|
||||||
check=$(echo "$name" | grep "^$1_")
|
check=$(echo "$name" | grep "^$1_")
|
||||||
@ -17,15 +33,14 @@ if [ "$MULTISITE" = "yes" ] ; then
|
|||||||
repl_name=$(echo "$name" | sed "s~${1}_~~")
|
repl_name=$(echo "$name" | sed "s~${1}_~~")
|
||||||
repl_value=$(echo "$var" | sed "s~${name}=~~")
|
repl_value=$(echo "$var" | sed "s~${name}=~~")
|
||||||
read -r "$repl_name" <<< $repl_value
|
read -r "$repl_name" <<< $repl_value
|
||||||
|
sed -i "/^${repl_name}=.*/d" "${NGINX_PREFIX}nginx.env"
|
||||||
|
sed -i "/^${name}=.*/d" "${NGINX_PREFIX}nginx.env"
|
||||||
|
echo "${repl_name}=${repl_value}" >> "${NGINX_PREFIX}nginx.env"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
ROOT_FOLDER="${ROOT_FOLDER}/$1"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# copy stub confs
|
# copy stub confs
|
||||||
if [ "$MULTISITE" = "yes" ] ; then
|
|
||||||
mkdir "$NGINX_PREFIX"
|
|
||||||
fi
|
|
||||||
cp /opt/confs/site/* "$NGINX_PREFIX"
|
cp /opt/confs/site/* "$NGINX_PREFIX"
|
||||||
|
|
||||||
# replace paths
|
# replace paths
|
||||||
|
|||||||
@ -33,6 +33,7 @@ def instances():
|
|||||||
@app.route('/services')
|
@app.route('/services')
|
||||||
def services():
|
def services():
|
||||||
check, services = wrappers.get_services()
|
check, services = wrappers.get_services()
|
||||||
|
print(services, flush=True)
|
||||||
if not check :
|
if not check :
|
||||||
return render_template("error.html", title="Error", error=services)
|
return render_template("error.html", title="Error", error=services)
|
||||||
return render_template("services.html", title="Services", services=services)
|
return render_template("services.html", title="Services", services=services)
|
||||||
|
|||||||
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div class="text-center">
|
<!--<div class="text-center">
|
||||||
<button class="btn btn-success btn-lg mb-5"><i class="fas fa-plus"></i> new</button>
|
<button class="btn btn-success btn-lg mb-5"><i class="fas fa-plus"></i> new</button>
|
||||||
</div>
|
</div>-->
|
||||||
|
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
|
|
||||||
@ -38,10 +38,12 @@
|
|||||||
<div class="card-body text-dark">
|
<div class="card-body text-dark">
|
||||||
<h5 class="card-title">Status : {{ instance["status"] }}</h5>
|
<h5 class="card-title">Status : {{ instance["status"] }}</h5>
|
||||||
<span class="card-text">
|
<span class="card-text">
|
||||||
Web services : <span class="badge bg-primary">X</span><br />
|
|
||||||
Environment variables :<br />
|
Environment variables :<br />
|
||||||
|
{% set envfilter = ["PATH", "NGINX_VERSION", "NJS_VERSION", "PKG_RELEASE"] %}
|
||||||
{% for env in instance.attrs["Config"]["Env"] %}
|
{% for env in instance.attrs["Config"]["Env"] %}
|
||||||
{{ env }}<br />
|
{% if not env.startswith("PATH=") and not env.startswith("NGINX_VERSION=") and not env.startswith("NJS_VERSION=") and not env.startswith("PKG_RELEASE=") %}
|
||||||
|
{{ env }}<br />
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -2,41 +2,37 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
|
|
||||||
{% for service in services %}
|
{% for service in services %}
|
||||||
{% set color = "dark" %}
|
|
||||||
{% if service["status"] == "running" %}
|
|
||||||
{% set color = "success" %}
|
|
||||||
{% elif service["status"] == "created" or service["status"] == "restarting" or service["status"] == "paused" %}
|
|
||||||
{% set color = "warning" %}
|
|
||||||
{% elif service["status"] == "exited" or service["status"] == "dead" %}
|
|
||||||
{% set color = "danger" %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="col col-6">
|
<div class="col col-6">
|
||||||
<div class="card border-{{ color }} mb-3" style="max-width: 80rem;">
|
<div class="card border-primary mb-3" style="max-width: 80rem;">
|
||||||
<div class="card-header border-{{ color }} bg-{{ color }}">
|
<div class="card-header border-primary bg-primary">
|
||||||
{{ service["name"] }}
|
{{ service["SERVER_NAME"] }}
|
||||||
<div class="btn-group mx-2 float-end" role="group">
|
<!--<div class="btn-group mx-2 float-end" role="group">
|
||||||
<button id="btnGroupDrop1" class="btn btn-sm dropdown-toggle btn-light" data-bs-toggle="dropdown" aria-expanded="false">
|
<button id="btnGroupDrop1" class="btn btn-sm dropdown-toggle btn-light" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<i class="fas fa-cogs"> manage container</i>
|
<i class="fas fa-cogs"> manage container</i>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
|
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
|
||||||
<li><a class="dropdown-item" href="service/start/{{ service["id"] }}">Start</a></li>
|
<li><a class="dropdown-item" href="#">Start</a></li>
|
||||||
<li><a class="dropdown-item" href="service/stop/{{ service["id"] }}">Stop</a></li>
|
<li><a class="dropdown-item" href="#">Stop</a></li>
|
||||||
<li><a class="dropdown-item" href="service/restart/{{ service["id"] }}">Restart</a></li>
|
<li><a class="dropdown-item" href="#">Restart</a></li>
|
||||||
<li><a class="dropdown-item" href="#">Remove</a></li>
|
<li><a class="dropdown-item" href="#">Remove</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="btn btn-sm mx-2 float-end btn-light"><i class="fas fa-redo-alt"></i> reload nginx</button>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body text-dark">
|
<div class="card-body text-dark">
|
||||||
<h5 class="card-title">Status : {{ service["status"] }}</h5>
|
<h5 class="card-title">Server name : {{ service["SERVER_NAME"] }}</h5>
|
||||||
<span class="card-text">
|
<span class="card-text">
|
||||||
Web services : <span class="badge bg-primary">X</span><br />
|
|
||||||
Environment variables :<br />
|
Environment variables :<br />
|
||||||
{% for env in service.attrs["Config"]["Env"] %}
|
{% set envfilter = ["PATH", "NGINX_VERSION", "NJS_VERSION", "PKG_RELEASE"] %}
|
||||||
{{ env }}<br />
|
{% for k, v in service.items() %}
|
||||||
|
{% if not k.startswith("PATH=") and not k.startswith("NGINX_VERSION=") and not k.startswith("NJS_VERSION=") and not k.startswith("PKG_RELEASE=") %}
|
||||||
|
{{ k + "=" + v }}<br />
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -27,4 +27,20 @@ def get_instances() :
|
|||||||
return get_containers("UI")
|
return get_containers("UI")
|
||||||
|
|
||||||
def get_services() :
|
def get_services() :
|
||||||
return get_containers("SERVER_NAME")
|
services = []
|
||||||
|
try :
|
||||||
|
for root, dirs, files in os.walk("/etc/nginx") :
|
||||||
|
for file in files :
|
||||||
|
filepath = os.path.join(root, file)
|
||||||
|
print(filepath, flush=True)
|
||||||
|
if filepath.endswith("/nginx.env") :
|
||||||
|
with open(filepath, "r") as f :
|
||||||
|
service = {}
|
||||||
|
for line in f.readlines() :
|
||||||
|
name = line.split("=")[0]
|
||||||
|
value = line.replace(name + "=", "", 1).strip()
|
||||||
|
service[name] = value
|
||||||
|
services.append(service)
|
||||||
|
except Exception as e :
|
||||||
|
return False, str(e)
|
||||||
|
return True, services
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user