2023-02-13 14:45:45 +00:00
{% import 'languages/'+lang|default('en')+'.html' as lang %}
2023-03-19 15:51:58 +00:00
{% set services_name = {
'roxy-wi-checker': { 'name': 'Checker', 'desc': lang.admin_page.desc.checker_desc },
'roxy-wi-keep_alive': { 'name': 'Auto start', 'desc': lang.admin_page.desc.auto_start_desc },
'roxy-wi-metrics': { 'name': 'Metrics', 'desc': lang.admin_page.desc.metrics_desc },
'roxy-wi-portscanner': { 'name': 'Port scanner', 'desc': lang.admin_page.desc.p_s_desc },
'roxy-wi-smon': { 'name': 'SMON', 'desc': lang.admin_page.desc.smon_desc },
'roxy-wi-socket': { 'name': 'Socket', 'desc': lang.admin_page.desc.socket_desc },
'roxy-wi-prometheus-exporter': { 'name': 'Prometheus exporter', 'desc': 'Prometheus exporter exports Roxy-WI metrics' },
'prometheus': { 'name': 'Prometheus', 'desc': 'Prometheus server' },
'grafana-server': { 'name': 'Grafana', 'desc': 'Grafana server' },
'fail2ban': { 'name': 'Fail2ban', 'desc': 'Fail2ban scans log files (e.g. /var/log/apache/error_log) and bans IPs that show the malicious signs' },
'rabbitmq-server': { 'name': 'RabbitMQ', 'desc': 'RabbitMQ server' },
}
%}
2024-03-21 06:04:37 +00:00
{% for service in services %}
2023-04-02 16:58:55 +00:00
{% set is_service_started_class = '' %}
{% set is_service_stopped_class = '' %}
2024-03-21 06:04:37 +00:00
{% set onclick_start_action = "confirmAjaxServiceAction('start', '"+service.0+"')" %}
{% set onclick_stop_action = "confirmAjaxServiceAction('stop', '"+service.0+"')" %}
{% set is_service_started_title = lang.words.start|title()+" "+lang.words.and+" "+lang.words.enable+" "+services_name[service.0]['name']+" "+lang.words.service %}
{% set is_service_stopped_title = lang.words.stop|title()+" "+lang.words.and+" "+lang.words.disable+" "+services_name[service.0]['name']+" "+lang.words.service %}
< tr class = "{{ loop.cycle('odd', 'even') }}" id = "{{service.0}}" >
2021-02-20 07:47:33 +00:00
< td class = "padding10 first-collumn" >
2024-03-21 06:04:37 +00:00
{% if service.1 == 'active' or service.1 == 'RUNNING' %}
< span title = "{{lang.words.service|title()}} {{services_name[service.0]['name']}} {{lang.words.started}}" > < span class = "serverUp server-status" > < / span > < / span >
2023-04-02 16:58:55 +00:00
{% set is_service_started_class = 'disabled-button' %}
{% set onclick_start_action = "" %}
2024-03-21 06:04:37 +00:00
{% set is_service_started_title = lang.words.service|title()+" "+services_name[service.0]['name']+" "+lang.words.already+" "+lang.words.started %}
2021-02-20 07:47:33 +00:00
{% else %}
2024-03-21 06:04:37 +00:00
{% if (service.1 == 'inactive' or service.1 == 'failed' or service.1 == 'activating' or service.1 == 'STOPPED') and 'is not installed' not in service.2['current_version'] %}
< span title = "{{lang.words.service|title()}} {{services_name[service.0]['name']}} {{lang.words.stopped}}" > < span class = "serverDown server-status" > < / span > < / span >
2023-04-02 16:58:55 +00:00
{% set is_service_stopped_class = 'disabled-button' %}
{% set onclick_stop_action = "" %}
2024-03-21 06:04:37 +00:00
{% set is_service_stopped_title = lang.words.service|title()+" "+services_name[service.0]['name']+" "+lang.words.already+" "+lang.words.stopped %}
2021-02-20 07:47:33 +00:00
{% else %}
2024-03-21 06:04:37 +00:00
< span title = "{{lang.words.service|title()}} {{services_name[service.0]['name']}} {{lang.words.not}} {{lang.words.installed}}" > < span class = "serverNone server-status" > < / span > < / span >
2021-02-20 07:47:33 +00:00
{% endif %}
{% endif %}
2024-03-21 06:04:37 +00:00
{{services_name[service.0]['name']}}
2021-02-20 07:47:33 +00:00
< / td >
< td class = "padding10 first-collumn" >
2024-03-21 06:04:37 +00:00
{% if 'is not installed' in service.2['current_version'] or not service.2['current_version'] or service.2['current_version'] == '0' %}
{% if service.0 in ('prometheus', 'grafana-server') %}
2024-08-02 09:50:02 +00:00
< a href = "/install#monitoring" class = "ui-button ui-widget ui-corner-all" title = "{{lang.words.install|title()}} {{service_name}}" > {{lang.words.install|title()}}< / a >
2024-03-21 06:04:37 +00:00
{% elif service.0 in ('rabbitmq-server', 'fail2ban') %}
< a class = "ui-button ui-widget ui-corner-all" href = "https://roxy-wi.org/tools/{{service.0.split('-')[0]}}" title = "{{lang.words.install|title()}} {{services_name[service.0]['name']}}" target = "_blank" > {{lang.words.install|title()}}< / a >
2022-12-24 11:13:10 +00:00
{% else %}
2024-03-21 06:04:37 +00:00
< a class = "ui-button ui-widget ui-corner-all" onclick = "updateService('{{service.0}}', 'install')" title = "{{lang.words.install|title()}} {{service_name}}" > {{lang.words.install|title()}}< / a >
2022-12-24 11:13:10 +00:00
{% endif %}
2022-04-23 17:40:27 +00:00
{% else %}
2024-03-21 06:04:37 +00:00
< a id = "start-{{ service.0 }}" class = "start" title = "{{is_service_started_title}}" >
2023-04-02 16:58:55 +00:00
< span class = "service-start {{is_service_started_class}}" onclick = "{{onclick_start_action}}" > < / span >
2021-02-20 07:47:33 +00:00
< / a >
2024-03-21 06:04:37 +00:00
< a id = "restart-{{ service.2 }}" class = "restart" title = "{{lang.words.restart|title()}} {{services_name[service.0]['name']}} {{lang.words.service}}" >
< span class = "service-reload service-restart" onclick = "confirmAjaxServiceAction('restart', '{{service.0}}')" > < / span >
2021-02-20 07:47:33 +00:00
< / a >
2024-03-21 06:04:37 +00:00
< a id = "stop-{{ service.0 }}" class = "stop" title = "{{is_service_stopped_title}}" >
2023-04-02 16:58:55 +00:00
< span class = "service-stop {{is_service_stopped_class}}" onclick = "{{onclick_stop_action}}" > < / span >
2021-02-20 07:47:33 +00:00
< / a >
2022-04-23 17:40:27 +00:00
{% endif %}
2021-02-20 07:47:33 +00:00
< / td >
2021-06-18 07:25:15 +00:00
< td >
2024-03-21 06:04:37 +00:00
{% if 'is not installed' not in service.2['current_version'] %}
{{service.2['current_version']}}
2021-06-18 07:25:15 +00:00
{% endif %}
< / td >
2023-04-14 08:18:20 +00:00
< td colspan = "2" >
2024-03-21 06:04:37 +00:00
{{ services_name[service.0]['desc'] | safe }}
2021-02-20 07:47:33 +00:00
< / td >
< / tr >
2023-02-13 14:45:45 +00:00
{% endfor %}