.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.
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:5100Requires .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.