Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

HilthonTT/Helix

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Helix logo

Helix

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.

CI status MIT License Latest release Windows 10+

.NET 9 C# .NET MAUI Entity Framework Core SQLite + SQLCipher xUnit

📋 Table of Contents

  1. 🤖 Introduction
  2. 🔋 Features
  3. 🔒 Security
  4. 🏗️ Architecture
  5. 🤸 Quick Start
  6. 🧪 Building & Testing
  7. 📦 Publishing to a Folder
  8. ⚙️ Continuous Integration
  9. 📄 License

🤖 Introduction

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.

🔋 Features

👉 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.

🔒 Security

  • 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: .helixvault files 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.dll WNet 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.

🏗️ Architecture

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.

🤸 Quick Start

Follow these steps to set up the project locally on your machine.

Prerequisites

Make sure you have the following installed on your machine:

Cloning the Repository

git clone https://github.com/HilthonTT/Helix.git

Open Helix.sln in Visual Studio 2022, set Helix.App as the startup project, and run.

🧪 Building & Testing

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.csproj

The MAUI app itself (Helix.App) is normally launched from Visual Studio 2022 because of its Windows packaging configuration.

📦 Publishing to a Folder

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:\Helix

Then 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-arm64 instead.
  • -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 by Helix.App.csproj only, 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 the C:\Helix folder never touches your drives, settings, or audit logs.

⚙️ Continuous Integration

Every push and pull request to main runs the CI workflow on a Windows runner:

  1. Install the .NET 9 SDK and the MAUI workload
  2. Restore and build Helix.sln in Release
  3. Run the Application, Infrastructure, and Architecture test suites

📄 License

Helix is licensed under the MIT License.

About

Cross-platform NAS drive manager built with .NET MAUI — connect, disconnect and mount network drives with audit logging, SQLite persistence, and multilingual UI (EN/FR/NL/DE/ID/JA).

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.