Gatelogic
{{ loginError }}
Gatelogic
{{ currentUser.username ? currentUser.username[0].toUpperCase() : 'U' }}
{{ currentUser.username }}
{{ currentUser.role }}

Dashboard Devices Allowlist Management Event Log User Management Tenant Management System Settings

v{{ serverStatus.version || '1.0.0' }} Online Offline

Devices

{{ stats.deviceCount }}

{{ stats.onlineDevices }} online

License Plates

{{ stats.plateCount }}

Users

{{ stats.userCount }}

System Status

{{ systemStatusText }}

Device Status

No devices registered yet.
Device Status Last Heartbeat Actions
{{ device.device_name }}
{{ device.device_location || 'Unknown location' }}
Online Offline {{ formatDate(device.last_heartbeat) || 'Never' }}

Recent Events

No events recorded yet.
  • {{ eventDescription(event) }}

    {{ formatDate(event.timestamp) }}

All Devices

No devices registered yet.
Device Type Tenant Status Last Heartbeat Registered Actions
{{ device.device_name }}
{{ device.device_location || 'Unknown location' }}
{{ device.device_type }} {{ getTenantName(device.tenant_id) }}
Online Offline DISABLED PAYMENT SUSPENDED
{{ formatDate(device.last_heartbeat) || 'Never' }} {{ formatDate(device.registered_at) }}

Device Allowlist Management

View All Tenants

Select Tenant

{{ tenant.name }}

{{ tenant.domain }}

{{ tenant.device_count || 0 }} devices
{{ tenant.total_plates || 0 }} plates
{{ tenant.user_count || 0 }} users
No tenants available for allowlist management.

Select Device

{{ selectedAllowlistTenant.name }}

{{ device.device_name }}

{{ device.device_location || 'No location' }}

{{ device.tenant_name }}

{{ device.plate_count || 0 }} plates
{{ device.status || 'offline' }}
No devices available for allowlist management.

{{ selectedAllowlistDevice.device_name }} Allowlist

{{ selectedAllowlistDevice.device_location }}

{{ deviceAllowlist.length }} plates
Personal: {{ deviceQuotas.personal_used || 0 }}/{{ deviceQuotas.personal_limit || 0 }} | Guest: {{ deviceQuotas.guest_used || 0 }}/{{ deviceQuotas.guest_limit || 0 }}
No license plates in this device's allowlist yet.
License Plate Category Make Color Added By Added Date Expires Actions
{{ plate.plate }}
{{ plate.plate_category }} {{ plate.make || 'Any' }} {{ plate.color || 'Any' }}
{{ plate.added_by_name || plate.added_by_username || 'Unknown' }}
{{ plate.added_by_username }}
{{ formatDate(plate.added_at) }}
{{ plate.expires_at ? formatDate(plate.expires_at) : 'Never' }}
Expires soon

Event Log

No events found.
Event Type Description User Tenant Device Timestamp Actions
{{ formatEventType(event.event_type) }}
{{ eventDescription(event) }}
{{ event.details.user_info.username || 'System' }}
{{ event.details.user_info.full_name }}
{{ event.user || 'System' }}
{{ event.details.tenant_info.tenant_name || 'Unknown' }}
N/A
{{ getDeviceName(event.device_id) || 'N/A' }} {{ formatDate(event.timestamp) }}

User Management

No users found.
Username Email Full Name Tenant Role Status Actions
{{ user.username ? user.username[0].toUpperCase() : 'U' }}
{{ user.username }}
{{ user.email }} {{ user.full_name || 'N/A' }}
{{ user.tenant_name || 'Unknown' }} {{ user.tenant_domain || 'Unknown' }}
Admin User Super Admin Active Disabled

Tenant Management

No tenants found.
Name Domain Limits Created Status Actions
{{ tenant.name }}
{{ tenant.domain }}
Users: {{ tenant.user_limit }} Devices: {{ tenant.device_limit }} Allowlist: {{ tenant.allowlist_limit }}
{{ new Date(tenant.created_at).toLocaleDateString() }} {{ tenant.disabled ? 'Disabled' : 'Active' }}

System Settings

System Information

Server Version

{{ serverStatus.version || 'Unknown' }}

Status

{{ systemStatusText }}

Last Updated

{{ formatDate(serverStatus.last_updated) || 'Unknown' }}

Uptime

{{ serverStatus.uptime || 'Unknown' }}

Maintenance

Create a backup of all system data including users, devices, and allowlists.

Clear event log history. This action cannot be undone.

Device Management

{{ selectedDevice.device_name }}

{{ selectedDevice.device_location || 'Unknown location' }}

{{ selectedDevice.status === 'online' ? 'Online' : 'Offline' }}

Device ID

{{ selectedDevice.device_id }}

Device Type

{{ selectedDevice.device_type }}

Last Heartbeat

{{ formatDate(selectedDevice.last_heartbeat) || 'Never' }}

Registered At

{{ formatDate(selectedDevice.registered_at) }}

System Enabled

{{ selectedDevice.system_enabled ? 'Enabled' : 'Disabled' }}

Payment Status

