Nodus Svelte Themes

Nodus

A secure desktop sync system for policy-driven transfers, verifiable receipts, and portable Merkle-backed capsules.

๐Ÿงญ Nodus

Nodus Logo

Secure, verifiable, deterministic file sync for desktop.
Local-first by design. Policy-driven. Receipt-backed.

CI Release Nightly Integration

Runtime Frontend Backend Storage Integrity Mode

Quick Start โ€ข Core Capabilities โ€ข Architecture โ€ข Endpoint Matrix โ€ข Testing


๐Ÿ“Œ What Is Nodus?

Nodus is a desktop sync system that helps you:

  • define source/destination endpoints,
  • attach an explicit sync policy,
  • run deterministic scan/plan/transfer pipelines,
  • generate verifiable receipts,
  • package transfer evidence as portable capsules (.ndc).

It is designed for operators and engineers who want local control, auditability, and clear execution flow instead of opaque black-box sync behavior.


โœจ Core Capabilities

๐Ÿ—‚๏ธ Job + Endpoint Orchestration

  • Endpoint management with typed configuration forms (local, FTP/SFTP/SCP/WebDAV/HTTP(S), cloud variants).
  • Job wizard for source/destination wiring.
  • Policy attachment per job (mode, checksum, include/exclude filters, delete behavior).

โš™๏ธ Deterministic Engine Pipeline

  • Scan: inventories source files and computes BLAKE3 hashes.
  • Plan: diffs current scan against persisted object inventory.
  • Run: executes transfer and emits live state/progress events.
  • Commit policy: mirror / keep-on-delete / trash-on-delete behavior.

๐Ÿงพ Receipt + Integrity System

  • Per-run transfer manifest with file/chunk metadata.
  • BLAKE3 manifest hashing.
  • Merkle-root receipt generation from chunk hashes.
  • Receipt verification workflow (rehash + recompute Merkle root).

๐Ÿ“ฆ Capsule Workflow

  • Pack verified run artifacts into compressed .ndc capsules.
  • Capsule contains manifest.json, header.json, and chunk payloads.
  • Capsule apply flow restores content to a destination endpoint.

๐Ÿ“Š Observability and Audit

  • Live Tauri event stream for job progress/state/logs.
  • Persisted audit logs in local SQLite (audit.db).
  • Logs UI with filters, level toggles, and live tail behavior.

๐ŸŒ UX and Localization

  • Bulma + Svelte UI with dashboard, jobs, runs, scans, receipts, capsules, logs, settings.
  • i18n support for multiple locales (en, fr, hi, zh, es, ru, de, ja, te, ta).

๐Ÿงฑ Architecture

Svelte UI (routes/components)
        โ”‚
        โ”‚ Tauri IPC commands
        โ–ผ
Rust Host (src-tauri/src/main.rs)
        โ”‚
        โ”œโ”€ nodus-engine   (scan/diff/plan/transfer/commit)
        โ”œโ”€ nodus-protocols (local + transport adapters)
        โ”œโ”€ nodus-db       (SQLite + schema + query bridge)
        โ”œโ”€ nodus-receipts (manifest + receipt verify)
        โ”œโ”€ nodus-capsules (.ndc pack/apply)
        โ”œโ”€ nodus-secrets  (OS keyring integration)
        โ””โ”€ nodus-logging  (audit sink + structured log listing)

๐Ÿ”„ Execution Flow

  1. Create endpoints.
  2. Create a job and assign a policy.
  3. Run Scan to build source inventory.
  4. Run Plan to produce sync operations (copy, update, delete).
  5. Run Run to execute transfer and commit behavior.
  6. Generate receipt (manifest hash + Merkle root).
  7. Optionally pack capsule (.ndc) from receipt.
  8. Re-verify receipts or apply capsules later.

๐Ÿ“‚ Repository Layout

.
โ”œโ”€ src/                         # Svelte app (routes, components, stores, i18n)
โ”œโ”€ src-tauri/
โ”‚  โ”œโ”€ src/main.rs               # Tauri command surface + runtime wiring
โ”‚  โ”œโ”€ crates/
โ”‚  โ”‚  โ”œโ”€ engine/                # scan/diff/plan/transfer/commit stages
โ”‚  โ”‚  โ”œโ”€ protocols/             # endpoint protocol adapters
โ”‚  โ”‚  โ”œโ”€ db/                    # SQLite init + query facade
โ”‚  โ”‚  โ”œโ”€ receipts/              # manifest/receipt record + verify
โ”‚  โ”‚  โ”œโ”€ capsules/              # .ndc pack/apply logic
โ”‚  โ”‚  โ”œโ”€ logging/               # audit logging stack
โ”‚  โ”‚  โ”œโ”€ secrets/               # keyring-backed secret storage
โ”‚  โ”‚  โ”œโ”€ watcher/               # filesystem watch utilities
โ”‚  โ”‚  โ””โ”€ cloud/                 # cloud adapter crate (integration path)
โ”œโ”€ tests/e2e/                   # Playwright UI/E2E suite
โ”œโ”€ docker/                      # integration service containers (FTP/SFTP/etc.)
โ””โ”€ .github/workflows/           # CI, nightly integration, release workflows

