A Windows desktop app for managing connections to your NAS drives —
map network shares to drive letters, monitor their status, and keep your credentials encrypted at rest.
- 🤖 Introduction
- 🔋 Features
- 🔒 Security
- 🏗️ Architecture
- 🤸 Quick Start
- 🧪 Building & Testing
- 📦 Publishing to a Folder
- ⚙️ Continuous Integration
- 📄 License
Helix is a .NET MAUI desktop application for Windows that manages connections to NAS (network-attached storage) drives. It maps network shares to Windows drive letters via the native Win32 WNet API, shows live connection status and storage usage, and stores your drive configurations in an encrypted local database.
👉 Connect/Disconnect NAS Drives: Map network shares to drive letters individually or all at once. Failed connections — for example an incorrect username or password — are reported with a clear per-drive error message instead of interrupting the app.
👉 Connection Dashboard: See at a glance which drives are connected, total storage usage, and a live status chart.
👉 Auto-Connect on Startup: Optionally reconnect all your drives when the app launches, and start Helix with Windows.
👉 Encrypted Import/Export: Back up your drive configurations to a passphrase-protected .helixvault file (AES-256-GCM) and restore them on any machine.
👉 Audit Logs: Every drive change is recorded automatically so you can track what happened and when.
👉 Multi-User: Each user account sees only their own drives, settings, and audit logs.
👉 Multilingual: Available in English, French, German, Dutch, Indonesian, and Japanese.
- Encrypted database: The local SQLite database is encrypted with SQLCipher. The key is generated with a cryptographically secure RNG and stored in Windows secure storage.
- Password hashing: User passwords are hashed with PBKDF2-SHA512 (600k iterations, per OWASP guidance). Older hashes are transparently upgraded on login.
- Encrypted exports:
.helixvaultfiles are encrypted with AES-256-GCM using a key derived from your passphrase (PBKDF2-SHA512). - Native credential handling: Drive credentials are passed to Windows through the
mpr.dllWNet API — never through a command line where they could be observed. - Per-user isolation: All queries are scoped to the logged-in user; one account can never read another account's drives or logs.
Helix follows Clean Architecture — dependencies only point inward, enforced by automated architecture tests (NetArchTest):
src/
├── SharedKernel # Result, Error, Entity, shared primitives
├── Helix.Domain # Entities (Drive, User, Settings, Auditlog) + repository interfaces
├── Helix.Application # Feature-sliced use cases (Drives, Users, Settings, Auditlogs)
├── Helix.Infrastructure # EF Core/SQLite, NAS connector, cryptography, auth
└── Helix.App # MAUI presentation layer (pages, modals, view models)
tests/
├── Application.UnitTests
├── Infrastructure.UnitTests
└── ArchitectureTests # NetArchTest rules that enforce the layering
Use cases follow a consistent handler pattern: validate → authorize → apply domain rules → persist → return a Result. Expected failures flow through Result/Error values — handlers never throw.
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
- Git
- Visual Studio 2022 with the .NET MAUI workload
- Windows 10 (build 19041) or later
Cloning the Repository
git clone https://github.com/HilthonTT/Helix.gitOpen Helix.sln in Visual Studio 2022, set Helix.App as the startup project, and run.
Build the whole solution and run the test suites from the repository root:
dotnet build Helix.sln
dotnet test tests/Application.UnitTests/Application.UnitTests.csproj
dotnet test tests/Infrastructure.UnitTests/Infrastructure.UnitTests.csproj
dotnet test tests/ArchitectureTests/ArchitectureTests.csprojThe MAUI app itself (Helix.App) is normally launched from Visual Studio 2022 because of its Windows packaging configuration.
To compile the app into a single deployable folder (e.g. C:\Helix) containing Helix.App.exe and everything it needs to run, execute this from the repository root:
dotnet publish src/Helix.App/Helix.App.csproj -f net9.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win-x64 -o C:\HelixThen start the app with C:\Helix\Helix.App.exe.
Notes
- The output is fully self-contained: the .NET runtime, the Windows App SDK runtime, and the native SQLCipher library are all included, so the target machine needs nothing pre-installed.
- For ARM64 Windows machines, use
-p:RuntimeIdentifierOverride=win-arm64instead. -p:RuntimeIdentifierOverride(rather than the usual-r) is required: passing the runtime identifier as a global CLI property would leak into the referenced class libraries and fail the Windows App SDK build. The override is picked up byHelix.App.csprojonly, which turns it into a self-contained, RID-specific publish.- The folder is portable — you can copy it to another location or machine and run it from there.
- User data is not stored in this folder. The encrypted database lives in the per-user app data directory (
%LOCALAPPDATA%), so replacing or upgrading theC:\Helixfolder never touches your drives, settings, or audit logs.
Every push and pull request to main runs the CI workflow on a Windows runner:
- Install the .NET 9 SDK and the MAUI workload
- Restore and build
Helix.slnin Release - Run the Application, Infrastructure, and Architecture test suites
Helix is licensed under the MIT License.