# Bak&Rest Bak&Rest monitora cartelle configurate su Windows, registra i file creati, modificati, cancellati o spostati e prepara il backup successivo tramite tray app. ## Componenti - `BakRestWatchdog`: servizio Windows di monitoraggio. - `BakRestTray`: tray app che eseguira' il backup e lo spegnimento. - `BakRestConfig`: GUI di configurazione. ## Configurazione Alla prima esecuzione viene creato un file TOML modificabile in: ```text %PROGRAMDATA%\BakRest\config.toml ``` Per creare o trovare il file di configurazione: ```powershell python -m bakrest.config_cli init python -m bakrest.config_cli path ``` In sviluppo si puo' usare un percorso diverso: ```powershell $env:BAKREST_CONFIG="C:\devel\bak&rest\config\config.toml" python -m bakrest.watchdog_runner ``` ## Avvio watchdog in console per test ```powershell python -m pip install -e . python -m bakrest.watchdog_runner ``` ## Avvio tray app per test ```powershell python -m pip install -e . python -m bakrest.tray_app ``` La tray app legge lo stato prodotto dal servizio e offre il comando `Backup e spegni`. Se il backup fallisce, lo spegnimento non viene eseguito. ## Backup senza GUI per Task Scheduler Lo stesso entry point della tray puo' eseguire il backup senza mostrare icone o finestre: ```powershell python -m bakrest.tray_app --nogui ``` Per testare senza spegnere il PC: ```powershell python -m bakrest.tray_app --nogui --no-shutdown ``` In alternativa si puo' chiamare direttamente il modulo dedicato: ```powershell python -m bakrest.backup_nogui ``` Questo percorso e' pensato per Task Scheduler, per esempio su evento di disconnessione o fine sessione. Se il server non e' raggiungibile o il backup fallisce, il comando termina con errore e non spegne il PC. Azione Task Scheduler consigliata in sviluppo: ```text Programma: C:\Python314\python.exe Argomenti: -m bakrest.tray_app --nogui Avvia in: C:\devel\bak&rest ``` Per una prova senza spegnimento: ```text Programma: C:\Python314\python.exe Argomenti: -m bakrest.tray_app --nogui --no-shutdown Avvia in: C:\devel\bak&rest ``` ## Avvio GUI configurazione ```powershell python -m pip install -e . python -m bakrest.config_app ``` La GUI permette di modificare la configurazione e vedere la coda dei file in attesa di backup. I file in coda restano persistenti anche se il computer viene spento senza eseguire il backup. ## Installazione servizio Windows Da PowerShell avviato come amministratore: ```powershell python -m pip install -e . python -m bakrest.service install python -m bakrest.service start ``` Se `service.autostart = true`, il comando `install` configura il servizio con avvio automatico. Se e' `false`, il servizio viene installato con avvio manuale. Il valore puo' essere sempre sovrascritto passando esplicitamente le opzioni di `pywin32`. Comandi utili: ```powershell python -m bakrest.service stop python -m bakrest.service remove python -m bakrest.service debug ``` Il servizio si chiama `BakRestWatchdog`.