diff --git a/README.md b/README.md index a84b164..9cc393b 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,147 @@ - +
+
+
+ Know your exit before you're locked in.
+ Open-source cloud exit assessment CLI. Runs locally, no account required.
+
+ Quick Start · + What you get · + Providers · + Configuration · + CI/CD · + Ecosystem · + Docs +
-# cloudexit – Cloud Exit Assessment (Open Source) +--- -cloudexit is an open-source tool that helps cloud engineers and technical teams assess **cloud exit readiness**. +## What is cloudexit? -It provides a structured, repeatable way to understand: -- what cloud services are in use -- where vendor lock-in risks exist -- how difficult an exit scenario would be -- what alternative technologies are available +cloudexit is a free, open-source CLI that assesses your **cloud exit readiness**. It connects to your AWS or Azure account with read-only credentials, builds a full resource and cost inventory, scores your vendor lock-in risk across service categories, and produces an HTML, PDF, and JSON report — all locally, with no account required. -cloudexit runs **locally by default**, with no account required. +It is the open-source foundation of the [EscapeCloud](https://escapecloud.io) ecosystem. +## Quick Start -    +**Prerequisites:** Python 3.12+, and either an AWS CLI profile or an Azure CLI session. ---- +```bash +git clone git@github.com:escapecloud/cloudexit.git +cd cloudexit +python -m venv .venv && source .venv/bin/activate +pip install -r requirements.txt +``` -## How cloudexit fits into the EscapeCloud ecosystem +Run your first assessment: -cloudexit is the **Community / Open Source edition** of the EscapeCloud ecosystem. +```bash +# AWS — using your existing CLI profile +python main.py aws --profile default -- **cloudexit (this repository)** - Open-source, offline-first assessment engine +# Azure — using your Azure CLI session +az login +python main.py azure --cli +``` -- **exitcloud.io** - Lightweight Cloud Exit Readiness Platform for individuals, SMEs, and MSPs +Reports are written locally as HTML, PDF, and JSON. Full credential and permissions setup is covered in the [documentation](https://cloudexit.escapecloud.io). -- **escapecloud.io** - Enterprise Cloud Exit Readiness Platform with advanced reporting and governance +## What you get -cloudexit can be used: -- fully offline (Basic assessment) -- connected to a platform (exitcloud.io / escapecloud.io) for richer reports and scoring -- in CI/CD via the [cloudexit GitHub Action](https://github.com/marketplace/actions/github-action-for-cloudexit) for automated assessments +cloudexit produces a structured exit readiness report covering: ---- +- **Resource Inventory** — every service in use within the defined scope +- **Cost Inventory** — monthly cost breakdown within the defined scope +- **Risk Assessment** — rule-based evaluation of exit feasibility across each identified service +- **Alternative Technologies** — open-source and portable replacements for each identified cloud service, with additional details such as company ownership and location -## Documentation + -📘 **Full documentation:** -👉 https://cloudexit.escapecloud.io +## Cloud Providers -The documentation covers: -- getting started and prerequisites -- running assessments -- cloud providers and permissions -- reports and scores -- connected mode (exitcloud.io / escapecloud.io) -- troubleshooting and contribution guidelines +| Provider | Required permissions | +|---|---| +| Amazon Web Services | [AWS permissions →](https://cloudexit.escapecloud.io/cloud-providers/aws.html) | +| Microsoft Azure | [Azure permissions →](https://cloudexit.escapecloud.io/cloud-providers/azure.html) | ---- +See the [permission reference](https://cloudexit.escapecloud.io/cloud-providers/required-permissions.html) for details. -## License +> Google Cloud Platform & Oracle Cloud Infrastructure is on the roadmap. -cloudexit is licensed under the -**GNU Affero General Public License v3 (AGPL-3.0)** +## Configuration -See the [LICENSE](https://www.gnu.org/licenses/agpl-3.0.html) file for details. +The CLI supports multiple input modes for both AWS and Azure. ---- +**AWS** + +| Mode | Command | +|---|---| +| Interactive (manual credentials) | `python main.py aws` | +| AWS CLI profile | `python main.py aws --profile PROFILE` | +| JSON config file | `python main.py aws --config config.json` | +| Non-interactive (env vars, CI) | `python main.py aws --non-interactive` | + +**Azure** + +| Mode | Command | +|---|---| +| Interactive (service principal) | `python main.py azure` | +| Azure CLI session | `python main.py azure --cli` | +| JSON config file | `python main.py azure --config config.json` | +| Non-interactive (env vars, CI) | `python main.py azure --non-interactive` | + +See the [configuration reference](https://cloudexit.escapecloud.io/config/config-schema.html) for required permissions and config file format. + +Want to see how a regulatory-aligned report looks (DORA / FINMA / UK PRA)? Run with `--dry-run` and send the output `payload.json` to request_report@escapecloud.io — we'll generate a sample you can share with your risk or compliance team. + +## CI/CD + +cloudexit runs headlessly in CI pipelines via `--non-interactive` and environment variables. A ready-made GitHub Action is available: + +```yaml +- uses: escapecloud/cloudexit-action@v1 + with: + provider: aws + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: us-east-1 + ESC_EXIT_STRATEGY: 1 + ESC_ASSESSMENT_TYPE: 1 +``` + +[View on GitHub Marketplace →](https://github.com/marketplace/actions/github-action-for-cloudexit) + +## Ecosystem + +cloudexit is the open-source, offline-first tier of a broader platform. + +| Tier | Description | +|---|---| +| **cloudexit** (this repo) | CLI, offline Basic assessment, local reports | +| **[exitcloud.io](https://exitcloud.io)** | Lightweight platform for individuals, SMEs, and MSPs — adds scoring, history, and richer reports | +| **[escapecloud.io](https://escapecloud.io)** | Enterprise platform with advanced reporting, governance, and regulatory evidence (DORA, FINMA, UK PRA) | + +Running cloudexit offline always produces a Basic assessment. Connect it to exitcloud.io or escapecloud.io for full scoring and report features. ## Contributing -Contributions are welcome. +Contributions are welcome — bug reports, documentation improvements, new service mappings, and pull requests. -You can contribute by: -- reporting issues -- improving documentation -- submitting pull requests +See the [contribution guidelines](https://cloudexit.escapecloud.io/contributing/how-to-contribute.html) for details. + +## License -Please see the documentation for contribution guidelines. +cloudexit is licensed under the **GNU Affero General Public License v3 (AGPL-3.0)**. +See [LICENSE](./LICENSE) for details. diff --git a/docs/images/Logo.png b/docs/images/Logo.png new file mode 100644 index 0000000..684ccec Binary files /dev/null and b/docs/images/Logo.png differ diff --git a/docs/images/Report-Screen.png b/docs/images/Report-Screen.png deleted file mode 100644 index 5bb2aa0..0000000 Binary files a/docs/images/Report-Screen.png and /dev/null differ diff --git a/docs/images/Report.png b/docs/images/Report.png new file mode 100644 index 0000000..5c6daf9 Binary files /dev/null and b/docs/images/Report.png differ