{{ error }}
{{ (dash.system.cpu_percent || 0).toFixed(2) }}%
CPU
{{ dash.system.cpu_cores }} Core
{{ pct(dash.system.mem_used, dash.system.mem_total) }}%
RAM
{{ bytes(dash.system.mem_used) }} / {{ bytes(dash.system.mem_total) }}
{{ pct(dash.system.swap_used, dash.system.swap_total) }}%
Swap
{{ bytes(dash.system.swap_used) }} / {{ bytes(dash.system.swap_total) }}
{{ pct(dash.system.disk_used, dash.system.disk_total) }}%
Disk
{{ bytes(dash.system.disk_used) }} / {{ bytes(dash.system.disk_total) }}
OpenKaryon Control
Running
v{{ dash.version }}
System uptime
{{ uptimeFmt(dash.system.uptime_seconds) }}
System load
{{ dash.system.load1.toFixed(2) }} | {{ dash.system.load5.toFixed(2) }} | {{ dash.system.load15.toFixed(2) }}
Transfer speed
↑ {{ speed(dash.system.net_up_rate) }}
↓ {{ speed(dash.system.net_down_rate) }}
↓ {{ speed(dash.system.net_down_rate) }}
Host total traffic
↑ {{ bytes(dash.system.net_up_bytes) }}
↓ {{ bytes(dash.system.net_down_bytes) }}
↓ {{ bytes(dash.system.net_down_bytes) }}
DSC traffic
↑ {{ bytes(dash.counts.traffic_up) }}
↓ {{ bytes(dash.counts.traffic_down) }}
↓ {{ bytes(dash.counts.traffic_down) }}
Server IP
{{ dash.system.ipv4 || "—" }}
{{ dash.system.ipv6 || "IPv6 N/A" }}
{{ dash.system.ipv6 || "IPv6 N/A" }}
Connections
TCP {{ dash.system.tcp_conns }} · UDP {{ dash.system.udp_conns }}
{{ dash.counts.members }}
Members
{{ dash.counts.profiles }}
Profiles
{{ dash.counts.nodes }}
Nodes
{{ dash.counts.devices }}
Devices
{{ dash.counts.active_sessions }}
Active Sessions
Loading…
{{ members.length }}
Members
{{ profiles.length }}
Profiles
{{ assignments.length }}
Assignments
{{ servers.length }}
Nodes
{{ activeSessions.length }}
Active Sessions
{{ deployments.length }}
Deployments
{{ bytes(totalTraffic) }}
Total Traffic
{{ c.kind === 'channel' ? '#' + c.slug : (c.title || 'Direct message') }} {{ c.unread }}
{{ c.last_author ? c.last_author + ': ' : '' }}{{ c.last_message || 'No messages yet' }}
No conversations.
{{ link.activeRoom.kind === 'channel' ? '#' + link.activeRoom.slug : (link.activeRoom.title || 'Direct message') }}
read-only
Select a conversation.
New Member
Members
| Name | Kind | Role | Created | |
|---|---|---|---|---|
| {{ m.display_name }} | {{ m.kind }} | {{ m.role }} | {{ m.email }} | {{ m.created_at }} |
New Profile
Profiles
| Name | UID | Presets | Status | |
|---|---|---|---|---|
| {{ profile.name }} | {{ profile.uid }} |
x.trim()).filter(Boolean)">{{ profile.presets.join(', ') }} | {{ profile.enabled ? "enabled" : "disabled" }} |
Devices: {{ profileDetail.name }}
| Name | Platform | Device ID | Version | Status | Last Seen | |
|---|---|---|---|---|---|---|
| {{ device.name }} | {{ device.platform }} | {{ device.device_id }} |
{{ device.app_version }} | {{ device.enabled ? "enabled" : "disabled" }} | {{ device.last_seen_at }} |
Sessions
| Session | Device | Exit | Expires | Status | |
|---|---|---|---|---|---|
{{ session.session_id }} |
{{ session.device_name || session.device_id }} | {{ session.exit_name || session.exit_server_id }} | {{ session.expires_at }} | {{ session.revoked_at ? "revoked" : "active" }} |
Assign Profile
Assignments
| Profile | UID | Member | Created | |
|---|---|---|---|---|
| {{ a.profile_name }} | {{ a.profile_uid }} |
{{ a.member_name }} | {{ a.created_at }} |
New Node
Nodes
| Name | Host | SSH | Status | Last Seen | Traffic | |
|---|---|---|---|---|---|---|
| {{ server.name }} {{ server.country }} | {{ server.host }}:{{ server.dsc_port }} |
{{ server.ssh_user }}@{{ server.host }}:{{ server.ssh_port }} | {{ server.last_status }} | {{ server.last_seen_at || "never" }} | {{ bytes(server.traffic_used) }} |
Transport Sessions
| Session | Profile | Device | Exit | Expires | Status | |
|---|---|---|---|---|---|---|
{{ session.session_id }} |
{{ session.profile_name || session.profile_id }} | {{ session.device_name || session.device_id }} | {{ session.exit_name || session.exit_server_id }} | {{ session.expires_at }} | {{ session.revoked_at ? "revoked" : "active" }} |
Deployment Jobs
| ID | Node | Action | Status | Created | Log |
|---|---|---|---|---|---|
| {{ job.id }} | {{ job.server_name || job.exit_server_id }} | {{ job.action }} | {{ job.status }} | {{ job.created_at }} | {{ job.log }} |
Profile Traffic
| Profile | UID | Up | Down | Total | Last Active |
|---|---|---|---|---|---|
| {{ item.profile_name }} | {{ item.uid }} |
{{ bytes(item.bytes_up) }} | {{ bytes(item.bytes_down) }} | {{ bytes(item.bytes_total) }} | {{ item.last_active_at || "never" }} |
System Events
| Time | Source | Type | Subject | Detail |
|---|---|---|---|---|
| {{ ev.created_at }} | {{ ev.source }} | {{ ev.type }} |
{{ ev.subject }} | {{ ev.detail }} |
New Invite
Invites
| Token | Role | Uses | Expires | Status | ||
|---|---|---|---|---|---|---|
{{ inv.token }} |
{{ inv.role }} | {{ inv.email }} | {{ inv.used_count }} / {{ inv.max_uses }} | {{ inv.expires_at || "never" }} | {{ inv.status }} | |
| No invites yet. | ||||||
Access Requests
| Time | Message | Source | Locale | Status | |
|---|---|---|---|---|---|
| {{ req.created_at }} | {{ req.email }} |
{{ req.message }} | {{ req.source }} | {{ req.locale }} | {{ req.status }} |
| No requests yet. | |||||
Audit Log
| Time | Actor | Role | Action | Target | Detail |
|---|---|---|---|---|---|
| {{ entry.created_at }} | {{ entry.actor }} | {{ entry.actor_role }} | {{ entry.action }} |
{{ entry.target_type }} #{{ entry.target_id }} | {{ entry.detail }} |