{{ define "service-menu" }} {{ end }} {{ define "admin-service-status-content" }} {{ template "nav-sidebar" . }}
{{ template "navbar-user" . }}

Services

Use Spokes as a standard reverse proxy without remote tunnels.

{{ template "service-menu" . }}
{{ if .Menu.HTTP }} {{ template "service-http-content" . }} {{ end }} {{ if .Menu.TCP }} {{ template "service-tcp-content" . }} {{ end }} {{ if .Menu.PortMapping }} {{ template "service-portmap-content" . }} {{ end }} {{ if .Menu.Connections }} {{ template "service-connections-content" . }} {{ end }} {{ if .Menu.Events }} {{ template "service-events-content" . }} {{ end }}
{{ template "menu-toggle" . }}
{{ end }} {{ define "service-http-content" }}
Add Rule
{{ if eq (len .Tunnel.Https) 0 }} {{ end }} {{ range $http := .Configuration.Https }} {{ with $h := $.GetHTTPService $http.Domain }} {{ if $h }} {{ else }} {{ end }}{{ end }} {{ end }}
Domain Bandwidth Available Encryption Upstream Actions

No rules for HTTP traffic found

HTTP{{ if $http.Secure }}/S{{ end }}:
{{ $http.Domain }}
Daily:
{{ $h.Bandwidth.Daily.String }}

Monthly:
{{ $h.Bandwidth.Monthly.String }}
{{ if $h.Available }} {{ else }} {{ end }} {{ if $http.UseLetsEnc }}
Let's Encrypt {{ else if len $http.CA }}
Custom Certificates {{ else if $http.TLS }}
TLS Proxy {{ else }}
Server TLS{{ end }}
{{ if len $http.Destination }} {{ if $http.Port }} HTTP:
tcp://{{ $http.Destination }}:{{ $http.Port }}

{{ end }} {{ if $http.TLS }} TLS:
tcp://{{ $http.Destination }}:{{ $http.TLS }}

{{ end }} {{ end }} {{ if $http.UpstreamURL }} URL:
{{ $http.UpstreamURL }}

{{ end }} {{ if len $http.WebRoot }} Webroot:
{{ $http.WebRoot }}

{{ end }}
{{ template "admin-remove-http-dialog" . }} {{ end }} {{ define "service-tcp-content" }}
Random Port Custom Port
{{ if eq (len .Tunnel.Ports) 0 }} {{ end }} {{ range $port := .Configuration.Ports }} {{ $p := $.GetPortService $port.Port }} {{ if $p }} {{ else }} {{ end }} {{ end }}
Port Bandwidth Available Destination Host Destination Port

No rules for TCP traffic found

{{ $port.Port }}
Daily:
{{ $p.Bandwidth.Daily.String }}

Monthly:
{{ $p.Bandwidth.Monthly.String }}
{{ if $p.Available }} {{ else }} {{ end }}    {{ $port.Destination }} {{ $port.DstPort }}
{{ template "admin-tun-release-port-dialog" . }} {{ template "admin-service-custom-port-dialog" . }} {{ end }} {{ define "admin-service-custom-port-dialog" }} {{ end }} {{ define "service-portmap-content" }}
Create Port Mapping
{{ if eq (len .Tunnel.PortMappings) 0 }} {{ end }} {{ range $pm := .Tunnel.PortMappings }} {{ end }}
Label Listening Port Destination HTTP Caching Options Actions

No rules for Port Mappings found

{{ if len $pm.Label }}{{ $pm.Label }}{{ else }}Unspecified{{ end }}
{{ $pm.ListenPort }} {{ $pm.Transport }}:{{ $pm.Destination }}:{{ $pm.DstPort }} {{ if $pm.HTTP }} {{ else }} {{ end }}
{{ template "admin-tun-remove-portmap-dialog" . }} {{ end }} {{ define "service-connections-content" }} {{ template "admin-services-access-filter" . }} {{ if eq (len .Metrics) 0 }} {{ end }} {{ range $metric := .Metrics }} {{ end }}
Service Source Address Data Timestamp

No connection metrics.

{{ $.ServiceName $metric.ServiceID.String }} {{ $metric.Address }} {{ $metric.DataUsage }} {{ $metric.Closed.Format "15:04:05" }}
{{ $metric.Closed.Format "Jan 2, 2006" }}
{{ end }} {{ define "admin-services-access-filter" }}
{{ end }} {{ define "service-events-content" }}
{{ if eq (len .Events.Messages) 0 }} {{ end }} {{ range $msg := .Events.Messages }} {{ end }}
Category Level Created Host Value

No events.

{{ $msg.CategoryString }} {{ if eq $msg.Level 1 }} {{ else if eq $msg.Level 2 }} {{ else if eq $msg.Level 3 }} {{ else }} {{ end }} {{ $msg.Created.Format "Jan 2, 15:04:05 2006" }} {{ $msg.Host }} {{ $msg.HTML }}
{{ end }}