{% extends "dashboard.html" %} {% block head %} {% endblock %} {% block content %}
Dashboard window Last {{ home_stats_days }} days
{% if is_pro_version %} Pro plugin {% else %} {% endif %}

Plan
{% if is_pro_version %} PRO {% else %} FREE {% endif %}

{% if is_pro_version %} More info {% else %} Upgrade? {% endif %}

System RAM
{{ memory_info.used_gb }}GB / {{ memory_info.total_gb }}GB

{{ memory_info.used_percent|round(1) }}% used {% if memory_info.memory_state == 'danger' %}
Critical: System is running out of memory! {% elif memory_info.memory_state == 'low' %}
Warning: Low memory may affect performance {% elif memory_info.memory_state == 'medium' %}
Consider upgrading to 16GB+ for production use {% else %}
Excellent memory for production environments {% endif %}

Instances
{{ '0' if instances|length < 10 else '' }}{{ instances|length }}

{% set ns = namespace(up_instances=0, down_instances=0, loading_instances=0) %} {% for instance in instances %} {% if instance['status'] == 'up' %} {% set ns.up_instances = ns.up_instances + 1 %} {% elif instance['status'] == 'down' %} {% set ns.down_instances = ns.down_instances + 1 %} {% else %} {% set ns.loading_instances = ns.loading_instances + 1 %} {% endif %} {% endfor %} {{ ns.up_instances }} up / {{ ns.down_instances }} down / {{ ns.loading_instances }} loading

Services
{{ '0' if services|length < 10 else '' }}{{ services|length }}

{% set ns = namespace(online_services=0, draft_services=0) %} {% for service in services %} {% if service['is_draft'] %} {% set ns.draft_services = ns.draft_services + 1 %} {% else %} {% set ns.online_services = ns.online_services + 1 %} {% endif %} {% endfor %} {{ ns.online_services }} online / {{ ns.draft_services }} draft

Plugins
{{ '0' if plugins|length < 10 else '' }}{{ plugins|length }}

{% set ns = namespace(core_plugins=0, external_plugins=0, pro_plugins=0) %} {% for plugin in plugins.values() %} {% if plugin['type'] == 'core' %} {% set ns.core_plugins = ns.core_plugins + 1 %} {% elif plugin['type'] == 'pro' %} {% set ns.pro_plugins = ns.pro_plugins + 1 %} {% else %} {% set ns.external_plugins = ns.external_plugins + 1 %} {% endif %} {% endfor %} {{ ns.core_plugins }} core / {{ ns.pro_plugins }} PRO / {{ ns.external_plugins }} external

Total Requests
{{ human_readable_number(request_errors.values() |sum) }}

Blocked Requests
{% set ns = namespace(blocked_requests=0) %} {% for status, count in request_errors.items() %} {% if status in (403, 429, 444) %} {% set ns.blocked_requests = ns.blocked_requests + count %} {% endif %} {% endfor %} {{ human_readable_number(ns.blocked_requests) }}

Blocked Unique IPs
{{ human_readable_number(blocked_unique_ips) }}

Request status
{{ request_errors|tojson }}
Top 10 - Blocked IPs
{% if request_ips %}
{{ request_ips|tojson }}
{% else %}

No data to show

{% endif %}
Blocked Requests countries
{{ request_countries|tojson }}
News
See more

Impossible to connect to blog news.

Blocking status
{{ time_buckets|tojson }}
{% endblock %} {% block scripts %} {% endblock %}