> For the complete documentation index, see [llms.txt](https://codice.gitbook.io/codice-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codice.gitbook.io/codice-docs/overview.md).

# Overview

\
**What are the requirements to install Codice?**\
Codice can be installed on AWS, Azure, Google Cloud, or locally in a VMware virtual machine.\
The current optimal requirements for running Codice are:

* 8 GB RAM
* 4 Cores
* 16 GB Storage

\
**Which languages and tools does Codice currently support?**\
Currently, Codice support Java and integration with the main VCS and CI/CD tools.

* **Language**\
  Java: Version 1.8 and above.
* **Build and dependency management tools**\
  Maven: Version 3.9 and above.

More languages are planned for the near future.<br>

**What does the installation process involve?**\
The installation process is as simple as deploying our virtual machine within your infrastructure.

\
**What does this virtual machine contain?**\
The virtual machine contains the entire Codice solution, ready to be configured and used as soon as it is started.

\
**Where should I place the machine, and what access does it require?**\
The virtual machine can be deployed anywhere within your infrastructure. It simply needs connectivity with:

* The Continuous Integration system: this system transparently invokes Codice when it needs to generate or maintain unit tests.
* The code repository: once Codice is invoked, it needs to access the code to generate and/or modify the applicable unit tests. After completing the process, it automatically includes the tests in the repository.
* OpenAI: Codice relies on artificial intelligence (currently from OpenAI) to generate the tests. Therefore, it needs connectivity with this service.

\
**What does the configuration of Codice involve?**\
Once the machine is deployed and running, you can access the web front-end at:\
http\://\<ASSIGNED IP>/codice\
\
From here, you can configure the code repositories that will integrate with the solution. To do this, select “New Repository” and complete the requested information, which includes:

* Git URL
* User
* User’s private SSH key
* List of exceptions (wildcard). You can download an example of the exceptions file from the same form.<br>

Once this is configured in Codice, you need to perform the necessary configuration in the repository:

* Create the user for Codice
* Create the user’s SSH key and save the public key in the newly created user’s profile
* Grant the user permission to the repositories you want to integrate with Codice
* If you are using a custom `settings.xml`, ensure that the user specified in the `settings.xml` has the necessary permissions to download internal dependencies from the artifact repository.

\
Finally, you will need to create a pipeline in the CI system that will invoke Codice with each code change.
