{% extends "base.html" %} {% block title %}Dashboard - Hermetic Suite{% endblock %} {% block content %}
🖥️
{{ total_servers }}
Active Servers
🔴
{{ severity_counts.get('critical', 0) }}
Critical
🟠
{{ severity_counts.get('high', 0) }}
High
🟡
{{ severity_counts.get('medium', 0) }}
Medium
📚
{{ cve_stats.total_cves or 0 }}
Unique CVEs

Recent Vulnerabilities

View All
{% if recent_vulns %} {% for vuln in recent_vulns %} {% endfor %}
CVE Title Server Detected
{{ vuln.cve_id or 'N/A' }} {{ vuln.title[:50] }}{% if vuln.title|length > 50 %}...{% endif %} {% if vuln.server %} {{ vuln.server.ip_address }} {% endif %} {{ vuln.first_detected.strftime('%Y-%m-%d') if vuln.first_detected else 'N/A' }}
{% else %}

No recent vulnerabilities found 🎉

{% endif %}

Recent Scans

View All
{% if recent_scans %} {% for scan in recent_scans %} {% set type_labels = { 'server': 'Server', 'server_auth': 'Server (Auth)', 'domain': 'Domain', 'discovery': 'Discovery' } %} {% endfor %}
Type Status Services Vulns Time
{{ type_labels.get(scan.scan_type.value, scan.scan_type.value) }} {{ scan.status.value }} {# Services column: services_found for server/domain scans, hosts_scanned for discovery #} {% if scan.server or scan.dns_record %} {{ scan.services_found if scan.services_found is not none else '-' }} {% else %} {{ scan.hosts_scanned if scan.hosts_scanned else '-' }} {% endif %} {{ scan.vulnerabilities_found if scan.vulnerabilities_found is not none else '-' }} {{ scan.created_at.strftime('%m/%d %H:%M') if scan.created_at else 'N/A' }}
{% else %}

No scans yet. Start discovery

{% endif %}

CVE Database

View All
Unique CVEs Detected: {{ cve_stats.total_cves or 0 }}
Critical: {{ cve_stats.by_severity.get('critical', 0) }}
High: {{ cve_stats.by_severity.get('high', 0) }}
Medium: {{ cve_stats.by_severity.get('medium', 0) }}
Low: {{ cve_stats.by_severity.get('low', 0) }}
Info: {{ cve_stats.by_severity.get('info', 0) }}
{% endblock %}