Gli utenti dei principali browser Web sono abituati ad avere come home pagine una pagina bianca con i segnalibri o i siti Internet più visitati, se non direttamente la pagina del motore di ricerca selezionato, solitamente Google. Tuttavia è possibile impostare come propria home page qualsiasi pagina web, anche una completamente personalizzata ed ospitata in locale.
Nell'articolo di oggi vogliamo parlarvi di Dashy. Si tratta di un'applicazione open source che consente di realizzare una Dashboard personalizzata contenuta all'interno di una pratica pagina web ospitata in locale su di un server Linux.
Cosa è Dashy
Dashy permette di creare un cruscotto personalizzato con i link dei principali servizi che utilizziamo. In tale Dashboard si possono ovviamente inserire varie icone, aggiungere elementi per adottare il nostro layout preferito o eseguire degli script JavaScript per ottenere funzionalità avanzate sfruttando l'integrazione con le API dei web service compatibili.
Si tratta di un programma molto leggero e può essere sfruttato su un ampio ventaglio di configurazioni hardware, potenzialmente anche su una board ARM low-cost come Raspberry Pi.
Il progetto è stato realizzato in JavaScript usando il framework Vue.js. Nello specifico i suoi developer la definisco come una self-hostable personal dashboard che consente un elevato livello di personalizzazione tramite widget e dispone di un proprio UI editor. Inoltre è possibile impostare dei pratici sistemi di monitoraggio in tempo reale connessi alle applicazioni compatibili.
In questo tutorial ci focalizzeremo su come installare e configurare Dashy in un server Linux. Dashy può essere sfruttato anche in contesti aziendali per creare una pratica Dashboard dedicata ai principali strumenti utilizzati dai collaboratori.
Requisiti hardware
Per questo progetto è sufficiente un qualsiasi PC anche datato o, come accennato, una semplice board ARM. Consigliamo inoltre di connettere il tutto direttamente al router tramite cavo ethernet, cosi da ottenere le migliori performance di rete possibili.
Installazione di Docker su Linux
La nostra distribuzione di riferimento è nello specifico Debian e utilizzeremo Dashy tramite un container Docker. Potenzialmente potete scegliere qualsiasi distribuzione, basta che sia possibile installarvi Docker.
Iniziamo accertandoci che il sistema operativo sia aggiornato con le ultime edizione dei pacchetti software:
sudo apt update && sudo apt upgrade -y
Tramite l'opzione -y
abbiamo indicato al gestore di pacchetti di rispondere in modo affermativo ad ogni domanda. Se non eseguite aggiornamenti da diversi mesi vi consigliamo di tenere d'occhio la shell durante l'upgrade, perché dopo l'aggiornamento alcuni programmi potrebbero funzionare diversamente rispetto alle build più datate.
Terminato l'aggiornamento del sistema possiamo finalmente installare Docker. Quindi scarichiamo l'apposito installer con curl:
curl -sSL https://get.docker.com | sh
e avviamo l'installazione:
sudo sh get-docker.sh
Inseriamo poi il nostro utente nell'apposito gruppo docker
:
sudo usermod -aG docker nomedelvostroutente
Infine impostiamo Docker perché venga eseguito in automatico ad ogni avvio del sistema con systemd:
sudo systemctl enable docker.service && sudo systemctl enable containerd.service
systemd è ormai uno standard in ambito Linux. Tuttavia ci sono alcune distribuzioni che per motivi etici non lo adottano. Dunque se usate un sistema di gestione dei demoni diverso dovrete consultare il manuale della distribuzione per capire come aggiungere Docker tra i programmi presenti al boot.
Installazione e configurazione del container di Dashy
Passiamo quindi all'installazione e configurazione del container Docker di Dashy. Prima di tutto è necessario creare una directory dove posizionare i file necessari:
sudo mkdir -p /opt/stacks/dashy
Quindi spostiamoci dentro di essa:
cd /opt/stacks/dashy
e generiamo il Docker compose file con l'editor di testo nano:
sudo nano compose.yaml
che va completato in questo modo:
version: "3.8"
services:
dashy:
image: lissy93/dashy
container_name: Dashy
volumes:
- ./config.yml:/app/public/conf.yml
ports:
- 4000:80
environment:
- NODE_ENV=production
- UID=1000
- GID=1000
restart: unless-stopped
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s
Salviamo le modifiche apportate con la combinazione di tasti CTRL+O e chiudiamo il programma con CTRL+X.
Ora dobbiamo generare il file di configurazione della dashboard, possiamo impostare questa pagina come preferiamo. Per semplicità ci limiteremo a prelevare una configurazione d'esempio dal portale Web del progetto:
sudo nano config.yml
---
# Page meta info, like heading, footer text and nav links
pageInfo:
title: Dashy
description: Welcome to your new dashboard!
navLinks:
- title: GitHub
path: https://github.com/Lissy93/dashy
- title: Documentation
path: https://dashy.to/docs
# Optional app settings and configuration
appConfig:
theme: colorful
# Main content - An array of sections, each containing an array of items
sections:
- name: Getting Started
icon: fas fa-rocket
items:
- title: Dashy Live
description: Development a project management links for Dashy
icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png
url: https://live.dashy.to/
target: newtab
- title: GitHub
description: Source Code, Issues and Pull Requests
url: https://github.com/lissy93/dashy
icon: favicon
- title: Docs
description: Configuring & Usage Documentation
provider: Dashy.to
icon: far fa-book
url: https://dashy.to/docs
- title: Showcase
description: See how others are using Dashy
url: https://github.com/Lissy93/dashy/blob/master/docs/showcase.md
icon: far fa-grin-hearts
- title: Config Guide
description: See full list of configuration options
url: https://github.com/Lissy93/dashy/blob/master/docs/configuring.md
icon: fas fa-wrench
- title: Support
description: Get help with Dashy, raise a bug, or get in contact
url: https://github.com/Lissy93/dashy/blob/master/.github/SUPPORT.md
icon: far fa-hands-helping
Anche in questo caso salviamo con CTRL+O e chiudiamo il file con CTRL+X. Dobbiamo ora assicurarci che il file sia accessibile all'utente che andrà ad eseguire il container. Quindi lanciamo questo comando in bash:
sudo chown 1000:1000 ./config.yml
Ora siamo pronti per avviare il container Docker di Dashy:
docker compose up -d
Accedere alla dashboard di Dashy
A questo possiamo accedere alla dashboard appena generata. Apriamo il nostro browser web di riferimento e digitiamo nella barra degli URL:
192.168.1.12:4000
La prima parte dell'URL è l'IP locale del nostro server Linux. Se non ricordate l'IP del device potete reperirlo o tramite l'interfaccia del router o con questo comando da shell:
hostname -I
La seconda parte dell'URL è la porta 4000
, quella su cui è in ascolto Dashy. Questo dato è reperibile all'interno del Docker compose file generato poco prima.
Fatto questo potrete procedere come desiderate e personalizzare la dashboard in base alle vostre esigenze. Se avete bisogno di alcune dritte vi rimandiamo alla documentazione ufficiale di Dashy presente nel sito web ufficiale del progetto.