{{ selectedDevice.payment_status || 'Unknown' }}

Capabilities
{{ formatCapability(capability) }}

No capabilities reported

System Health
CPU Usage {{ deviceDiagnostics.system_health?.cpu_percent?.toFixed(1) || 'N/A' }}%
Memory Usage {{ deviceDiagnostics.system_health?.memory_percent?.toFixed(1) || 'N/A' }}%
Disk Usage {{ deviceDiagnostics.system_health?.disk_usage?.toFixed(1) || 'N/A' }}%
Orange Pi Temperatures
{{ formatThermalZone(zone) }} {{ temp?.toFixed(1) || 'N/A' }}°C

No temperature data available

RK3588 NPU
Utilization {{ deviceDiagnostics.system_health.npu_metrics.utilization_percent || 'N/A' }}%
Frequency {{ deviceDiagnostics.system_health.npu_metrics.frequency_mhz || 'N/A' }} MHz
Governor {{ deviceDiagnostics.system_health.npu_metrics.governor || 'N/A' }}

NPU metrics not available

ANPR Performance
Recognition Rate {{ deviceDiagnostics.anpr_performance.recognition_rate?.toFixed(1) || 'N/A' }}%
Authorization Rate {{ deviceDiagnostics.anpr_performance.authorization_rate?.toFixed(1) || 'N/A' }}%
Plates Processed {{ deviceDiagnostics.anpr_performance.plates_processed || 'N/A' }}
Gates Opened {{ deviceDiagnostics.anpr_performance.gates_opened || 'N/A' }}
Active Cameras {{ deviceDiagnostics.anpr_performance.camera_health.cameras_active || 'N/A' }}
Hardware Decode {{ deviceDiagnostics.anpr_performance.camera_health.hardware_decode ? 'Enabled' : 'Disabled' }}

ANPR performance data not available

Health Alerts

• {{ alert }}

Loading device health data...

No health data available

Basic Commands
System Control
Diagnostics
Recent Commands
Time Command Status Result
{{ formatDate(cmd.created_at) }} {{ cmd.command_type }} {{ cmd.status }} {{ cmd.result?.message || cmd.error_message || '-' }}

Device is offline

Commands are only available for online devices

Performance History (Last 24 Hours)
{{ getLatestTelemetryValue('system_metrics', 'cpu_percent') }}%
Current CPU
{{ getLatestTelemetryValue('anpr_metrics', 'recognition_rate') }}%
Recognition Rate
{{ getLatestTelemetryValue('system_metrics', 'temperature', 'soc-thermal') }}°C
SOC Temperature
{{ getLatestTelemetryValue('npu_metrics', 'utilization_percent') }}%
NPU Usage
Time CPU % Memory % SOC Temp NPU % Recognition % Gates Opened
{{ formatDate(entry.timestamp) }} {{ entry.system_metrics?.cpu_percent?.toFixed(1) || 'N/A' }} {{ entry.system_metrics?.memory_percent?.toFixed(1) || 'N/A' }} {{ entry.system_metrics?.temperature?.['soc-thermal']?.toFixed(1) || 'N/A' }} {{ entry.npu_metrics?.utilization_percent || 'N/A' }} {{ entry.anpr_metrics?.recognition_rate?.toFixed(1) || 'N/A' }} {{ entry.anpr_metrics?.gates_opened || 'N/A' }}

No telemetry data available

{{ deviceModalMode === 'add' ? 'Register New Device' : 'Edit Device' }}

Choose which customer/location this device belongs to.

Generate or paste the enrollment token from your device.

Event Details

{{ formatEventType(selectedEvent.event_type) }}

{{ formatDate(selectedEvent.timestamp) }}

Event ID

{{ selectedEvent.event_id }}

User

{{ selectedEvent.user || 'System' }}

Device

{{ getDeviceName(selectedEvent.device_id) || selectedEvent.device_id }}

Details
{{ JSON.stringify(selectedEvent.details, null, 2) }}

{{ plateModalMode === 'add' ? 'Add License Plate' : 'Edit License Plate' }}

Choose which device this plate should be allowed to access.

{{ selectedAllowlistDevice.device_name }}
{{ selectedAllowlistDevice.device_location || 'No location' }}

Long-term access for regular users Temporary access with expiration date Administrative access Service vehicle access

Guest plates must have an expiration date Optional expiration date for automatic removal

Current Device Quotas

Personal: {{ deviceQuotas.personal_used || 0 }}/{{ deviceQuotas.personal_limit || 0 }}
Guest: {{ deviceQuotas.guest_used || 0 }}/{{ deviceQuotas.guest_limit || 0 }}

{{ userModalMode === 'add' ? 'Add User' : 'Edit User' }}

Password must be at least 12 characters with uppercase, lowercase, numbers, and special characters.

Select which tenant this user should belong to.

{{ tenantModalMode === 'add' ? 'Add Tenant' : 'Edit Tenant' }}

Most tenants should use user.gatelogic.lt for customer access.

{{ confirmationTitle }}

{{ confirmationMessage }}

{{ notification.title }}

{{ notification.message }}