Windows Server · Hyper V · Service Fabric · Active Directory · GitOps · Zero Trust · Browser RDP
Why Argus · Features · Quick start · Architecture · Documentation · Contributing
Most "leave the cloud" articles are opinion pieces. Argus is the working record of a real AWS exit: thirty four architecture decision records with every option weighed and every cost named, each application traced down to its service account and backup, a security architecture rooted in hardware, a full bill of materials, and a web console benchmarked against AWS, Google Cloud and Azure, with a tested prototype you can open in your browser today.
It also says plainly what has not been proven. The validation status grades every claim as verified, grounded, reasoned or assumed, and lists the eleven assumptions most likely to be wrong. Read it before trusting anything else here.
⭐ If Argus saves you a week of research or a cloud bill, star the repository. It helps other engineers planning a cloud exit find it.
Cloud repatriation is now a mainstream decision, yet almost nothing public shows the full picture: identity, secrets, PKI, storage, queues, observability, backups, disaster recovery, licensing and the operator experience, all in one coherent design. Argus is that picture, written down decision by decision so you can reuse it, challenge it, or fork it.
| Replaces | EC2, S3, RDS, Cognito, IAM, Secrets Manager, KMS, Lambda, SQS and SNS, ElastiCache, CloudWatch, X Ray, ECR, CodePipeline, SageMaker |
| Platform base | Windows Server 2025 Datacenter · Hyper V · Failover Clustering · Storage Spaces Direct · Service Fabric · Active Directory |
| Security | Hardware root of trust, WDAC code integrity, IPsec domain isolation, no standing admin rights, object locked backups at two sites |
| Control surface | Web console (.NET 10 and Next.js) · argus PowerShell module and CLI · a GitOps repository that is the only writer of production |
| Targets | RPO 15 minutes · RTO 8 hours for full site loss · 99.9% availability · under 10 minutes from git push to a signed production deploy |
| Linux exceptions | Three hosts, each justified by an ADR: the GPU node, the Wazuh SIEM manager and the Guacamole gateway. OPNsense firewalls are appliances, not servers. |
| Status | Planning · v0.12.0 · October 2026 |
- 34 Architecture Decision Records covering compute, storage, identity, secrets, networking, observability, backups, CI/CD and machine learning, each with the alternatives rejected and why.
- Application infrastructure map tracing every workload to its service account, bucket, port, certificate and backup.
- Security architecture with a threat model, controls and the evidence each control produces.
- Hardware and licensing bill of materials, including Windows Server and SQL Server costs.
- Runbooks for day one, failure drills and recovery.
- Docker Compose stack with OpenBao secrets, SeaweedFS S3 compatible object storage, PostgreSQL with PostGIS, Garnet cache, NATS JetStream queues, Nomad, Prometheus, Grafana, Loki, Alertmanager and Grafana Alloy.
- An S3 parity harness that runs the same tests against SeaweedFS and LocalStack to prove where the replacement matches AWS and where it deliberately does not.
- An Argus PowerShell module for scripting secrets, storage, queues, logs, metrics and alerts.
- Fourteen screens, a command palette, sortable and token filtered tables, and recorded browser RDP and SSH in a drawer that survives navigation.
- Just in time elevation with a countdown, and the GitOps reconciler's plan and blast radius shown before any change is approved.
- Every action carries state. Approve, reject, grant, revoke, rotate or promote, and the next screen, the audit trail and the navigation counts all change. Reversible actions offer Undo.
- Shareable views. The tab and filter live in the URL, and views can be saved by name.
- Operator grade tables with bulk selection, keyboard row navigation, a remembered column picker and CSV export of exactly the rows shown.
- One inbox for incidents, alerts, approvals, expired waivers, overdue secrets, failed pipelines and firing alarms.
- Incidents, silences and alarms, with a commander, a timeline that folds in the audit, and alarm rules with live preview.
- Policy that is enforced, not described. Change freezes, two person approval for Tier 0, and error budgets per application.
- Auditor ready evidence. A hash chained audit trail you can verify and watch break, and plans shown as unified diffs.
- Advisor with about thirty rules across security, fault tolerance, cost, performance and operations, plus time boxed risk acceptance.
- Data freshness indicators, idle lock resumed by a security key, and automatic light and dark themes.
408 assertions across 31 suites in headless Chromium against the rendered DOM: axe core WCAG 2.1 A and AA on every screen and overlay, real keyboard traversal with focus trapping, contrast computed from rendered pixels, six viewport widths, WCAG 1.4.10 reflow at 200% and 400% zoom, a density budget for a 1366×768 laptop, layout leak detection, and a security pass proving innerHTML appears nowhere. Sandbox checks and stress budgets run alongside.
Open the console prototype. No build, no server, no network:
open platform/console/prototype/index.htmlRun the test suite:
npm ci
npx playwright install chromium
npm testRun every suite, including sandbox and stress:
npm run test:allRun the day one lab runbook: five days on one spare machine that test the three assumptions most likely to be wrong. It costs a Windows evaluation licence and a week. Ordering hardware first risks $85k to $110k against an untested design.
| Layer | Argus component | AWS equivalent |
|---|---|---|
| Compute | Hyper V failover cluster, Service Fabric | EC2, ECS, Lambda |
| Storage | Storage Spaces Direct, SeaweedFS | EBS, S3 |
| Databases | SQL Server, PostgreSQL with PostGIS | RDS |
| Cache and messaging | Garnet, NATS JetStream | ElastiCache, SQS, SNS |
| Identity | Active Directory, AD FS, tiered administration | IAM, Cognito |
| Secrets and PKI | OpenBao, AD CS | Secrets Manager, KMS, ACM |
| Edge and network | Caddy with Coraza WAF, YARP, OPNsense HA with CrowdSec, IPsec | ALB, WAF, Security Groups |
| Observability | Prometheus, Grafana, Loki, OpenTelemetry, Sysmon, Wazuh | CloudWatch, X Ray, GuardDuty |
| Delivery | GitHub Actions on self hosted runners, Forgejo mirror, first party GitOps reconciler, OpenTofu, DSC v3 | CodePipeline, CloudFormation |
| Remote access | Apache Guacamole browser RDP and SSH | Systems Manager Session Manager |
| Machine learning | Dedicated GPU node | SageMaker |
docs/ | The plan. Read these first. |
docs/adr/ | One file per architecture decision, numbered. |
docs/runbooks/ | Operational procedures, one per failure or task. |
platform/console/ | Argus Console: the web control surface, prototype and server. |
platform/cli/ | The Argus PowerShell module and thin CLI. |
platform/compose/ | The self hosted stack for local development and parity testing. |
platform/gitops/ | Desired state of the platform: apps, VMs, buckets, secret references, policies. |
platform/policies/ | WDAC, GPO baselines, firewall and IPsec rules, Wazuh rules. |
platform/iac/ | OpenTofu with the Hyper V provider, and DSC v3 for hosts and VMs. |
CHANGELOG.md | Every change to the plan, dated, with the reason. |
- Master plan: what is being built, the targets, the phases.
- Decisions: why every component was chosen, what it replaces and what was rejected.
- Application infrastructure map: every application down to its service account, bucket, port and backup.
- Security architecture: controls, threat model and evidence.
- Network and sites: zones, VLANs, addressing and the two sites.
- Control plane: the console, the CLI and the GitOps flow.
- Phases and runbooks: the schedule with exit gates.
- Hardware and licensing: bill of materials and licensing.
- Open questions: decisions still needed.
- Validation status: what is actually tested and what is not.
- Console design: every screen, including browser RDP.
- Console UX benchmark: the AWS, GCP and Azure comparison and every bug found.
- Console stress and performance: budgets and results.
Nothing about this platform changes without a commit here. A new component, a removed one, a changed port or a rotated key policy is an ADR in docs/adr/, a line in the changelog, and a change under platform/. The git history is the history of why the platform is the way it is.
Contributions, challenges and corrections are welcome. The most valuable contribution is proving an assumption wrong. Read the contributing guide, the code of conduct and the security policy, then open an issue using the Assumption proved wrong or Challenge a decision template.
- ZD Claude Plugin: Claude Code plugins for deploys, operations and security, pointed at
platform/gitops/anddocs/runbooks/. - QGIS MCP: a Model Context Protocol server that connects AI assistants to QGIS.
Built and maintained by Adil Munawar, ML Research and Development. Portfolio: adilmunawar.vercel.app.
Released under the MIT License.
If this project helped you, please give it a ⭐ and share it with someone planning a cloud exit.