mirror of
https://github.com/prowler-cloud/prowler.git
synced 2025-12-18 21:07:48 +00:00
Co-authored-by: Chandrapal Badshah <12944530+Chan9390@users.noreply.github.com> Co-authored-by: alejandrobailo <alejandrobailo94@gmail.com> Co-authored-by: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Co-authored-by: Alan Buscaglia <gentlemanprogramming@gmail.com> Co-authored-by: Adrián Jesús Peña Rodríguez <adrianjpr@gmail.com> Co-authored-by: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Co-authored-by: Rubén De la Torre Vico <ruben@prowler.com> Co-authored-by: Daniel Barranquero <danielbo2001@gmail.com>
124 lines
3.1 KiB
YAML
124 lines
3.1 KiB
YAML
# Production Docker Compose configuration
|
|
# Uses pre-built images from Docker Hub (prowlercloud/*)
|
|
#
|
|
# For development with local builds and hot-reload, use docker-compose-dev.yml instead:
|
|
# docker compose -f docker-compose-dev.yml up
|
|
#
|
|
services:
|
|
api:
|
|
hostname: "prowler-api"
|
|
image: prowlercloud/prowler-api:${PROWLER_API_VERSION:-stable}
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- "${DJANGO_PORT:-8080}:${DJANGO_PORT:-8080}"
|
|
volumes:
|
|
- ./_data/api:/home/prowler/.config/prowler-api
|
|
- output:/tmp/prowler_api_output
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
valkey:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "/home/prowler/docker-entrypoint.sh"
|
|
- "prod"
|
|
|
|
ui:
|
|
image: prowlercloud/prowler-ui:${PROWLER_UI_VERSION:-stable}
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- ${UI_PORT:-3000}:${UI_PORT:-3000}
|
|
depends_on:
|
|
mcp-server:
|
|
condition: service_healthy
|
|
|
|
postgres:
|
|
image: postgres:16.3-alpine3.20
|
|
hostname: "postgres-db"
|
|
volumes:
|
|
- ./_data/postgres:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_ADMIN_USER}
|
|
- POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}
|
|
- POSTGRES_DB=${POSTGRES_DB}
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- "${POSTGRES_PORT:-5432}:${POSTGRES_PORT:-5432}"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_ADMIN_USER} -d ${POSTGRES_DB}'"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
valkey:
|
|
image: valkey/valkey:7-alpine3.19
|
|
hostname: "valkey"
|
|
volumes:
|
|
- ./_data/valkey:/data
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- "${VALKEY_PORT:-6379}:6379"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "sh -c 'valkey-cli ping'"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
worker:
|
|
image: prowlercloud/prowler-api:${PROWLER_API_VERSION:-stable}
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
volumes:
|
|
- "output:/tmp/prowler_api_output"
|
|
depends_on:
|
|
valkey:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "/home/prowler/docker-entrypoint.sh"
|
|
- "worker"
|
|
|
|
worker-beat:
|
|
image: prowlercloud/prowler-api:${PROWLER_API_VERSION:-stable}
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
depends_on:
|
|
valkey:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "../docker-entrypoint.sh"
|
|
- "beat"
|
|
|
|
mcp-server:
|
|
image: prowlercloud/prowler-mcp:${PROWLER_MCP_VERSION:-stable}
|
|
environment:
|
|
- PROWLER_MCP_TRANSPORT_MODE=http
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- "8000:8000"
|
|
command: ["uvicorn", "--host", "0.0.0.0", "--port", "8000"]
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8000/health || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
volumes:
|
|
output:
|
|
driver: local
|