Um painel administrativo desktop seguro e multiplataforma (Windows, macOS, Linux) para orquestração de sistemas web, interações com a blockchain e gerenciamento de arquivos no IPFS. Construído com Tauri e Rust, priorizando segurança e performance.
- Sobre o Projeto
- Principais Integrações
- Metodologia de Segurança
- Stack de Tecnologia e Orientações
- Estrutura de Diretórios
- Começando
- Licença
Este aplicativo é um "Hub de Orquestração" desktop projetado para administradores e usuários avançados. Ele fornece uma interface unificada para gerenciar operações complexas que envolvem múltiplos sistemas:
- Interação com a API de um WebApp principal.
- Execução de transações e leitura de dados de uma Blockchain.
- Gerenciamento (upload/download) de arquivos no IPFS.
Construído com Tauri, ele é extremamente leve, rápido e prioriza a segurança, rodando nativamente com um único binário.
- API do WebApp: Consumo de endpoints para gerenciamento de dados do aplicativo web principal.
- Blockchain: Conexão direta com redes EVM para enviar transações assinadas e ler o estado de Smart Contracts.
- IPFS (InterPlanetary File System): Integração com um gateway para upload e download de arquivos de forma descentralizada.
A segurança é o pilar deste projeto.
NUNCA ARMAZENAMOS CHAVES PRIVADAS EM TEXTO PLANO.
Nossa abordagem é:
- Armazenamento Seguro com Stronghold: Chaves privadas ou seed phrases são criptografadas e armazenadas em um "cofre" seguro gerenciado pelo
tauri-plugin-stronghold. - Isolamento de Lógica: A lógica de segurança é estritamente isolada no backend Rust.
- Permissões Restritas: A aplicação é configurada com um conjunto mínimo de permissões de API.
Esta seção detalha as tecnologias do projeto e serve como guia para os desenvolvedores. As dependências e versões são gerenciadas declarativamente nos arquivos package.json (frontend), src-tauri/Cargo.toml (backend) e .idx/dev.nix (ambiente).
O ambiente é 100% gerenciado pelo Nix. O arquivo .idx/dev.nix instala automaticamente:
- Node.js (v20.x): Para o ecossistema de frontend.
- Toolchain do Rust: Compilador (
rustc) e gerenciador de pacotes (cargo). - Bibliotecas de Sistema: Todas as dependências (
webkit2gtk, etc.) necessárias para o Tauri em Linux.
- Framework: Tauri v2
- Linguagem: Rust
- Orientação: Toda a lógica sensível, interações com o sistema e tarefas pesadas devem ser implementadas aqui. As funções são expostas de forma segura ao frontend como "comandos" do Tauri.
O frontend é uma Single-Page Application (SPA) construída com a seguinte stack:
| Tecnologia | Função | Pacote(s) Chave | Orientação de Uso |
|---|---|---|---|
| React | Framework Principal | react, react-dom |
Use para criar componentes de UI funcionais e gerenciar o estado local. |
| TypeScript | Linguagem | typescript |
Utilize tipagem estrita para garantir a segurança e manutenibilidade do código. |
| Material-UI (MUI) | Biblioteca de Componentes | @mui/material |
A base para a UI. Utilize seus componentes (Button, TextField, etc.) para construir as telas. |
| React Router | Roteamento | react-router-dom |
Defina as páginas e a navegação da aplicação no arquivo src/routes.tsx. |
| Vite | Build Tool | vite |
O motor de desenvolvimento. O comando npm run dev o utiliza para compilação e hot-reload. |
| API Tauri | Ponte Frontend-Backend | @tauri-apps/api |
Use para invocar os comandos Rust definidos no backend de forma segura e assíncrona. |
A estrutura do projeto é modular e orientada a funcionalidades (features) para promover escalabilidade e manutenibilidade.
/
|-- src/ # <-- Frontend Code (TypeScript/React)
| |-- api/ # Interface de comunicação com o backend Rust
| |-- components/ # Componentes de UI globais e reutilizáveis
| |-- features/ # Módulos de funcionalidades (ex: blockchain, ipfs)
| |-- store/ # Gerenciamento de estado global
| |-- App.tsx # Componente raiz
| |-- routes.tsx # Definição das rotas
|
|-- src-tauri/ # <-- Backend Code (Rust)
| |-- Cargo.toml # Dependências e manifesto do Rust
| |-- tauri.conf.json # Configuração da aplicação Tauri
| |-- src/
| | |-- commands/ # Comandos Tauri expostos ao frontend
| | |-- core/ # Lógica de negócio central
| | |-- security/ # Módulo do Stronghold e gestão de chaves
| | |-- main.rs # Ponto de entrada do backend
|
|-- .idx/
| |-- dev.nix # Configuração declarativa do ambiente de dev
|
|-- package.json # Dependências do Frontend
|-- README.md # Esta documentaçãoEste projeto utiliza Nix para gerenciar o ambiente de desenvolvimento, garantindo uma configuração fácil e consistente.
- Um ambiente compatível com Nix (como o Google's IDX, ou um sistema com Nix instalado).
- Clone o repositório.
Ao abrir o projeto em um ambiente Nix, todas as dependências de sistema (Node.js, Rust, etc.) serão instaladas automaticamente.
-
Instale as dependências do Node.js:
npm install
-
Execute o Ambiente de Desenvolvimento:
npm run dev
-
Compile para Produção:
npm run build
Este projeto está licenciado sob a Licença MIT.