Cambiare nome interfaccia di rete a eth0 su Debian 12

Cambiare nome interfaccia di rete a eth0 su Debian 12

 

Cambiare nome interfaccia di rete a eth0 su Debian 12

Guida su come cambiare il nome alle interfaccia di rete a eth0/wlan0, su Debian 11/12 e SysLinuxOS in modo permanente, utilizzando systemd-networkd. Attualmente vengono riconosciute con molteplici nomi, anche abbastanza lunghi e difficili da ricordare. Questi sono assegnati alle interfacce di rete direttamente dal kernel. Ma tutti questi nomi hanno in comune le due iniziali, “en” ” wl”, infatti se si digita il comando:

sudo dmesg | grep -i eth
sudo dmesg | grep -i wl

si può leggere che le interfacce vengono rinominate partendo da eth0 e wlan0. Personalmente conosco due modi funzionanti per ritornare al vecchio standard.

Metodo 1

questo modo dovrebbe funzionare nella maggior parte dei casi e si limita a fare una piccola aggiunta a grub:

sudo nano /etc/default/grub

ed aggiungere

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

come sotto:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

generare un nuovo file di configurazione di grub, e riavviare.

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

se tutto è andato bene le interfacce saranno eth0 e wlan0. Se si usa il dhcp non c’è bisogno di modificare nulla, in caso di ip statico, si utilizza il solito metodo:

sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
dns-nameservers 192.168.1.1
gateway 192.168.1.1
Metodo 2

questo metodo da utilizzare in alternativa al primo, consiste nell’andare a trovare i nomi ed i percorsi delle attuali schede di rete, per poi manualmente creare due file che conterranno i nuovi nomi.

sudo udevadm info /sys/class/net/nome_interfaccia

il comando sopra ci trova i dati che ci interessano:

E: ID_PATH=pci-0000:03:00.0
E: ID_PATH_TAG=pci-0000_03_00_0

di conseguenza potremo creare il file manualmente:

sudo nano /etc/systemd/network/10-rename-nome_interfaccia

ed aggiungere come esempio sotto

per eth0:

[Match]
Path=pci-0000:03:00.0
pci-0000_03_00_0
[Link]
Name=eth0

o questo per wlan0

[Match]
Path=pci-0000:05:00.0
pci-0000_05_00_0
[Link]
Name=wlan0

dopo il riavvio il nome delle interfacce di rete saranno viste permanentemente con il vecchio standard. In realtà ci sarebbe anche un altro metodo, più semplice 🙂 e cioè uno script bash che fa tutto da solo:

Metodo semplice

sempre in alternativa al primo

git clone https://github.com/fconidi/rename-interfaces.git
cd rename-interfaces/
chmod +x rename-interfaces.sh
sudo ./rename-interfaces.sh
sudo reboot

Cambiare nome interfaccia di rete a eth0 su Debian 12

enjoy 😉

 

Convertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Convertire Fumetti Cbr/Cbz in PdfConvertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Uno dei problemi più comuni che gli utenti devono affrontare è la conversione dei file di immagine di fumetti, come i file CBR e CBZ, in formato PDF. Per questo ho creato AllCbrztoPdf, uno script Bash che semplifica notevolmente questo processo. Lo script in questione è stato progettato per eseguire automaticamente la conversione di file CBR e CBZ in formato PDF, utilizzando una serie di comandi Bash standard, rendendo la conversione di grandi quantità di file una questione semplice e veloce.
L’esecuzione dello script è semplice. una volta eseguito scaricherà ed installerà i programmi che servono, per le distribuzioni come Debian based e SysLinuxOS,  poi chiederà all’utente di selezionare una cartella principale tramite Zenity e, successivamente, avvierà la conversione di tutti i file CBR e CBZ in formato PDF all’interno della cartella e delle sue sottocartelle.
Durante la conversione, lo script visualizzerà l’avanzamento tramite pv e creerà un unico file PDF combinato utilizzando pdftk. Infine, lo script salverà il file PDF risultante nella stessa cartella in cui si trovava il file originale. Di default lascerà solo i files PDF e cancellerà TUTTI i file CBR e CBZ.

Download ed utilizzo via GitHub

$ git clone https://github.com/fconidi/AllCbrztoPdf.git
$ cd AllCbrztoPdf/
$ chmod +x allcbrztopdf.sh
$ ./allcbrztopdf.sh

Download ed utilizzo anche via Sourceforge

AllCbrztoPdf script completo:

per le distribuzioni NON Debian based, si possono commentare/eliminare le stringhe con sudo, ed installare i pacchetti tramite il proprio gestore.

Se si volesse mantenere i file CBR/CBZ basta commentare la stringa in fondo rm “$file”

#!/bin/bash
set -xev
sudo apt update
sudo apt upgrade -y
sudo apt install -y pv imagemagick pdftk img2pdf unrar-free rar unrar p7zip-full

# Select the root folder
folder=$(zenity --file-selection --directory --title="Select the root folder")

# Rename all files .cbr to .rar and .cbz to .zip (recursively)
find "$folder" -type f -name "*.cbr" -execdir rename 's/ /_/g' '{}' \;
find "$folder" -type f -name "*.cbr" -execdir mv '{}' '{}'.rar \;
find "$folder" -type f -name "*.cbz" -execdir rename 's/ /_/g' '{}' \;
find "$folder" -type f -name "*.cbz" -execdir mv '{}' '{}'.zip \;

# Convert all files .cbr and .cbz to PDF (recursively)
find "$folder" -type f \( -name "*.rar" -o -name "*.cbr" -o -name "*.zip" -o -name "*.cbz" \) |
while read file; do
ORIGINAL_FOLDER=$(dirname "$file")
TMP_FOLDER=$(mktemp -d)
cd "$TMP_FOLDER"
case "$file" in
*.rar|*.cbr)
unrar e "$file" "$TMP_FOLDER"
;;
*.zip|*.cbz)
unzip -j "$file" -d "$TMP_FOLDER"
;;
esac
ls -1 ./*jpg ./*jpeg ./*png | pv -lep -s $(ls -1 ./*jpg ./*jpeg ./*png | wc -l) | xargs -L1 -I {} img2pdf {} -o {}.pdf
pdftk *.pdf cat output combined.pdf
cp "$TMP_FOLDER/combined.pdf" "$ORIGINAL_FOLDER/$(basename "$file" .cbr | sed 's/.rar$//;s/.zip$//;s/.cbz$//').pdf"
rm -rf "$TMP_FOLDER"
rm "$file"
done

zenity --info --text="Conversion completed!"

PS: script aggiornato su GitHub o SourceForge

 

Convertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Video:

 

enjoy 😉

 

Fix error Possible missing firmware /lib/firmware/i915

 

Fix error Possible missing firmware /lib/firmware/i915Fix error Possible missing firmware /lib/firmware/i915

 

Questi tipo di errori sono presente oramai da qualche anno e si presentano quando si lancia il comando:

sudo update-initramfs -u

questi errori segnalano che ci sono dei firmware mancanti e si riferiscono alle microarchitetture intel come:

Sky Lake, Broxton, Kaby Lake, Commet Lake, Ice Lake, Elkhart Lake, Tiger Lake, Gemini Lake, Alder Lake,Arc Alchemist.

Per risolvere il problema su Debian, SysLinuxOS ed altre distro, basta scaricare da GitHub il mio script bash, che si occuperà di scaricare tutti i firmware .bin, compararli con quelli già presenti, per poi copiare solamenti quelli mancanti in /lib/firmware/i915.

Per utilizzare fixi915.sh eseguire i seguenti comandi:

$ git clone https://github.com/fconidi/fix-firmware-i915.git
$ cd fix-firmware-i915/
$ chmod +x fixi915.sh
$ ./fixi915.sh

questo è tutto!

 

Di seguito lo script completo:

 

#!/bin/bash

# Source: https://francoconidi.it/fix-error-possible-missing/
# Source: https://syslinuxos.com

# Install curl, wget, lynx

sudo apt update; sudo apt install -y wget curl lynx

# folder creation
mkdir /home/$USER/i915; cd /home/$USER/i915

# Download the web page and use lynx to extract the HTTP/HTTPS links

lynx -dump "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/" | grep -o 'https\?://[^ ]*\.bin' > /home/$USER/i915/links.txt

# Download the .bin files from the list of links
while read -r line
do
# Extract the filename from the link
filename=$(basename "$line")

# Download the file from the link using curl
curl -OJL "$line"

# Rename the downloaded file to its original name
mv "$filename" "${filename%.*}.bin"
done < "links.txt"

# Two folders to compare
folder1="/home/$USER/i915"
folder2="/lib/firmware/i915/"

# Check folders
if [ ! -d "$folder1" ]; then
echo "Error: First folder does not exist."
exit 1
fi

if [ ! -d "$folder2" ]; then
echo "Error: Second folder does not exist."
exit 1
fi

# Cycle through the files in the first folder
for file1 in "$folder1"/*.bin; do
# Extract the filename without the path
filename="$(basename "$file1")"
# Check if the file exists in the second folder
if [ ! -f "$folder2/$filename" ]; then
# Copy the missing file into the second folder
sudo cp "$file1" "$folder2"
echo "The file $filename has been copied to the second folder."
fi
done

echo "The check has been completed."

# Update initramfs
sudo update-initramfs -u

echo "Fix missing firmware has been completed."

 

Fix error Possible missing firmware /lib/firmware/i915

 

enjoy 😉

 

Creare VLAN in Linux utilizzando il comando ip

 

Per creare VLAN in SysLinuxOS e Debian GNU/Linux utilizzando il comando ip, seguire questi passaggi:

sudo apt-get install vlan

Caricare il modulo del kernel 8021q utilizzando il comando modprobe:

sudo modprobe 8021q

verificare:

lsmod | grep 8021q

output:

edmond@syslinuxos:~$ lsmod | grep 8021q
8021q 40960 0
garp 16384 1 8021q
mrp 20480 1 8021q

Creare una sottointerfaccia VLAN per l’interfaccia di rete desiderata. Ad esempio, per creare una sottointerfaccia VLAN per eth0 con un ID VLAN 10, eseguire il comando:

sudo ip link add link eth0 name eth0.10 type vlan id 10

Assegnare un indirizzo IP alla nuova sottointerfaccia VLAN utilizzando il comando ip addr. Ad esempio, per assegnare l’indirizzo IP 192.168.10.1/24 alla nuova sottointerfaccia VLAN, eseguire il comando:

sudo ip addr add 192.168.10.1/24 dev eth0.10

Attivare la nuova sottointerfaccia VLAN utilizzando il comando ip link:

sudo ip link set dev eth0.10 up

Ripetere i passaggi precedenti per creare ulteriori sottointerfacce VLAN se necessario. Per rendere la configurazione VLAN persistente dopo il riavvio, aggiungere le seguenti righe al file /etc/network/interfaces:

sudo nano /etc/network/interfaces

aggiungere:

auto eth0.10
iface eth0.10 inet static
address 192.168.10.1
netmask 255.255.255.0

successivamente caricare permanentemente il modulo al boot:

sudo su -c 'echo "8021q" >> /etc/modules'

Riavviare il servizio di rete per applicare le modifiche:

sudo systemctl restart networking.service

Ecco fatto! Hai creato una sottointerfaccia VLAN in Linux utilizzando il comando ip.

enjoy 😉

 

Installare Zabbix su SysLinuxOS e Debian 11

 

Installare Zabbix su SysLinuxOS e Debian 11

Installare Zabbix su SysLinuxOS e Debian 11

Zabbix è un sistema di monitoraggio di rete e server open-source, che consente di tenere sotto controllo la disponibilità, la performance e lo stato degli apparati di rete, dei server e delle applicazioni. Zabbix è in grado di raccogliere dati da vari tipi di dispositivi, come server, switch, router, firewall, sensori e applicazioni, e di analizzarli per identificare eventuali problemi o anomalie. Inoltre, permette di definire soglie di allarme e di notificare gli amministratori di sistema in caso di problemi tramite vari canali, come e-mail, SMS, messaggi instantanei, ecc.
Zabbix è altamente flessibile e personalizzabile, grazie alla sua architettura modulare e al supporto di numerose estensioni e plugin. Inoltre, offre una vasta gamma di funzionalità avanzate, come la visualizzazione grafica dei dati, la generazione di report, la gestione di agenti distribuiti, la tracciabilità degli eventi, la gestione delle configurazioni, ecc. Zabbix è una soluzione affidabile e scalabile, adatta a soddisfare le esigenze di monitoraggio di qualsiasi tipo di infrastruttura, dalle piccole alle grandi imprese.

Ecco i passi per installare Zabbix su SysLinuxOS e Debian 11 con MariaDB e Apache2:

Passo 1 – Aggiornare il sistema:
$ sudo apt update
$ sudo apt upgrade
Passo 2 – Scaricare la versione di  Zabbix dal sito
$ wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bdebian11_all.deb
$ sudo dpkg -i zabbix-release_6.2-4+debian11_all.deb
$ sudo apt update

Installare i pacchetti necessari:

$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Passo 3 – Installare Mariadb e Apache2
sudo apt install mariadb-server mariadb-client

Configurare il database MariaDB:

sudo mysql_secure_installation

Seguire le istruzioni per configurare il server MariaDB. Creare un nuovo utente e un nuovo database:

sudo mysql -u root -p
CREATE DATABASE zabbixdb CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'zabbixuser'@'localhost' IDENTIFIED BY 'PASSWORD_FORTE';
GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbixuser'@'localhost';
FLUSH PRIVILEGES;
exit;
Passo 4 – Configurare il server Zabbix:
sudo nano /etc/zabbix/zabbix_server.conf

Verificare ed aggiornare i seguenti parametri:

DBName=zabbixdb
DBUser=zabbixuser
DBPassword=PASSWORD_FORTE

Salvare e chiudere il file.

Importare lo schema del database:

sudo zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | sudo mysql -u zabbixuser -p zabbixdb

inserire password creato sopra

Passo 5 – Configurare Apache2:
sudo nano /etc/apache2/conf-available/zabbix.conf

modificare eventualmente le seguenti linee:

php_value max_execution_time 300
php_value memory_limit 512M
php_value post_max_size 32M
php_value upload_max_filesize 256M
php_value max_input_time 300
php_value date.timezone Europe/Rome

Attivare il modulo Apache2:

sudo a2enconf zabbix.conf

Riavviare Apache2 e il server Zabbix:

sudo systemctl restart apache2
sudo systemctl restart zabbix-server
sudo systemctl enable zabbix-server zabbix-agent apache2
Passo 6 – Accedere alla pagina web di Zabbix:
http://<tuo_indirizzo_ip_server>/zabbix

Seguire le istruzioni per completare l’installazione.

Installare Zabbix su SysLinuxOS e Debian 11

 

enjoy 😉

 

Configurare Wake-on-LAN usando systemd

 

Configurare Wake-on-LAN usando systemd

Configurare Wake-on-LAN usando systemd

 

Configurare Wake-on-LAN usando systemd per inviare un magic packet sulla rete. Per utilizzare questa funzione, è necessario abilitare il supporto WoL nel BIOS/UEFI e configurare il sistema operativo per rilevare e rispondere ai pacchetti magici. In questa guida, vedremo come configurare Wake-on-LAN su un sistema Debian, SysLinuxOS utilizzando systemd.

Passo 1 – Verificare la compatibilità hardware

Prima di procedere, è importante verificare che il dispositivo di rete del computer supporti Wake-on-LAN. È possibile farlo eseguendo il seguente comando:

 
sudo ethtool <interface-name> | grep "Wake-on"

dove <interface-name> è il nome dell’interfaccia di rete (ad esempio eth0 o enp3s0). Se il comando restituisce una riga con “Wake-on: d“, significa che la scheda di rete supporta WoL.

edmond@SysLinuxOS:~$ sudo ethtool enp3s0 | grep "Wake-on"
Supports Wake-on: pumbg
Wake-on: d
$ sudo ethtool enp3s0
edmond@SysLinuxOS:~$ sudo ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: unknown
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: d
Link detected: no

la lettera d, significa che WOL sulla scheda è disabilitato, per abilitarlo con g:

$ sudo ethtool --change enp3s0 wol g

il comando sopra però è provvisorio.

Passo 2 – Configurare systemd per abilitare Wake-on-LAN al boot
$ sudo tee /etc/systemd/network/10-enp3s0.link << EOF
[Match]
MACAddress=e8:d8:d1:86:cd:ce

[Link]
WakeOnLan=magic
EOF

dove <MAC-address> è l’indirizzo MAC della scheda di rete del computer.

Passo 3 – Identificare il pc in rete

Determinare l’indirizzo MAC del dispositivo di destinazione che si desidera risvegliare:

$ ip neigh show
Passo 4 – Testare Wake-on-LAN

Per testare Wake-on-LAN, inviare un pacchetto magico sulla rete utilizzando uno strumento come wakeonlan o etherwake:

$ sudo apt-get install wakeonlan etherwake

comandi:

$ sudo etherwake -i <nome_interfaccia> <indirizzo_MAC>
$ sudo wakeonlan <indirizzo_MAC>

Il computer dovrebbe avviarsi dopo aver ricevuto il pacchetto magico.

Conclusioni

In questa guida, abbiamo visto come configurare Wake-on-LAN su un sistema Debian GnuLinux, SysLinuxOS,  utilizzando systemd. Questa funzionalità può essere utile per accendere un computer a distanza e risparmiare energia evitando di tenerlo acceso costantemente.

Configurare Wake-on-LAN usando systemd

 

enjoy 😉

Connessione wifi da terminale via nmcli

Connessione wifi da terminale via nmcli

Connessione wifi da terminale via nmcli

Come configurare la connessione wireless utilizzando il terminale ed nmcli Nelle distribuzioni Linux come Debian e SysLinuxOS, la connessione wireless può essere configurata utilizzando l’interfaccia grafica del sistema Network Manager, ma in alcuni casi può essere necessario utilizzare la riga di comando. In questa guida vedremo come configurare la connessione wireless utilizzando il terminale

In primo luogo, è necessario identificare il nome dell’interfaccia wireless utilizzando il comando seguente:

$ nmcli device status

L’output del comando mostrerà l’elenco delle interfacce di rete disponibili. In questo esempio, l’interfaccia wireless è denominata “wlo1“. Successivamente, è possibile connettersi a una rete wireless WPA/WPA2 utilizzando il comando seguente:

$ nmcli device wifi connect ID ifname wlo1 password PASSWORD_RETE private yes hidden no

Dove “ID” è il nome della rete wireless e “PASSWORD_RETE” è la password della rete wireless. Inoltre, in questo esempio “wlo1” è il nome dell’interfaccia wireless. Se la connessione viene stabilita correttamente, è possibile verificare lo stato della connessione utilizzando il comando seguente:

$ nmcli connection show
disconnettersi dalla rete wireless attualmente connessa:
$ nmcli device disconnect wlo1

visualizzare le informazioni dettagliate sulla connessione wireless attiva:

$ nmcli connection show ID --show-secrets

consultare l’elenco delle reti wireless disponibili, inclusi i loro canali, la qualità del segnale e altri dettagli:

$ nmcli device wifi list
mostrare password in chiaro e QRcode:
$ nmcli device wifi show-password ifname wlo1
rimuovere una connessione wireless:
$ nmcli connection delete ID
Interfaccia grafica:
$ nm-connection-editor
Connessione wifi da terminale via nmcli
enjoy 😉

 

Monitorare Raspberry Pi con RPI-Monitor

 

Monitorare Raspberry Pi con RPI-Monitor

Monitorare Raspberry Pi con RPI-Monitor

 

Guida su come monitorare via Web UI un server Raspberry Pi utilizzando RPI-Monitor.

sudo apt update
sudo apt install dirmngr -y
sudo wget http://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E4E362DE2C0D3C0F
sudo apt update
sudo apt install rpimonitor
sudo /etc/init.d/rpimonitor update

abilitare rpi-monitor allo startup come servizio:

sudo nano /etc/systemd/system/rpimonitor.service

ed inserire le righe sotto:

[Unit]
Description=RPi-Monitor daemon
Before=multi-user.target
After=remote-fs.target
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
Restart=on-failure
KillMode=mixed
Nice=19
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/rpimonitord
ExecStop=/bin/kill $MAINPID
StandardOutput=append:/var/log/rpimonitor.log
StandardError=append:/var/log/rpimonitor.log

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable rpimonitor

a questo punto si può accedere ad rpi-monitor all’indirizzo:

http://ip_address:8888

Monitorare Raspberry Pi con RPI-Monitor

enjoy 😉

 

TorrentBox con qBittorrent su Raspberry Pi

Torrentbox con qBittorrent su Raspberry Pi

TorrentBox con qBittorrent su Raspberry Pi

Guida su come installare qBittorrent su Raspberry Pi, per ottenere un server Torrent e scaricare files h24 in sicurezza.

Login via ssh su Raspberry Pi

sudo apt update
sudo apt install qbittorrent-nox -y

Aggiungere l’utente qbitorrent al sistema come non root

sudo useradd -r -m qbittorrent
sudo usermod -a -G qbittorrent $USER

Creazione servizio:

sudo nano /etc/systemd/system/qbittorrent.service

ed inserire:

[Unit]
Description=BitTorrent Client
After=network.target

[Service]
Type=forking
User=qbittorrent
Group=qbittorrent
UMask=002
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

Avvio qBittorrent:

sudo systemctl start qbittorrent
sudo systemctl enable qbittorrent

Adesso abbiamo Accesso alla WEB UI con utente admin e password adminadmin

http://ip_address:8080

1) cambiare user e password

TorrentBox con qBittorrent su Raspberry Pi

2) installare una vpn

TorrentBox con qBittorrent su Raspberry Pi

enjoy 😉

 

Condividere terminale via Browser con ttyd

 

Condividere terminale via Browser con ttyd

 

Condividere terminale via Browser con ttyd

Guida su come condividere il proprio terminale via web browser utilizzando ttyd. Questo trucco è molto utile soprattutto se si vuole mostrare il terminale e di conseguenza renderlo leggibile a tutti, utilizzando lo zoom del proprio browser.

$ sudo apt update
$ sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
$ git clone https://github.com/tsl0922/ttyd.git
$ cd ttyd
$ mkdir build; cd build
$ cmake ..
$ sudo make; sudo make install

Avviare da terminale con il comando:

$ ttyd -p 8080 bash

poi aprire il browser all’indirizzo:

http://localhost:8080

e continuare ad eseguire i comandi nella pagina web.

enjoy 😉