Metadata-Version: 2.1
Name: cryton-core
Version: 1.2.0
Summary: Advanced scheduler for attack scenarios
Home-page: https://gitlab.ics.muni.cz/cryton
License: MIT
Keywords: cryton,core,advanced,scheduler
Author: Ivo Nutár
Author-email: nutar@ics.muni.cz
Maintainer: Jiří Rája
Maintainer-email: raja@ics.muni.cz
Requires-Python: >=3.8,<3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: AMQPStorm (>=2.10.4,<3.0.0)
Requires-Dist: APScheduler (>=3.8.1,<4.0.0)
Requires-Dist: Django (>=4.0.1,<5.0.0)
Requires-Dist: Jinja2 (>=3.0.3,<4.0.0)
Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
Requires-Dist: SQLAlchemy (>=1.4.29,<2.0.0)
Requires-Dist: click (>=8.1.3,<9.0.0)
Requires-Dist: django-cors-headers (>=3.13.0,<4.0.0)
Requires-Dist: djangorestframework (>=3.14.0,<4.0.0)
Requires-Dist: drf-spectacular (>=0.26.0,<0.27.0)
Requires-Dist: drf-spectacular-sidecar (>=2023.3.1,<2024.0.0)
Requires-Dist: gunicorn (>=20.1.0,<21.0.0)
Requires-Dist: psycopg2-binary (>=2.9.5,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: pytz (>=2022.7,<2023.0)
Requires-Dist: rpyc (>=5.3.0,<6.0.0)
Requires-Dist: schema (>=0.7.5,<0.8.0)
Requires-Dist: structlog (>=22.3.0,<23.0.0)
Requires-Dist: tzlocal (>=4.1,<5.0)
Requires-Dist: uuid (>=1.30,<2.0)
Requires-Dist: uvicorn (>=0.20.0,<0.21.0)
Project-URL: Documentation, https://cryton.gitlab-pages.ics.muni.cz/cryton-documentation/
Project-URL: Repository, https://gitlab.ics.muni.cz/cryton/cryton-core
Description-Content-Type: text/markdown

![Coverage](https://gitlab.ics.muni.cz/cryton/cryton-core/badges/master/coverage.svg)

[//]: # (TODO: add badges for python versions, black, pylint, flake8, unit tests, integration tests)

# Cryton Core
Cryton Core is the center point of the Cryton toolset. It is used for:
- Creating, planning, and scheduling attack scenarios
- Generating reports from attack scenarios
- Controlling Workers and scenarios execution

Cryton toolset is tested and targeted primarily on **Debian** and **Kali Linux**. Please keep in mind that **only 
the latest version is supported** and issues regarding different OS or distributions may **not** be resolved.

For more information see the [documentation](https://cryton.gitlab-pages.ics.muni.cz/cryton-documentation/latest/components/core/).

## Quick-start
To be able to execute attack scenarios, you also need to install **[Cryton Worker](https://gitlab.ics.muni.cz/cryton/cryton-worker)** 
and **[Cryton CLI](https://gitlab.ics.muni.cz/cryton/cryton-cli)** packages.  
Optionally you can install [Cryton Frontend](https://gitlab.ics.muni.cz/cryton/cryton-frontend) for a non-command line experience.

Make sure Git, Docker, and Docker Compose plugin are installed:
- [Git](https://git-scm.com/)
- [Docker Compose](https://docs.docker.com/compose/install/)

Optionally, check out these Docker [post-installation steps](https://docs.docker.com/engine/install/linux-postinstall/).

The following script clones the repository and runs the Docker Compose configuration. The compose file contains the necessary prerequisites
(Postgres, PgBouncer, RabbitMQ), Cryton Core itself (listener and REST API), and a proxy that allows access to the Cryton Core's REST API
at http://0.0.0.0:8000/.
```shell
git clone https://gitlab.ics.muni.cz/cryton/cryton-core.git
cd cryton-core
sed -i "s|CRYTON_CORE_RABBIT_HOST=127.0.0.1|CRYTON_CORE_RABBIT_HOST=cryton-rabbit|" .env
sed -i "s|CRYTON_CORE_DB_HOST=127.0.0.1|CRYTON_CORE_DB_HOST=cryton-pgbouncer|" .env
sed -i "s|CRYTON_CORE_API_USE_STATIC_FILES=false|CRYTON_CORE_API_USE_STATIC_FILES=true|" .env
docker compose up -d
```

For more information see the [documentation](https://cryton.gitlab-pages.ics.muni.cz/cryton-documentation/latest/components/core/).

## Contributing
Contributions are welcome. Please **contribute to the [project mirror](https://gitlab.com/cryton-toolset/cryton-core)** on gitlab.com.
For more information see the [contribution page](https://cryton.gitlab-pages.ics.muni.cz/cryton-documentation/latest/contribution-guide/).

