> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeuscloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Development Guide

> Follow the steps below to set up ZeusCloud in development mode.

## Requirements

1. `node` version `18.13`
2. `docker` and `docker-compose`

## Setup Instructions

Run containers in development mode:

```bash Bash theme={null}
cd frontend && yarn && cd -
docker-compose down && docker-compose -f docker-compose.dev.yaml --env-file .env.dev up --build
```

<Note>
  If you are not deploying locally (on an AWS VM, for instance), you will need to change the `WEBSITE_DOMAIN` and `REACT_APP_API_DOMAIN` environment variables in the `.env.dev` file before deploying. Examples are `http://<your-vm-ip>:80` or `https://<your-deployed-domain>:443`.
</Note>

## Data Reset

The neo4j instance stores data pulled from the cloud environments. The postgres instance stores information like account connection settings and security rule results. Reset neo4j and/or postgres data with the following:

```bash Bash theme={null}
rm -rf .compose/neo4j
rm -rf .compose/postgres
```

## Frontend Development

Make the the code changes in the `frontend/` directory and save. The frontend will automatically reload!

## Backend Development

Make the the code changes in the `backend/` directory. Then, restart the backend container:

```bash Bash theme={null}
docker-compose -f docker-compose.dev.yaml --env-file .env.dev up --no-deps --build backend
```

## Cartography Development

ZeusCloud uses Lyft's cartography as an asset inventory. To make changes, update the `cartography/` diredctory and restart the cartography server:

```bash Bash theme={null}
docker-compose -f docker-compose.dev.yaml --env-file .env.dev up --no-deps --build cartography
```