๐Ÿš€ Quick Start

1) Prerequisites

  • Node.js >= 20.10.0
  • pnpm >= 9
  • Rust stable toolchain
  • Tauri v2 system prerequisites for your OS

2) Install Dependencies

pnpm install

3) Run UI Dev Server

pnpm dev

4) Run Desktop App (Tauri)

pnpm tauri:dev

5) Build Desktop App

pnpm tauri:build

๐Ÿงช Testing

Frontend checks

pnpm check

E2E tests (Playwright)

pnpm test:e2e

Manual split mode:

pnpm e2e:start
pnpm e2e

Rust workspace tests

cd src-tauri
cargo test --workspace --all-features

๐Ÿ”Œ Endpoint Support Matrix

Current runtime status in this repository:

Endpoint Kind UI Config Protocol Crate engine_run Destination Factory
Local (local) โœ… โœ… โœ…
FTP / FTPS โœ… โœ… ๐Ÿšง
SFTP / SCP โœ… โœ… ๐Ÿšง
HTTP(S) / WebDAV โœ… โœ… ๐Ÿšง
S3 / GCS / Azure Blob โœ… โš ๏ธ (cloud crate path) ๐Ÿšง
Dropbox / Google Drive โœ… โš ๏ธ (cloud crate path) ๐Ÿšง

Legend:

  • โœ… implemented and wired
  • ๐Ÿšง scaffolded / integration pending in engine_run
  • โš ๏ธ available in dedicated crate path but not currently wired into active run flow

๐Ÿ—ƒ๏ธ Data, Logs, and Secrets

Nodus stores runtime data locally under your OS app-data directory (or NODUS_DATA_DIR if set).

Typical layout:

Nodus/
โ”œโ”€ nodus.sqlite           # primary relational state
โ”œโ”€ nodus.kv               # key-value store (redb)
โ”œโ”€ receipts/
โ”‚  โ””โ”€ <run_id>/manifest.json
โ””โ”€ logs/
   โ”œโ”€ audit.db            # structured audit entries
   โ””โ”€ nodus.log           # rolling file logs

Secrets are stored via OS keyring APIs through nodus-secrets.


๐Ÿงฐ Useful Scripts

From package.json:

  • pnpm dev - Vite dev server
  • pnpm build - production web bundle
  • pnpm tauri:dev - desktop dev mode
  • pnpm tauri:build - desktop production build
  • pnpm check - Svelte/TS checks
  • pnpm test:e2e - end-to-end tests
  • pnpm win:portable / pnpm win:msi - Windows packaging script entry points

๐Ÿงช Integration Services (Optional)

Bring up local FTP/SFTP test services:

docker compose -f docker/compose.integration.yml up --build

Stop them:

docker compose -f docker/compose.integration.yml down

โš ๏ธ Current Implementation Notes

  • The app is intended to run in Tauri desktop context; browser-only mode is limited.
  • engine_cancel is currently a placeholder command.
  • Windows packaging script files are present but currently minimal stubs.

๐Ÿงญ Roadmap Direction

  • Expand runtime endpoint wiring beyond local destination.
  • Harden cancellation/resume semantics in run lifecycle.
  • Improve cross-protocol integration test coverage.
  • Extend capsule verification/apply ergonomics.
  • Continue UI polish and operator workflow refinement.

๐Ÿค Contributing

Contributions are welcome, especially around:

  • protocol integration wiring,
  • receipt/capsule correctness tests,
  • engine reliability and performance,
  • UI/UX improvements for operational workflows.

๐Ÿ‘ค Author

Mahesh Chandra Teja Garnepudi
GitHub: MaheshChandraTeja


Authors

Mahesh Chandra Teja Garnepudi
Sagarika Srivastava

Built at Kairais Tech


License

Private project for now. Licensing details will be published later.

Top categories

Loading Svelte Themes