
mini-diarium v0.6.5
Um diário somente local com criptografia séria. Gratuito, de código aberto e que nunca acessa a internet.
Mini Diarium
Um diário exclusivamente local com criptografia séria. Gratuito, de código aberto e que nunca toca na internet.
mini-diarium.com · Download · Documentação · Recursos · Filosofia · Benchmarks
☕ Apoie o Projeto
O Mini Diarium é gratuito, de código aberto e sempre será. Se você o acha útil e quer apoiar seu desenvolvimento, considere me comprar um café no Ko-fi. Cada doação vai diretamente para manter este projeto vivo e melhorá-lo.
Prefere criptomoedas? Monero, Bitcoin e Lightning estão abaixo e em DONATE.md.
Doe com criptomoedas (Monero · Bitcoin · Lightning)
Monero (XMR), endereço padrão da mainnet:
4ApNmqczyAoWsprSrCMsPNKTGhxaH1Cs6agLVaGiKuBBVSotWK9uj3oVQkWYUX9XUGQJyC9WB7cMofE8wfp5BbUoEdcwbjv
Bitcoin (BTC), SegWit nativo on-chain (bech32):
bc1q0y6v888ala2f8r7tm8g30vqt9ma09w9ww4jhum
Bitcoin via Lightning, um endereço Lightning que funciona com Cake Wallet, Phoenix, Zeus, Blink e Wallet of Satoshi:
Sempre verifique os endereços em DONATE.md no branch master antes de enviar. Esse arquivo também cobre avisos de rede e o que as doações compram ou não.
Download
Baixe a versão mais recente para sua plataforma em GitHub Releases.
Requer Windows 10 (1809)+, macOS 10.15 Catalina+ ou Linux (Ubuntu 20.04+, Fedora 36+, Arch ou equivalente).
Instalação rápida:
- Windows (Microsoft Store): apps.microsoft.com/detail/9PJFTX44ZS43
- Windows (WinGet):
winget install fjrevoredo.MiniDiarium - macOS (Homebrew):
brew tap fjrevoredo/mini-diariume depoisbrew install --cask mini-diarium - Linux (Flatpak):
flatpak install flathub io.github.fjrevoredo.mini-diarium - NixOS / Nix (Flakes):
nix run github:fjrevoredo/mini-diarium
Para formatos de pacote, notas de primeira execução (Gatekeeper / SmartScreen) e verificação de checksum, consulte docs/INSTALLATION.md.
Início Rápido
- Inicie o Mini Diarium
- Crie uma senha (isso criptografa seu diário; não há recuperação se você a esquecer)
- Escreva sua primeira entrada. Ela salva automaticamente enquanto você digita
- Navegue entre os dias com
Ctrl+[/Ctrl+]ou clique nas datas no calendário - Bloqueie seu diário quando terminar
Contexto
O Mini Diarium é um sucessor espiritual do Mini Diary de Samuel Meuli. Eu adorava a ferramenta original. Era simples, privada e fazia exatamente o que um aplicativo de diário deveria fazer. Infelizmente, ela está sem manutenção há anos e suas dependências ficaram obsoletas. Inicialmente pensei em fazer um fork e modernizar a stack, mas isso se mostrou impraticável. Então comecei do zero, mantendo a mesma filosofia central (criptografado, somente local, focado) enquanto reconstruía completamente com Tauri 2, SolidJS e Rust. O resultado é um aplicativo mais leve, mais rápido, com criptografia mais forte e alguns toques pessoais.
Filosofia em Primeiro Lugar
O Mini Diarium é intencionalmente opinativo. A filosofia não é uma nota de rodapé, é o produto:
- Núcleo pequeno e extensível: manter as responsabilidades centrais enxutas (criptografar, armazenar, autenticar) e empurrar extras para pontos de extensão
- Segurança conservadora: usar algoritmos estabelecidos e bibliotecas auditadas, nunca criptografia personalizada
- Somente local por design: sem sincronização em nuvem, sem telemetria, sem analytics, sem comportamento de rede oculto
- Fácil de entrar, fácil de sair: importar de formatos comuns e exportar em formatos abertos para evitar aprisionamento
- Escopo focado: diário privado em vez de proliferação de recursos
- Simplicidade em vez de esperteza: menos partes móveis, menor superfície de ataque, manutenção mais fácil
Leia os princípios completos e como eles se traduzem na arquitetura em PHILOSOPHY.md.
[!NOTE] O Mini Diarium usa ferramentas de IA como alavanca para engenheiros humanos, nunca como substituto. Cada mudança ainda passa por design deliberado, implementação cuidadosa, testes adequados e feedback direto. Responsabilidade, autoria e julgamento final permanecem humanos.
Recursos
- Autenticação por arquivo de chave: desbloqueie seu diário com um arquivo de chave privada X25519 em vez de (ou junto com) sua senha, como chaves SSH para seu diário. Consulte docs/KEY_FILE_AUTHENTICATION.md.
- Diários somente locais: crie diários que desbloqueiam automaticamente no seu dispositivo (sem solicitação de senha) enquanto ainda criptografam as entradas em repouso.
- Criptografia AES-256-GCM: todas as entradas são criptografadas com uma chave mestra aleatória. Cada método de autenticação mantém sua própria cópia encapsulada dessa chave, então adicionar ou remover um método é O(1), sem re-criptografar suas entradas.
- Múltiplos diários: mantenha diários separados para diferentes propósitos (pessoal, trabalho, viagem).
- Editor de texto rico: incluindo imagens.
- Tags
- Múltiplas entradas por dia: mantenha entradas separadas para a mesma data sem mesclá-las
- Navegação por calendário
- Importação: Mini Diary JSON, Day One JSON/TXT e jrnl JSON com importações aditivas que preservam entradas separadas da mesma data
- Exportação: JSON para fidelidade estrutural e Markdown para exportação legível por humanos de melhor esforço
- Temas
- Backups automáticos: snapshots criptografados e verificados feitos antes de migrações e ações destrutivas, com retenção em camadas que remonta a um ano
- Estatísticas
- Preferências: primeiro dia da semana, alternância de entradas futuras, visibilidade do título, verificação ortográfica, bloqueio automático, alteração de senha, gerenciamento de métodos de autenticação
- Multiplataforma: Windows, macOS e Linux
- Zero acesso à rede: sem telemetria, sem analytics, sem verificações de atualização
Documentação
- Documentação online do usuário: https://mini-diarium.com/docs
- Guia do usuário offline / GitHub: docs/USER_GUIDE.md
- Instalação: docs/INSTALLATION.md
- Autenticação por arquivo de chave: docs/KEY_FILE_AUTHENTICATION.md
- Diagramas de arquitetura e fluxos: docs/ARCHITECTURE.md
- Problemas conhecidos / tradeoffs: docs/KNOWN_ISSUES.md
- Privacidade: docs/PRIVACY.md
- Modelo de segurança + relatórios: SECURITY.md
- Plugins de usuário (Rhai): docs/user-plugins/USER_PLUGIN_GUIDE.md
Arquitetura
Para os diagramas e fluxos de dados detalhados, consulte docs/ARCHITECTURE.md.
Atalhos de Teclado
| Ação | Atalho |
|---|---|
| Dia Anterior | Ctrl+[ |
| Próximo Dia | Ctrl+] |
| Ir para Hoje | Ctrl+T |
| Ir para Data | Ctrl+G |
| Mês Anterior | Ctrl+Shift+[ |
| Próximo Mês | Ctrl+Shift+] |
| Preferências | Ctrl+, |
Estatísticas, Importação e Exportação estão disponíveis no menu Diário (sem aceleradores de teclado padrão).
No macOS, use Cmd em vez de Ctrl.
Compilando a partir do Código Fonte
Pré-requisitos: Rust (consulte rust-toolchain.toml), Bun 1.x e dependências de sistema do Tauri v2.
Para instruções detalhadas específicas da plataforma (nomes de pacotes Linux, configuração do Fedora, solução de problemas do Wayland), consulte CONTRIBUTING.md.
git clone https://github.com/fjrevoredo/mini-diarium.git
cd mini-diarium
bun install
bun run tauri build
Os artefatos estarão em target/release/bundle/ (a raiz do workspace Cargo é dona de target/).
Stack Tecnológica
- Tauri 2: framework de aplicativo desktop (backend Rust, frontend web)
- SolidJS: framework de UI reativa
- Rust: lógica de backend, criptografia, banco de dados
x25519-dalek,hkdf,sha2: encapsulamento de chave X25519 ECIES para autenticação por arquivo de chave
- SQLite: armazenamento local de banco de dados criptografado
- TipTap: editor de texto rico
- UnoCSS: CSS utilitário-first
- Kobalte: primitivos de UI acessíveis
Problemas Conhecidos
Para a lista completa de limitações conhecidas, tradeoffs deliberados e dívida técnica, consulte docs/KNOWN_ISSUES.md.
Destaques voltados ao usuário:
- Acesso concorrente ao mesmo arquivo de diário não é suportado (por design)
- Sem recuperação de senha — perder todas as credenciais é permanente (por design)
- A pesquisa de texto completo é executada como uma varredura em memória sobre entradas descriptografadas (adicionada de volta após a remoção do FTS na v0.2.0); nada pesquisável é gravado em disco
- Importar o mesmo arquivo duas vezes cria entradas duplicadas (sem deduplicação)
- Alterações de plugins exigem reinicialização do aplicativo para terem efeito
Estendendo o Mini Diarium
Você pode adicionar extensões locais de importação/exportação usando scripts Rhai na pasta plugins/ do seu diário.
Consulte docs/user-plugins/USER_PLUGIN_GUIDE.md para requisitos, melhores práticas e um exemplo completo de plugin.
Benchmarks de Desempenho
Benchmarks Criterion para os caminhos críticos de criptografia e banco de dados são rastreados a cada push para master e publicados em fjrevoredo.github.io/mini-diarium/benchmarks/.
A página cobre quatro áreas: derivação de chave Argon2id (intencionalmente lenta — ~200 ms para resistir a força bruta), criptografia/descriptografia AES-256-GCM em três tamanhos de entrada, operações SQLite (insert, update, delete, enumeração de datas, varredura completa) e cálculo de contagem de palavras. Cada cartão mostra o tempo mais recente e um gráfico de tendências Chart.js das últimas 30 execuções de CI.
Contribuindo
Consulte CONTRIBUTING.md para instruções de configuração, fluxo de trabalho de desenvolvimento e convenções. Para mantenedores que adicionam plugins oficiais, consulte docs/BUILTIN_PLUGIN_GUIDE.md. Para mantenedores que alteram a UI/estado do frontend, o backend Rust, a fronteira IPC do Tauri, a segurança do WebView ou a CI, consulte docs/best-practices.
Traduções
O Mini Diarium é distribuído nos seguintes idiomas:
- Inglês (English)
- Francês (Français)
- Alemão (Deutsch)
- Hindi (हिन्दी)
- Italiano (Italiano)
- Português (Brasil) (Português (Brasil))
- Espanhol (Español)
Se você quiser adicionar suporte para outro idioma, consulte docs/TRANSLATIONS.md para instruções sobre como criar um arquivo de locale e enviar um PR.
Lançamentos
Para mantenedores: Consulte docs/releasing/RELEASING.md para instruções passo a passo de lançamento.
Segurança
Consulte SECURITY.md para o modelo de segurança e como relatar vulnerabilidades.
Licença
O Mini Diarium é licenciado sob a Licença MIT. Consulte LICENSE.
Créditos
Feito com amor por Francisco J. Revoredo (com uma pequena ajuda do Claude Code).
Contribuidores
Obrigado a todos que contribuíram com código, traduções ou melhorias para o Mini Diarium: