Oggi è molto comune affidarsi a delle applicazioni che permettono di organizzare e tenere traccia dei nostri task quotidiani. Questi software stanno diventato sempre più comuni tra i professionisti cha hanno la necessità di organizzare in modo minuzioso la propria schedule giornaliera. Per molti utenti i sistemi di time-tracker sono infatti essenziali per garantire una produttività costante
In questa guida vogliamo parlarvi di un pratico time-tracker open source chiamato TimeTagger. Si tratta nello specifico di un time management tool web-based, pensato appunto per tenere traccia di ogni nostro impegno quotidiano tramite una comoda interfaccia web.
Cosa è time-tracker
Questo software consente di creare un task all'interno di un calendario e di far partire un timer correlato all'evento specifico. Tramite gli hashtag è possibile raggruppare diversi task all'interno di un gruppo, elemento davvero utile quando si è all'opera su diversi progetti dedicati a vari clienti.
TimeTagger è inoltre una soluzione self-hosted, quindi svincolata dalle piattaforme cloud. Questo permette all'utente di slegarsi dai subscription plan e di lasciare tutti quanti i dati contenuti all'interno del proprio profilo completamente in locale, evitando quindi di esporsi a possibili data breach. Dunque gli utenti interessanti alla riservatezza dei propri dati possono trovare in TimeTagger un valido alleato.
TimeTagger è un programma molto leggero e può essere eseguito su qualsiasi configurazione hardware. Nel tutorial di oggi vi spiegheremo come installarlo su Raspberry Pi.
Questa piccola board ARM low-cost è perfetta per tale utilizzo, infatti viste le sue ridotte dimensioni può essere collocata dove si preferisce. Inoltre, grazie alla sua architettura consuma veramente poca energia, soprattutto nei momenti di standby. Raspberry Pi è poi molto versatile, quindi oltre a TimeTagger è in grado di ospitare un sistema Linux completo ed eseguire qualsiasi software utile al workflow dell'utente.
Raspberry Pi e requisiti hardware
Per questo progetto serve quindi Raspberry Pi. In rete è possibile reperire diversi modelli della board ARM. Se dovete partire da zero vi consigliamo di usare direttamente l'edizione più recente, in questo momento Raspberry Pi 5, cosi da ottenere anche le migliori prestazioni.
Oltretutto dovete dotarvi di una microSD per il sistema operativo e gli applicativi. Se avete intenzione di configurare il device senza sfruttare SSH vi serviranno poi tutte le periferiche di contorno. Ovvero: mouse, tastiera, monitor, cavi HDMI, ethernet cat 6 e USB-C per l'alimentazione.
Installazione e configurazione di Raspberry Pi OS
Potenzialmente è possibile installare TimeTagger su qualsiasi distribuzione Linux. Infatti andremo ad eseguire TimeTagger all'interno di un container Docker.
Quindi non siete obbligati ad utilizzare Raspberry Pi OS. Se preferite affidarvi ad altri sistemi Linux potete saltare questa parte della guida e passare direttamente al capitolo "Installazione e configurazione del container Docker di TimeTagger".
Per procedere all'installazione di Raspberry Pi OS sulla microSD è necessario scaricare un imaging tool chiamato Raspberry Pi Imager. Si tratta di un programma molto completo e facile da utilizzare per qualsiasi tipologia di utente. Quindi anche coloro che sono alle prime armi con il mondo Linux e con Raspberry Pi non avranno problemi.
Dopo aver eseguito il download di Raspberry Pi Imager avviamo il programma.
Clicchiamo su "Choose Device" ed impostiamo il modello di dispositivo che stiamo usando.
Successivamente, con "Choose OS", selezioniamo la release di Raspberry Pi OS a 64bit mentre da "Choose Storage" impostiamo la microSD dove posizionare la distribuzione.
Adesso selezioniamo "Next". A questo punto si deve decidere se configurare sin da subito alcuni aspetti della distribuzione oppure avviarla con dei setting standard. Noi consigliamo di sfruttare l'opzione "EDIT SETTING" e impostare: l'accesso tramite SSH sin dal primo boot, un hostname, la time zone ed il keyboard layout.
Confermiamo le nostre scelte cliccando su "YES" cosi da avviare il processo di flash che dovrebbe durare qualche minuto.
Installazione di Docker su Raspberry Pi OS
Dopo aver eseguito il primo boot del Raspberry Pi passiamo all'installazione e configurazione del sistema di container Docker. Scarichiamo l'apposito installer:
curl -sSL https://get.docker.com | sh
ed avviamo l'installazione:
sudo sh get-docker.sh
Inseriamo poi il nostro utente nell'apposito gruppo docker
:
sudo usermod -aG docker nomedelvostroutente
ed impostiamo Docker per eseguirsi in automatico ad ogni avvio del sistema con systemd:
sudo systemctl enable docker.service && sudo systemctl enable containerd.service
Installazione e configurazione del container Docker di TimeTagger
Passiamo finalmente alla creazione del container di TimeTagger. Prima di tutto installiamo alcuni pacchetti, tramite il package manager APT, che sono necessari per il corretto funzionamento di TimeTagger:
sudo apt install sed apache2-utils
ora andiamo a creare un directory dedicata ai nostri scopi:
sudo mkdir -p /opt/stacks/timetagger
cd /opt/stacks/timetagger
Prima di generare il Docker compose file è necessario ottenere le credenziali d'accesso per TimeTagger. Questo programma sfrutta bcrypt per il password hashing. Quindi ci affideremo al pacchetto htpasswd
per generare una stringa apposita da inserire all'interno del Docker compose file:
htpasswd -bnBC 8 "" <LATUAPASSSWORD> | tr -d ':\n' | sed 's/$2y/$2a/; s/\$/$$/g'; echo
Come output dovremmo ottenere una stringa del genere:
$$2agaegi0aegh9fhaeagf3314123Ol1823rh1rb109r8fb108fb13
tale stringa deve essere utilizzata inserendo il nome del nostro utente prima di essa:
nomedelvostroutente:$$2agaegi0aegh9fhaeagf3314123Ol1823rh1rb109r8fb108fb13
Quindi finalmente possiamo creare il Docker compose file con nano:
sudo nano compose.yaml
che deve essere compilato cosi:
version: "3"
services:
timetagger:
image: ghcr.io/almarklein/timetagger
ports:
- "8989:80"
volumes:
- /opt/stacks/timetagger/data:/root/_timetagger
environment:
- TIMETAGGER_BIND=0.0.0.0:80
- TIMETAGGER_DATADIR=/root/_timetagger
- TIMETAGGER_LOG_LEVEL=info
- TIMETAGGER_CREDENTIALS=<nomedelvostroutente:$$2agaegi0aegh9fhaeagf3314123Ol1823rh1rb109r8fb108fb1>
Salviamo le modifiche con CTRL+O e chiudiamo nano con CTRL+X.
e finalmente avviamo il tutto:
docker compose up -d
Accedere alla Web Interface di TimeTagger
Possiamo quindi accedere all'interfaccia web di TimeTagger per iniziare ad utilizzarlo per i nostri scopi. Il programma è accessibile tramite web browser, basta digitare nella barra degli URL l'IP locale del Raspberry Pi e la porta 8989
, dove è in ascolto il web server del servizio. Ecco un esempio:
192.168.1.12:8989
Se non conosciamo l'IP locale assegnato al Raspberry Pi possiamo trovarlo con bash:
hostname -I
Con questo comando otteniamo infatti il nostro IP:
192.168.1.12
Dopo l'inserimento dell'URL corretto si carica la WebGUI. Per eseguire il login, dopo aver cliccato sul tasto "App", basta usare le credenziali generate poco prima.