
Infrastruttura invisibile per i workspace per sviluppatori di Dracon: git sync, system guard e utilità di crittografia warden.
Tre piccoli strumenti CLI in Rust che si prendono cura di una macchina Linux per lo sviluppo: uno mantiene i tuoi repository git committati e sottoposti a backup, uno evita che il disco e la memoria vadano in tilt, e uno impedisce che i segreti finiscano nella tua cronologia git. Funzionano come normali servizi systemd a livello utente — nessun privilegio di root richiesto.
| Strumento | Il problema che risolve | In una riga |
|---|---|---|
dracon-sync | "Ho modificato file tutto il giorno e non ho mai committato." | Monitora i tuoi repository, esegue il commit automatico delle modifiche con messaggi deterministici, esegue il push su GitHub/GitLab/dove vuoi |
dracon-system | "Il mio disco si è riempito a metà build e tutto si è bloccato." | Protegge dalla pressione su disco e memoria, ripulisce i noti divoratori di spazio, diagnostica i problemi di archiviazione |
dracon-warden | "Ho quasi inviato la mia chiave API su GitHub." | Cifra in modo trasparente i file che sembrano contenere segreti (age) così sono al sicuro a riposo in git ma in chiaro nel tuo editor |
Tutto qui è un unico workspace Cargo per percorso: cargo test --workspace --locked nella radice del repository
compila e testa tutti e tre (2347 test al 2026-10-10; 0 falliti, 25 ignorati). Le tre directory delle utility
sono repository git standalone annidati (con proprio .git/, cronologia, remote e tag dal
2026-09-11 — il repository padre traccia solo file meta), quindi un clone del solo padre
non compila; clona i repository delle utility accanto ad esso (vedi CONTRIBUTING Setup).
git clone https://github.com/DraconDev/dracon-utilities.git
cd dracon-utilities
# nested utility repos (see CONTRIBUTING for the clone list)
git clone https://github.com/DraconDev/dracon-sync-background-auto-commit-multi-remote.git dracon-sync
git clone https://github.com/DraconDev/dracon-system-disk-process-guard-doctor.git dracon-system
git clone https://github.com/DraconDev/dracon-warden-secret-encrypt-age-git-filter.git dracon-warden
cargo build --release --locked
./target/release/dracon-system doctor # health check of this machine
./target/release/dracon-sync status # what sync would watch
./install.sh # binaries -> ~/.local/bin
systemctl --user enable --now dracon-sync.service # background auto-commit
systemctl --user enable --now dracon-system-guard.service # background guard
./uninstall.sh # remove binaries and services (configs kept unless --purge)
`install.sh` stops the services while it works, refreshes the user
service units from the repo, installs the warden git hooks globally,
and restarts the services afterwards (see `./install.sh --help`;
`--no-restart` and `--binaries-only` opt out of parts of this).
dracon-warden non è un servizio — dopo l'installazione, esegui
dracon-warden setup-hooks --global una volta per attivare i suoi git hook, poi
dracon-warden keygen per creare la coppia di chiavi age della macchina.
Ogni strumento legge quindi la propria configurazione TOML da ~/.dracon/utilities/
(gli esempi sono inclusi nella directory di ciascuno strumento). Nulla di tracciato da git
risiede mai al di fuori dell'albero del repository; lo stato va in ~/.dracon/ e
~/.local/state/dracon/.
dracon-syncTu lavori; lui esegue i commit. Dagli delle radici di monitoraggio (~/Dev, ad esempio) e
scopre ogni repository git al loro interno, attende che le modifiche si stabilizzino,
esegue i commit con messaggi deterministici basati sul diff, e fa push verso origin
più eventuali mirror configurati. Classifica i fallimenti di push
(STUCK/BLOCKED/BROKEN) invece di ritentare silenziosamente all'infinito, e
segnala i repository che scompaiono dal disco.
dracon-sync daemon # continuous loop (what the service runs)
dracon-sync repos # live report of every watched repo
dracon-sync sync-now ~/Dev/my-project
dracon-sync health
Maggiori informazioni: dracon-sync/README.md
dracon-systemUn watchdog per la macchina stessa. Quando la pressione su disco o memoria supera le soglie di avviso/critiche, può ripulire file spazzatura rigenerabili (directory di build, cache), ridurre la priorità dei processi che consumano molta memoria così il desktop rimane reattivo e orientare l'out-of-memory killer del kernel verso i veri responsabili. Esegue anche diagnostiche una tantum: hotspot di archiviazione, gestione dei symlink, stato di zram.
dracon-system doctor # deterministic diagnostics pass
dracon-system storage ~/Dev # where did my disk go?
dracon-system guard clean # reclaim space (dry-run first)
dracon-system guard daemon # continuous monitoring (the service)
Maggiori informazioni: dracon-system/README.md
dracon-wardenCrittografia basata su filtro Git tramite age.
I file che corrispondono ai pattern dei segreti (.env, *.key, …) vengono cifrati al
commit e decifrati al checkout, così l'albero di lavoro resta normale
mentre il remoto contiene solo testo cifrato. Gli hook globali supportano questo meccanismo
scansionando ogni push alla ricerca di contenuti con forma di segreto e bloccando quelli rischiosi.
dracon-warden keygen # machine age keypair
dracon-warden setup-hooks --global
dracon-warden status # what's protected on this machine
Ulteriori informazioni: dracon-warden/README.md
dracon-utilities/
├── dracon-sync/ # auto-commit multi-remote git sync daemon
├── dracon-system/ # disk/process guard, storage & diagnostics
├── dracon-warden/ # age-based git secret encryption (hooks + CLI)
│ └── src/security/ # embedded dracon-security crate
├── .github/workflows/ci.yml # lint / test / release-build / deny / nix
├── flake.nix # optional Nix build path
├── scripts/ # release, checks, audit tooling
└── AGENTS.md # policies for agents/operators working here
export DRACON_SYNC_GIT_BIN=/run/current-system/sw/bin/git # NixOS only
cargo test --workspace --locked
cargo clippy --workspace --locked -- -D warnings
cargo deny check
nix flake check # optional
Build per singolo strumento: cargo build --release --locked -p dracon-{sync,system,warden}.
Release più recenti dei componenti: dracon-sync 0.113.95 · dracon-system 0.112.44 ·
dracon-warden 0.113.15 — vedi
Releases.
Le release delle utility sono taggate nei repository annidati (dracon-sync-vX.Y.Z, …);
i dettagli per singolo strumento si trovano nel CHANGELOG.md di ciascuna directory, mentre il
CHANGELOG.md principale è un registro storico congelato.
Nota storica: ogni utility viveva originariamente in un proprio repository (
DraconDev/dracon-sync-background-auto-commit-multi-remote,...-disk-process-guard-doctor,...-secret-encrypt-age-git-filter). Lo sviluppo avviene nei checkout standalone annidati di quegli stessi repository, clonati accanto a questo meta-repository (il repository principale non traccia alcun sorgente delle utility).