
mini-diarium v0.7.0
Un diario esclusivamente locale con una crittografia seria. Gratuito, open source e non tocca mai internet.
Mini Diarium
Un diario solo locale con una crittografia seria. Gratuito, open source e non tocca mai internet.
mini-diarium.com · Download · Documentazione · Funzionalità · Filosofia · Benchmark
☕ Sostieni il progetto
Mini Diarium è gratuito, open source e lo sarà sempre. Se lo trovi utile e vuoi sostenerne lo sviluppo, considera di offrirmi un caffè su Ko-fi. Ogni donazione contribuisce direttamente a mantenere vivo e in miglioramento questo progetto.
Preferisci le criptovalute? Monero, Bitcoin e Lightning sono qui sotto e in DONATE.md.
Dona con criptovalute (Monero · Bitcoin · Lightning)
Monero (XMR), indirizzo standard mainnet:
4ApNmqczyAoWsprSrCMsPNKTGhxaH1Cs6agLVaGiKuBBVSotWK9uj3oVQkWYUX9XUGQJyC9WB7cMofE8wfp5BbUoEdcwbjv
Bitcoin (BTC), on-chain native SegWit (bech32):
bc1q0y6v888ala2f8r7tm8g30vqt9ma09w9ww4jhum
Bitcoin su Lightning, un indirizzo Lightning compatibile con Cake Wallet, Phoenix, Zeus, Blink e Wallet of Satoshi:
Verifica sempre gli indirizzi su DONATE.md nel branch master prima di inviare. Quel file copre anche gli avvisi di rete e cosa finanziano e non finanziano le donazioni.
Download
Scarica l'ultima release per la tua piattaforma da GitHub Releases.
Richiede Windows 10 (1809)+, macOS 10.15 Catalina+ o Linux (Ubuntu 20.04+, Fedora 36+, Arch o equivalente).
Installazione rapida:
- Windows (Microsoft Store): apps.microsoft.com/detail/9PJFTX44ZS43
- Windows (WinGet):
winget install fjrevoredo.MiniDiarium - macOS (Homebrew):
brew tap fjrevoredo/mini-diariumpoibrew install --cask mini-diarium - Linux (Flatpak):
flatpak install flathub io.github.fjrevoredo.mini-diarium - NixOS / Nix (Flakes):
nix run github:fjrevoredo/mini-diarium
Per i formati dei pacchetti, le note al primo avvio (Gatekeeper / SmartScreen) e la verifica dei checksum, consulta docs/INSTALLATION.md.
Avvio rapido
- Avvia Mini Diarium
- Crea una password (questa cripta il tuo diario; non c'è recupero se la dimentichi)
- Scrivi la tua prima voce. Viene salvata automaticamente mentre digiti
- Naviga tra i giorni con
Ctrl+[/Ctrl+]o clicca le date sul calendario - Blocca il tuo diario quando hai finito
Contesto
Mini Diarium è un successore spirituale di Mini Diary di Samuel Meuli. Amavo lo strumento originale. Era semplice, privato e faceva esattamente ciò che un'app per il diario dovrebbe fare. Sfortunatamente, è rimasto non mantenuto per anni e le sue dipendenze sono invecchiate. Inizialmente avevo pensato di fare un fork e modernizzare lo stack, ma si è rivelato poco pratico. Così ho ricominciato da zero, mantenendo la stessa filosofia di fondo (criptato, solo locale, focalizzato) ma ricostruendo completamente con Tauri 2, SolidJS e Rust. Il risultato è un'app più leggera e veloce, con una crittografia più forte e qualche tocco personale.
Prima la filosofia
Mini Diarium è intenzionalmente schierato. La filosofia non è una nota a margine, è il prodotto:
- Core piccolo ed estensibile: mantieni le responsabilità principali ben delimitate (cifrare, archiviare, autenticare) e spingi le funzionalità extra verso punti di estensione
- Sicurezza noiosa: usa algoritmi consolidati e librerie sottoposte ad audit, mai crittografia personalizzata
- Solo locale per design: nessuna sincronizzazione cloud, nessuna telemetria, nessuna analisi, nessun comportamento di rete nascosto
- Facile entrare, facile uscire: importa da formati comuni ed esporta in formati aperti per evitare il lock-in
- Ambito focalizzato: diario privato invece di proliferazione di funzionalità
- Semplicità invece di astuzia: meno parti in movimento, superficie d'attacco più piccola, manutenzione più semplice
Leggi i principi completi e come questi si traducono nell'architettura in PHILOSOPHY.md.
[!NOTE] Mini Diarium usa strumenti di IA come leva per ingegneri umani, mai come sostituto. Ogni modifica passa comunque attraverso progettazione deliberata, implementazione accurata, test adeguati e feedback diretto. Responsabilità, paternità e giudizio finale restano umani.
Funzionalità
- Autenticazione con file di chiave: sblocca il tuo diario con un file di chiave privata X25519 invece che (o insieme a) la tua password, come le chiavi SSH per il tuo diario. Vedi docs/KEY_FILE_AUTHENTICATION.md.
- Diari solo locali: crea diari che si sbloccano automaticamente sul tuo dispositivo (senza richiesta di password) pur continuando a cifrare le voci a riposo.
- Crittografia AES-256-GCM: tutte le voci sono cifrate con una chiave master casuale. Ogni metodo di autenticazione conserva la propria copia incapsulata di quella chiave, quindi aggiungere o rimuovere un metodo è O(1), senza ri-cifratura delle tue voci.
- Diari multipli: mantieni diari separati per scopi diversi (personale, lavoro, viaggi).
- Editor di testo formattato: incluse le immagini.
- Tag
- Voci multiple per giorno: mantieni voci separate per la stessa data senza unirle insieme
- Navigazione da calendario
- Importazione: Mini Diary JSON, Day One JSON/TXT e jrnl JSON con importazioni additive che preservano voci separate della stessa data
- Esportazione: JSON per fedeltà strutturale e Markdown per un'esportazione leggibile dall'uomo nel miglior modo possibile
- Temi
- Backup automatici: snapshot cifrati e verificati presi prima di migrazioni e azioni distruttive, con conservazione a livelli che risale a un anno
- Statistiche
- Preferenze: primo giorno della settimana, attivazione voci future, visibilità del titolo, controllo ortografico, blocco automatico, cambio password, gestione dei metodi di autenticazione
- Multipiattaforma: Windows, macOS e Linux
- Zero accesso alla rete: nessuna telemetria, nessuna analisi, nessun controllo degli aggiornamenti
Documentazione
- Documentazione utente online: https://mini-diarium.com/docs
- Guida utente offline / GitHub: docs/USER_GUIDE.md
- Installazione: docs/INSTALLATION.md
- Autenticazione con file di chiave: docs/KEY_FILE_AUTHENTICATION.md
- Diagrammi e flussi dell'architettura: docs/ARCHITECTURE.md
- Problemi noti / compromessi: docs/KNOWN_ISSUES.md
- Privacy: docs/PRIVACY.md
- Modello di sicurezza + segnalazioni: SECURITY.md
- Plugin utente (Rhai): docs/user-plugins/USER_PLUGIN_GUIDE.md
Architettura
Per i diagrammi e i flussi di dati dettagliati, vedi docs/ARCHITECTURE.md.
Scorciatoie da tastiera
| Azione | Scorciatoia |
|---|---|
| Giorno precedente | Ctrl+[ |
| Giorno successivo | Ctrl+] |
| Vai a oggi | Ctrl+T |
| Vai alla data | Ctrl+G |
| Mese precedente | Ctrl+Shift+[ |
| Mese successivo | Ctrl+Shift+] |
| Preferenze | Ctrl+, |
Statistiche, Importazione ed Esportazione sono disponibili tramite il menu Journal (nessun acceleratore da tastiera predefinito).
Su macOS, usa Cmd invece di Ctrl.
Compilazione dal sorgente
Prerequisiti: Rust (vedi rust-toolchain.toml), Bun 1.x e le dipendenze di sistema di Tauri v2.
Per istruzioni dettagliate specifiche per piattaforma (nomi dei pacchetti Linux, configurazione Fedora, risoluzione dei problemi Wayland), vedi CONTRIBUTING.md.
git clone https://github.com/fjrevoredo/mini-diarium.git
cd mini-diarium
bun install
bun run tauri build
Gli artefatti saranno in target/release/bundle/ (la radice del workspace Cargo possiede target/).
Stack tecnologico
- Tauri 2: framework per app desktop (backend Rust, frontend web)
- SolidJS: framework UI reattivo
- Rust: logica backend, crittografia, database
x25519-dalek,hkdf,sha2: incapsulamento di chiavi X25519 ECIES per l'autenticazione con file di chiave
- SQLite: archiviazione locale del database cifrato
- TipTap: editor di testo formattato
- UnoCSS: CSS utility-first
- Kobalte: primitive UI accessibili
Problemi noti
Per l'elenco completo delle limitazioni note, dei compromessi deliberati e del debito tecnico, vedi docs/KNOWN_ISSUES.md.
Punti salienti per l'utente:
- L'accesso concorrente allo stesso file di diario non è supportato (per design)
- Nessun recupero della password — perdere tutte le credenziali è permanente (per design)
- La ricerca full-text viene eseguita come scansione in memoria sulle voci decifrate (reintrodotta dopo la rimozione della FTS nella v0.2.0); nulla di ricercabile viene scritto su disco
- Importare lo stesso file due volte crea voci duplicate (nessuna deduplicazione)
- Le modifiche ai plugin richiedono un riavvio dell'app per avere effetto
Estendere Mini Diarium
Puoi aggiungere estensioni locali di importazione/esportazione usando script Rhai nella cartella plugins/ del tuo diario.
Vedi docs/user-plugins/USER_PLUGIN_GUIDE.md per requisiti, best practice e un plugin di esempio completo.
Benchmark delle prestazioni
I benchmark Criterion per i percorsi critici di crittografia e database vengono tracciati a ogni push su master e pubblicati su fjrevoredo.github.io/mini-diarium/benchmarks/.
La pagina copre quattro aree: derivazione della chiave Argon2id (intenzionalmente lenta — ~200 ms per resistere alla forza bruta), cifratura/decifratura AES-256-GCM su tre dimensioni di voce, operazioni SQLite (inserimento, aggiornamento, eliminazione, enumerazione per data, scansione completa) e calcolo del conteggio delle parole. Ogni scheda mostra l'ultima tempistica e un grafico di tendenza Chart.js sulle ultime 30 esecuzioni CI.
Contribuire
Vedi CONTRIBUTING.md per istruzioni di configurazione, flusso di sviluppo e convenzioni. Per i maintainer che aggiungono plugin ufficiali, vedi docs/BUILTIN_PLUGIN_GUIDE.md. Per i maintainer che modificano UI/stato del frontend, il backend Rust, il confine IPC di Tauri, la sicurezza della WebView o la CI, vedi docs/best-practices.
Traduzioni
Mini Diarium è disponibile nelle seguenti lingue:
- Inglese
- Francese (Français)
- Tedesco (Deutsch)
- Hindi (हिन्दी)
- Italiano (Italiano)
- Portoghese (Brasile) (Português (Brasil))
- Spagnolo (Español)
Se desideri aggiungere il supporto per un'altra lingua, vedi docs/TRANSLATIONS.md per istruzioni su come creare un file di localizzazione e inviare una PR.
Rilascio
Per i maintainer: vedi docs/releasing/RELEASING.md per istruzioni passo passo sul rilascio.
Sicurezza
Vedi SECURITY.md per il modello di sicurezza e come segnalare vulnerabilità.
Licenza
Mini Diarium è distribuito sotto licenza MIT. Vedi LICENSE.
Crediti
Fatto con amore da Francisco J. Revoredo (con un piccolo aiuto da Claude Code).
Contributori
Grazie a tutti coloro che hanno contribuito con codice, traduzioni o miglioramenti a Mini Diarium: