🫒Using OliveTin to Provide a Dashboard for Debian🐧
OliveTin offers secure, easy-to-use web access for pre-set shell commands

I have created a dashboard using Olive Tin which can be downloaded from github:
Its in the list of tools that I use:

Here is my example configuration file for OliveTin:
listenAddressSingleHTTPFrontend: 0.0.0.0:1337
pageTitle: Fusion Edge Panel
showFooter: false
# Choose from INFO (default), WARN and DEBUG
logLevel: "INFO"
actions:
- title: Node Information
shell: fastfetch -c /etc/fastfetch/fusion.jsonc --pipe false
icon: "🚨"
popupOnStart: execution-dialog-stdout-only
- title: Node IP Addresses
shell: displayedgeIPs.sh
icon: "📚"
popupOnStart: execution-dialog-stdout-only
- title: Test the Internet
shell: TERM=xterm prettyping --last 20 --rttmin 1 --rttmax 40 -c 60 1.1.1.1
icon: "🫠"
popupOnStart: execution-dialog
- title: Check disk space
icon: disk
shell: df -h /media
popupOnStart: execution-dialog-stdout-only
- title: check console logs
shell: dmesg | tail
icon: logs
popupOnStart: execution-dialog
- title: Display Bonding Logs
shell: timeout 5s bondlog -f -n 100
icon: "🪵"
timeout: 10
popupOnStart: execution-dialog-stdout-only
- title: Display Netify Agent
shell: netifyd -s
icon: "🥅"
popupOnStart: execution-dialog-stdout-only
- title: Ping host
shell: ping {{ host }} -c {{ count }}
icon: ping
timeout: 100
popupOnStart: execution-dialog-stdout-only
arguments:
- name: host
title: Host
type: ascii_identifier
default: example.com
description: The host that you want to ping
- name: count
title: Count
type: int
default: 3
description: How many times to do you want to ping?
- title: Start the Remote Access for eports
shell: systemctl eport@client1 stop
icon: "🚀"
popupOnStart: execution-dialog-stdout-only
- title: Stop the Remote Access for eports
shell: systemctl eport@client1 stop
icon: "🛑"
popupOnStart: execution-dialog-stdout-only
- title: Speedtest on Node
shell: speedtest --simple --share
icon: "🏃"
popupOnStart: execution-dialog
- title: Speedtest on WAN interface
shell: speedtest --simple --share -a {{ WAN }}
icon: "🏃"
popupOnStart: execution-dialog-stdout-only
arguments:
- name: WAN
title: WAN interface
type: ascii_identifier
description: Select appropriate interface.
choices:
- title: WAN1
value: eth1
- title: WAN2
value: eth2
- title: WAN3
value: eth3
- title: MTR on Node
shell: mtr -r 1.1.1.1
icon: "👷"
popupOnStart: execution-dialog
- title: MTR on WAN Interface
shell: mtr -T -r -a mtr -a $(ip -4 addr show {{ WAN }} | grep -oP '(?<=inet\s)\d+(\.\d+){3}') {{ target }}
icon: "👷"
popupOnStart: execution-dialog-stdout-only
arguments:
- name: target
title: Target IP
type: ascii_identifier
default: 1.1.1.1
description: The target IP address
- name: WAN
title: WAN interface
type: ascii_identifier
description: Select appropriate interface.
choices:
- title: WAN1
value: eth1
- title: WAN2
value: eth2
- title: WAN3
value: eth3
- title: Test DNS on Connected IP
shell: dig @$(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | sed -n '2p') {{ dhost }}
icon: "🧗"
popupOnStart: execution-dialog
arguments:
- name: dhost
title: Target DNS name
type: ascii_identifier
default: fusionsdwan.co.za
description: The target DNS name
- title: Show IP Neighbors (Phones, APs, switches, routers, etc.)
shell: lldpcli show neighbors summary
icon: "🚧"
popupOnStart: execution-dialog
- title: Nmap scan of the LAN
shell: nmap -sn $(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}/\d+' | sed -n '2p' | awk -F'[/.]' '{printf "%d.%d.%d.0/%d\n", $1, $2, $3, $5}')
icon: "👓"
popupOnStart: execution-dialog
- title: Nmap scan of a host
shell: nmap -sV --script=smb* fusionsdwan.co.za {{ nhost }}
icon: "🩻"
popupOnStart: execution-dialog
arguments:
- name: nhost
title: Target for scan
type: ascii_identifier
default: 8.8.8.8
description: IP address (or subnet)
- title: Devices connected on LAN
shell: arp-scan -I eth0 $(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}/\d+' | sed -n '2p' | awk -F'[/.]' '{printf "%d.%d.%d.0/%d\n", $1, $2, $3, $5}')
icon: "🥷"
popupOnStart: execution-dialog-stdout-only
Here OliveTin displays the result from the fastfetch tool:

The configuration file used for fastfetch is:
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"modules": [
"title",
"separator",
"os",
"host",
"bios",
"bootmgr",
"board",
"chassis",
"kernel",
"initsystem",
"uptime",
"loadavg",
"processes",
"packages",
"lm",
"de",
"wm",
{
"type": "cpu",
"showPeCoreCount": true,
"temp": true
},
"cpucache",
"cpuusage",
"memory",
"physicalmemory",
"swap",
"disk",
"battery",
"poweradapter",
"player",
"media",
"publicip",
{
"type": "localip",
"showMac": true
},
"wifi",
"datetime",
"locale",
"vulkan",
"opengl",
"opencl",
"users",
"bluetooth",
"sound",
"camera",
"gamepad",
{
"type": "weather",
"timeout": 1000
},
"netio",
"diskio",
{
"type": "physicaldisk",
"temp": true
},
"version",
"break",
"colors"
]
}
The fastfetch binary used for Debian Buster is:
👉 https://github.com/fastfetch-cli/fastfetch/releases/download/2.16.0/fastfetch-linux-amd64.tar.gz
fastfetch is a replacement of neofetch which is a great tool but it has been sunsetted hence the use of fastfetch.
Here are the IPs on the device:

The command to display that is too long so a script is used:
#!/bin/bash
echo "WAN1 IP Address: $(ip -4 addr show eth1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)"; echo "WAN2 IP Address: $(ip -4 addr show eth2 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)"; echo "WAN3 IP Address: $(ip -4 addr show eth3 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)"; echo "LAN Local: $(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)"; echo "LAN Gateway: $(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | sed -n '2p')"; echo "Public IP Address: $(curl -s ifconfig.me)"
This is a one minute test to the Internet and this case I'm using Cloudflare's 1.1.1.1 as the target. The tool being used is prettyping, which provides the same look and feels as the extended ping of the Cisco cli.

The tool displays the disk space on the device:

The tool displays the console log:

Display from 3rd party networking logs:

Status from 3rd party tool:

Results of speedtest on WAN interface:

IPs and devices on the LAN:

Ronald Bartels ensures that Internet inhabiting things are connected reliably online at Fusion Broadband South Africa - the leading specialized SD-WAN provider in South Africa. Learn more about the best SD-WAN in the world: 👉 Contact Fusion




