Files
prowler/docs/installation/prowler-app.md

6.4 KiB
Raw Blame History

Installation

Prowler App supports multiple installation methods based on your environment.

Refer to the Prowler App Tutorial for detailed usage instructions.

???+ warning Prowler configuration is based in .env files. Every version of Prowler can have differences on that file, so, please, use the file that corresponds with that version or repository branch or tag.

=== "Docker Compose"

_Requirements_:

* `Docker Compose` installed: https://docs.docker.com/compose/install/.

_Commands_:

``` bash
curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/docker-compose.yml
curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/.env
docker compose up -d
```

> Containers are built for `linux/amd64`. If your workstation's architecture is different, please set `DOCKER_DEFAULT_PLATFORM=linux/amd64` in your environment or use the `--platform linux/amd64` flag in the docker command.

> Enjoy Prowler App at http://localhost:3000 by signing up with your email and password.

???+ note
    You can change the environment variables in the `.env` file. Note that it is not recommended to use the default values in production environments.

???+ note
    For a secure setup, leave empty or remove `DJANGO_TOKEN_SIGNING_KEY` and `DJANGO_TOKEN_VERIFYING_KEY` in `.env` before first start. When absent, the API autogenerates a unique key pair and stores it in `~/.config/prowler-api` (non-container) or the bound Docker volume in `_data/api` (container). Never commit or reuse static/default keys. To rotate, delete the stored key files and restart the API.

???+ note
    There is a development mode available, you can use the file https://github.com/prowler-cloud/prowler/blob/master/docker-compose-dev.yml to run the app in development mode.

???+ warning
    Google and GitHub authentication is only available in [Prowler Cloud](https://prowler.com).

=== "GitHub"

_Requirements_:

* `git` installed.
* `poetry` installed: [poetry installation](https://python-poetry.org/docs/#installation).
* `npm` installed: [npm installation](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).
* `Docker Compose` installed: https://docs.docker.com/compose/install/.

???+ warning
    Make sure to have `api/.env` and `ui/.env.local` files with the required environment variables. You can find the required environment variables in the [`api/.env.template`](https://github.com/prowler-cloud/prowler/blob/master/api/.env.example) and [`ui/.env.template`](https://github.com/prowler-cloud/prowler/blob/master/ui/.env.template) files.

_Commands to run the API_:

``` bash
git clone https://github.com/prowler-cloud/prowler \
cd prowler/api \
poetry install \
eval $(poetry env activate) \
set -a \
source .env \
docker compose up postgres valkey -d \
cd src/backend \
python manage.py migrate --database admin \
gunicorn -c config/guniconf.py config.wsgi:application
```

???+ important
    Starting from Poetry v2.0.0, `poetry shell` has been deprecated in favor of `poetry env activate`.

    If your poetry version is below 2.0.0 you must keep using `poetry shell` to activate your environment.
    In case you have any doubts, consult the Poetry environment activation guide: https://python-poetry.org/docs/managing-environments/#activating-the-environment

> Now, you can access the API documentation at http://localhost:8080/api/v1/docs.

_Commands to run the API Worker_:

``` bash
git clone https://github.com/prowler-cloud/prowler \
cd prowler/api \
poetry install \
eval $(poetry env activate) \
set -a \
source .env \
cd src/backend \
python -m celery -A config.celery worker -l info -E
```

_Commands to run the API Scheduler_:

``` bash
git clone https://github.com/prowler-cloud/prowler \
cd prowler/api \
poetry install \
eval $(poetry env activate) \
set -a \
source .env \
cd src/backend \
python -m celery -A config.celery beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
```

_Commands to run the UI_:

``` bash
git clone https://github.com/prowler-cloud/prowler \
cd prowler/ui \
npm install \
npm run build \
npm start
```

> Enjoy Prowler App at http://localhost:3000 by signing up with your email and password.

???+ warning
    Google and GitHub authentication is only available in [Prowler Cloud](https://prowler.com).

Update Prowler App

Upgrade Prowler App installation using one of two options:

Option 1: Update Environment File

Edit the .env file and change version values:

PROWLER_UI_VERSION="5.9.0"
PROWLER_API_VERSION="5.9.0"

Option 2: Use Docker Compose Pull

docker compose pull --policy always

The --policy always flag ensures that Docker pulls the latest images even if they already exist locally.

???+ note "What Gets Preserved During Upgrade" Everything is preserved, nothing will be deleted after the update.

Troubleshooting

If containers don't start, check logs for errors:

# Check logs for errors
docker compose logs

# Verify image versions
docker images | grep prowler

If you encounter issues, you can rollback to the previous version by changing the .env file back to your previous version and running:

docker compose pull
docker compose up -d

Container versions

The available versions of Prowler CLI are the following:

  • latest: in sync with master branch (please note that it is not a stable version)
  • v4-latest: in sync with v4 branch (please note that it is not a stable version)
  • v3-latest: in sync with v3 branch (please note that it is not a stable version)
  • <x.y.z> (release): you can find the releases here, those are stable releases.
  • stable: this tag always point to the latest release.
  • v4-stable: this tag always point to the latest release for v4.
  • v3-stable: this tag always point to the latest release for v3.

The container images are available here: