.NET-Native
Orchestration Platform

Deploy .NET applications as isolated OS processes across multiple servers. No containers, no image registries, no Kubernetes — just your code running natively.

Why AppCluster?

Everything you need to run .NET apps in production — without the container overhead.

Single Binary per Node

Every server runs the same AppCluster.Node application. No separate control plane, no agent processes — one binary does it all.

Built-in HA Replication

Leader-follower state replication with automatic leader election and failover. SQLite-persisted snapshots, SSE-streamed changes — no external database, HA with 3 or 5 nodes.

Plugins & Modules

5 hot-reloadable core plugins (collectible AssemblyLoadContext) plus 30+ optional modules for load balancers, DNS, SSL, databases, debugging, CI/CD, cron, alerting, metrics, backups, AD, Docker, and more.

🔒

OS-Level Isolation

Dedicated OS users, filesystem permissions, network namespaces (Linux) or Windows Firewall, AppArmor profiles, and cgroups v2 resource limits.

Deployment Strategies

Replace, rolling, and blue-green deployments with automatic rollback, label-based scheduling, and placement policies. Health checks with crash restart and exponential backoff.

📦

.NET, Node.js, Static, Docker

Deploy native .NET / Node.js apps as isolated OS processes, static sites via per-app Caddy, and Docker containers side-by-side. Each runtime's reconciler discovers every installed major version and refuses to schedule mismatched workloads.

REST API + GUI + CLI

Manage your cluster however you prefer. Full REST API with per-resource RBAC layer-2 grants, tabbed web dashboard, and declarative YAML/JSON configuration via CLI.

Architecture

Every node is equal. A leader is elected for writes — all nodes run local reconciliation.

Leader / Follower Replication Node 1 (Leader) <-------> Node 2 <-------> Node 3 | | | LocalReconciler LocalReconciler LocalReconciler | | | [app1, app2] [app1, app3] [app2, app3]

1. Declare

Call the REST API or apply a YAML config. The leader applies your desired state and persists a snapshot.

2. Replicate

State changes stream to every follower over SSE. No separate database — each node persists its own SQLite snapshot.

3. Converge

Each node's LocalReconciler compares desired vs. actual state and starts, stops, or restarts apps as needed.

Quick Start

Get a single node running in under a minute.

# Build dotnet build # Run a node (API on :5100, replication on :5101, internal on :5102) dotnet run --project src/AppCluster.Node # Open the dashboard # http://localhost:5100

Requires .NET 10 SDK. See Install for production setup or Docs for multi-node clusters.

Built for Production

Secrets Management

AES-256-GCM encrypted secrets injected as environment variables. Namespace-scoped, module-managed, never stored in plain text.

YARP Reverse Proxy + Load Balancers

Built-in YARP reverse proxy with dynamic routes, route templates, and section overrides. External Nginx / HAProxy managed through a unified module with SSH or Data Plane API.

DNS & SSL Automation

Let's Encrypt (HTTP-01 and DNS-01), internal CA, Cloudflare DNS. Provider pattern — plug in your own DNS/SSL backend.

Enterprise Auth & Layered RBAC

Layer 1 namespace roles (viewer / operator / admin / super-admin) PLUS layer 2 per-resource grants for fine-grained access. BCrypt passwords, per-user API tokens, WebAuthn / passkeys, TOTP 2FA, LDAP / AD sync. Account lock + force-logout cutoff. Per-session tracking with IP / user-agent capture and granular revoke.

Metrics, Alerts, Logs

In-memory node and app metrics with dashboard sparklines. Alert rules on metrics and logs with acknowledge flow + Incidents page. Distributed SQLite log persistence with fan-out search across every node.

Backups, Cron, Webhooks, CI/CD

Encrypted backup/restore ZIP snapshots with PITR wizard. Master-coordinated cron jobs (SSH execution) and HTTP jobs. Webhook delivery feed. Built-in CI/CD pipelines with .NET / Node.js / Docker / generic builders and registry-publish actions.

Database Credentials Broker

DatabaseManager + Postgres / MySQL / MSSQL providers. Cluster does not host the engines — points at ones you already run (RDS, Azure SQL, on-prem). Auto-provisions per-app SQL credentials at deploy time, manages per-developer grants with auto-expiry, drift detection, in-browser query workbench.

Live Debugger & Memory Dumps

Attach VS / VS Code / Rider to any running pod across the cluster — the Debugger module spawns netcoredbg / vsdbg / msvsmon and returns ready-to-paste IDE configs. In-browser ClrMD dump exploration for crash and manual dumps. Time-boxed sessions, audit-logged.