mirror of
https://github.com/prowler-cloud/prowler.git
synced 2025-12-19 05:17:47 +00:00
- Added support to Neo4j - Added Cartography as Attack Paths Scan - Added Attack Path Scans endpoints for their management and run queries on those scan
168 lines
4.6 KiB
YAML
168 lines
4.6 KiB
YAML
services:
|
|
api-dev:
|
|
hostname: "prowler-api"
|
|
image: prowler-api-dev
|
|
build:
|
|
context: ./api
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
environment:
|
|
- DJANGO_SETTINGS_MODULE=config.django.devel
|
|
- DJANGO_LOGGING_FORMATTER=${LOGGING_FORMATTER:-human_readable}
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- "${DJANGO_PORT:-8080}:${DJANGO_PORT:-8080}"
|
|
volumes:
|
|
- ./api/src/backend:/home/prowler/backend
|
|
- ./api/pyproject.toml:/home/prowler/pyproject.toml
|
|
- ./api/docker-entrypoint.sh:/home/prowler/docker-entrypoint.sh
|
|
- ./_data/api:/home/prowler/.config/prowler-api
|
|
- outputs:/tmp/prowler_api_output
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
valkey:
|
|
condition: service_healthy
|
|
neo4j:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "/home/prowler/docker-entrypoint.sh"
|
|
- "dev"
|
|
|
|
ui-dev:
|
|
build:
|
|
context: ./ui
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
ports:
|
|
- 3000:3000
|
|
volumes:
|
|
- "./ui:/app"
|
|
- "/app/node_modules"
|
|
|
|
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
|
|
|
|
neo4j:
|
|
image: graphstack/dozerdb:5.26.3.0
|
|
hostname: "neo4j"
|
|
volumes:
|
|
- ./_data/neo4j:/data
|
|
environment:
|
|
# We can't add our .env file because some of our current variables are not compatible with Neo4j env vars
|
|
# Auth
|
|
- NEO4J_AUTH=${NEO4J_USER}/${NEO4J_PASSWORD}
|
|
# Memory limits
|
|
- NEO4J_server_memory_pagecache_size=${NEO4J_SERVER_MEMORY_PAGECACHE_SIZE}
|
|
- NEO4J_server_memory_heap_initial__size=${NEO4J_SERVER_MEMORY_HEAP_INITIAL__SIZE}
|
|
- NEO4J_server_memory_heap_max__size=${NEO4J_SERVER_MEMORY_HEAP_MAX__SIZE}
|
|
# APOC
|
|
- apoc.export.file.enabled=${NEO4J_POC_EXPORT_FILE_ENABLED}
|
|
- apoc.import.file.enabled=${NEO4J_APOC_IMPORT_FILE_ENABLED}
|
|
- apoc.import.file.use_neo4j_config=${NEO4J_APOC_IMPORT_FILE_USE_NEO4J_CONFIG}
|
|
- NEO4J_PLUGINS=${NEO4J_PLUGINS}
|
|
- NEO4J_dbms_security_procedures_allowlist=${NEO4J_DBMS_SECURITY_PROCEDURES_ALLOWLIST}
|
|
- NEO4J_dbms_security_procedures_unrestricted=${NEO4J_DBMS_SECURITY_PROCEDURES_UNRESTRICTED}
|
|
# Networking
|
|
- dbms.connector.bolt.listen_address=${NEO4J_DBMS_CONNECTOR_BOLT_LISTEN_ADDRESS}
|
|
# 7474 is the UI port
|
|
ports:
|
|
- 7474:7474
|
|
- ${NEO4J_PORT:-7687}:7687
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "http://localhost:7474"]
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 10
|
|
|
|
worker-dev:
|
|
image: prowler-api-dev
|
|
build:
|
|
context: ./api
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
environment:
|
|
- DJANGO_SETTINGS_MODULE=config.django.devel
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
volumes:
|
|
- ./api/src/backend:/home/prowler/backend
|
|
- ./api/pyproject.toml:/home/prowler/pyproject.toml
|
|
- ./api/docker-entrypoint.sh:/home/prowler/docker-entrypoint.sh
|
|
- outputs:/tmp/prowler_api_output
|
|
depends_on:
|
|
valkey:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
neo4j:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "/home/prowler/docker-entrypoint.sh"
|
|
- "worker"
|
|
|
|
worker-beat:
|
|
image: prowler-api-dev
|
|
build:
|
|
context: ./api
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
environment:
|
|
- DJANGO_SETTINGS_MODULE=config.django.devel
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
depends_on:
|
|
valkey:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
neo4j:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "../docker-entrypoint.sh"
|
|
- "beat"
|
|
|
|
volumes:
|
|
outputs:
|
|
driver: local
|