Metadata-Version: 2.4
Name: exordos
Version: 2.2.12
Summary: Tools to manager life cycle of Exordos projects.
Author-email: Genesis Corporation <anton.kremenetsky@gmail.com>
License: Apache-2.0
Project-URL: homepage, https://github.com/exordos/exordos/
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click<9.0.0,>=8.1.7
Requires-Dist: rich<14.0.0,>=13.3.3
Requires-Dist: rich-click<2.0.0,>=1.9.7
Requires-Dist: pyyaml<7.0.0,>=6.0.0
Requires-Dist: GitPython<4.0.0,>=3.1.30
Requires-Dist: bazooka<2.0.0,>=1.0.0
Requires-Dist: cryptography<47.0.0,>=45.0.5
Requires-Dist: boto3<2.0.0,>=1.37.0
Requires-Dist: Jinja2<4.0.0,>=3.1.5
Requires-Dist: packaging==26.0
Requires-Dist: simple-term-menu<2.0.0,>=1.6.6
Requires-Dist: certifi>=2026.2.25
Requires-Dist: orjson<4.0.0,>=3.10.0
Requires-Dist: ruamel-yaml==0.17.26
Provides-Extra: dev
Requires-Dist: tox>=4.0.0; extra == "dev"
Requires-Dist: tox-uv; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Provides-Extra: test
Requires-Dist: coverage>=4.0; extra == "test"
Requires-Dist: mock<4.0.0,>=3.0.5; extra == "test"
Requires-Dist: pytest<9.0.0,>=8.0.0; extra == "test"
Requires-Dist: pytest-timer<2.0.0,>=1.0.0; extra == "test"
Provides-Extra: mypy
Requires-Dist: mypy; extra == "mypy"
Provides-Extra: ruff
Requires-Dist: ruff; extra == "ruff"
Provides-Extra: shellcheck
Requires-Dist: shellcheck-py; extra == "shellcheck"
Provides-Extra: docs
Requires-Dist: mkdocs-material==9.1.0; extra == "docs"
Requires-Dist: mkdocs-glightbox; extra == "docs"
Requires-Dist: mkdocs-include-dir-to-nav; extra == "docs"
Requires-Dist: mkdocs-static-i18n[material]; extra == "docs"
Provides-Extra: bin
Requires-Dist: pyinstaller; extra == "bin"
Dynamic: license-file

<p align="center">
  <img src="https://github.com/exordos/exordos/actions/workflows/tests.yml/badge.svg" alt="Tests workflow">
  <img src="https://img.shields.io/pypi/pyversions/exordos" alt="PyPI - Python Version">
  <img src="https://img.shields.io/pypi/dm/exordos" alt="PyPI - Downloads">
  <img src="https://img.shields.io/badge/license-Apache%202.0-blue.svg" alt="License">
</p>

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="logo_black.svg">
    <source media="(prefers-color-scheme: light)" srcset="logo_white.svg">
    <img height="256" src="logo_white.svg" alt="exordos svg logo">
  </picture>
</p>

# Exordos CLI

**📚 CLI Documentation:** [exordos.github.io/exordos](https://exordos.github.io/exordos/) | **📚 Platform Documentation:** [exordos.github.io/exordos_core](https://exordos.github.io/exordos_core/)

Exordos CLI is the official command-line interface for the [Exordos platform](https://github.com/infraguys/exordos_core). It provides a unified toolset for managing the full lifecycle of Exordos projects — from building and provisioning elements to bootstrapping installations, managing backups, and interacting with a running Exordos environment.

# 🚀 To start using Exordos

Install the CLI with a single command:

```bash
curl -fsSL https://repo.exordos.com/install.sh | sudo sh
```

## What Exordos CLI does

Exordos CLI bridges the gap between your local development environment and the Exordos platform. With a single binary you can:

- **Build projects** — compile Exordos project images and artifacts from a declarative `exordos.yaml` configuration.
- **Bootstrap installations** — spin up local virtual machine environments from built images for development and testing.
- **Manage installations** — connect via SSH, list, and remove running Exordos instances.
- **Interact with the platform** — manage elements, IAM, secrets, compute nodes, realms, and more through a rich set of subcommands.
- **Automate backups** — run periodic or one-shot backups of installations with compression, encryption, rotation, and disk-overflow protection.

> **For a full overview of all commands and configuration options, visit the [documentation](https://exordos.github.io/exordos/).**

# 💡 Contributing

Contributing to the project is highly appreciated! However, some rules should be followed for successful inclusion of new changes in the project:

- All changes should be done in a separate branch.
- Changes should include not only new functionality or bug fixes, but also tests for the new code.
- After the changes are completed and **tested**, a Pull Request should be created with a clear description of the new functionality. Add one of the project maintainers as a reviewer.
- Changes can be merged only after receiving approval from one of the project maintainers.
