Pocketwatch il Time Tracker self-hosted per Linux e non solo

pocketwatch su Ubunu Linux

Per freelance, consulenti e lavoratori autonomi tenere traccia delle ore lavorate può diventare rapidamente un’attività noiosa, soprattutto quando gli strumenti disponibili richiedono account, abbonamenti o l’invio dei dati a server esterni. Pocketwatch affronta il problema con un approccio molto più semplice: il software può essere eseguito direttamente sulla propria macchina e conserva le informazioni localmente.

L’applicazione è progettata per registrare il tempo dedicato ai diversi clienti e alle varie attività con un’interfaccia essenziale. Il comando Clock In avvia immediatamente il conteggio, mentre il timer continua a funzionare con precisione al secondo. Anche il testo relativo all’attività può essere inserito o modificato mentre il cronometro è attivo.

Un aspetto particolarmente interessante è la gestione dei dati. Pocketwatch utilizza due file JSON, times.json e config.json, memorizzati nella cartella dedicata dell’installazione. Non sono necessari database, account online o servizi esterni. Le scritture vengono inoltre effettuate in modo atomico e con un sistema di aggiornamento ritardato, riducendo il rischio di perdere informazioni quando una scheda viene chiusa o ricaricata.

Il timer attivo sopravvive anche a un reload della pagina e permette di visualizzare immediatamente il totale della giornata e quello della settimana corrente. Se ci si dimentica di interrompere una sessione, dopo otto ore compare un avviso che invita a controllare il timer. Il promemoria può essere disattivato dalle impostazioni.

Pocketwatch mette a disposizione anche un sistema di cronologia pensato per chi deve gestire molte registrazioni. Le attività vengono raggruppate per giorno e il totale della selezione rimane sempre visibile. La ricerca testuale permette di filtrare contemporaneamente clienti e descrizioni delle attività, mentre i periodi possono essere limitati a giorno, settimana, mese o anno.

L’interfaccia è stata progettata per adattarsi anche agli smartphone. Sotto i 1024 pixel il layout passa dalla visualizzazione a due colonne a una modalità con sezioni accessibili tramite drawer. Le righe della cronologia diventano schede e finestre come modifica ed esportazione occupano lo schermo intero, evitando di offrire semplicemente una versione desktop rimpicciolita.

Cronologia, modifica ed esportazione delle ore lavorate

La cronologia rappresenta uno degli elementi centrali di Pocketwatch. Le registrazioni possono essere consultate per diversi periodi temporali e l’utente può spostarsi avanti e indietro attraverso le varie settimane, mesi o anni. L’opzione All consente invece di visualizzare nuovamente l’intera cronologia.

Anche archivi molto grandi vengono gestiti caricando le registrazioni in blocchi, senza però compromettere il conteggio complessivo. I totali tengono infatti conto di tutte le corrispondenze, non soltanto degli elementi attualmente visualizzati.

Le singole registrazioni possono essere modificate intervenendo sul cliente, sull’attività e sugli orari di inizio e fine. La durata viene ricalcolata automaticamente mentre si modificano i dati. I selettori personalizzati per data e ora sono utilizzabili anche tramite tastiera e il programma impedisce di salvare combinazioni non valide, come un orario di fine precedente a quello di inizio.

La cancellazione di una registrazione richiede sempre una conferma, così come l’uscita da una finestra contenente modifiche non salvate. Se non è stato indicato il cliente, la registrazione viene comunque conservata sotto No client, evitando di perdere il lavoro registrato.

L’esportazione è pensata soprattutto per la fatturazione e per la gestione amministrativa. Pocketwatch può generare un report PDF contenente il nome configurato dall’utente e i numeri di pagina, con la possibilità di inserire anche la data di esportazione. È disponibile inoltre il formato CSV, realizzato con separatore ; e BOM per assicurare una corretta apertura con Excel anche quando sono presenti caratteri accentati.

L’esportazione può utilizzare la vista attualmente filtrata oppure un intervallo di date personalizzato. È possibile scegliere l’ordinamento, visualizzare soltanto gli orari senza le descrizioni delle attività e conoscere in anticipo quante registrazioni e quante ore finiranno nel file.

Tra le impostazioni sono disponibili la lingua tedesca o inglese, il formato orario a 12 o 24 ore, la visualizzazione del totale settimanale e i titoli giornalieri fissi durante lo scorrimento. È inoltre presente una funzione di arrotondamento configurabile da 1 a 60 minuti, con possibilità di arrotondare sempre per eccesso. L’arrotondamento viene applicato alla cronologia, ai totali e ai file esportati.

Installare Pocketwatch con Docker

Il metodo più semplice per eseguire Pocketwatch è utilizzare Docker. È disponibile un’immagine già compilata sul GitHub Container Registry, quindi non è necessario installare Node.js sul computer host né effettuare una compilazione manuale. La soluzione può essere utilizzata su Linux, Windows, un NAS, un Raspberry Pi o un normale computer.

Su Linux è sufficiente creare una cartella destinata ai dati di Pocketwatch, posizionarsi al suo interno e avviare il container con:

docker run -d --name pocketwatch -p 8080:80 \
  -v "$(pwd)/data:/var/www/html/data" \
  ghcr.io/winnicodes/pocketwatch:latest

Dopo l’avvio, Pocketwatch sarà raggiungibile dal browser all’indirizzo http://localhost:8080. La cartella data montata nel container contiene le registrazioni e la configurazione dell’applicazione, rendendo i dati persistenti anche quando il container viene arrestato o ricreato.

Chi preferisce utilizzare una versione specifica può indicare direttamente il relativo tag dell’immagine, ad esempio:

docker run -d --name pocketwatch -p 8080:80 \
  -v "$(pwd)/data:/var/www/html/data" \
  ghcr.io/winnicodes/pocketwatch:1.0.1

Questa modalità permette di evitare aggiornamenti automatici indesiderati e di decidere manualmente quando passare a una nuova release. L’architettura del container utilizza Nginx e PHP-FPM su Alpine, mentre font e risorse necessarie sono inclusi localmente. Pocketwatch non utilizza CDN, telemetria o richieste esterne per il normale funzionamento.

Per chi cerca un sistema per il time tracking self-hosted, Pocketwatch offre quindi una combinazione interessante di semplicità, privacy e funzioni pratiche. Il progetto concentra in un’unica applicazione il rilevamento delle ore, la gestione delle attività, la ricerca nella cronologia, l’arrotondamento dei tempi e la produzione di documenti utili alla fatturazione, mantenendo i dati sotto il controllo dell’utente. Abbiamo testato Pocketwatch su Ubuntu 26.04 LTS (immagine dell’articolo).

Lascia un commento