This page will describe how to set-up and use bloodhound.
Bloodhound docker compose
services:
app-db:
image: postgres:16
container_name: bloodhound-postgres
environment:
POSTGRES_USER: bloodhound
POSTGRES_PASSWORD: bloodhoundcommunityedition
POSTGRES_DB: bloodhound
volumes:
- ./postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U bloodhound -d bloodhound -h 127.0.0.1 -p 5432 || exit 1"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
graph-db:
image: neo4j:4.4
container_name: bloodhound-neo4j
environment:
NEO4J_AUTH: neo4j/bloodhoundcommunityedition
NEO4J_dbms_allow__upgrade: "true"
ports:
- "127.0.0.1:7687:7687"
- "127.0.0.1:7474:7474"
volumes:
- ./neo4j-data:/data
- ./neo4j-logs:/logs
- ./neo4j-import:/var/lib/neo4j/import
- ./neo4j-plugins:/plugins
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:7474 >/dev/null 2>&1 || exit 1"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
bloodhound:
image: specterops/bloodhound:latest
container_name: bloodhound-app
environment:
bhe_disable_cypher_qc: "false"
bhe_database_connection: "user=bloodhound password=bloodhoundcommunityedition dbname=bloodhound host=app-db"
bhe_neo4j_connection: "neo4j://neo4j:bloodhoundcommunityedition@graph-db:7687/"
ports:
- "8080:8080"
depends_on:
app-db:
condition: service_healthy
graph-db:
condition: service_healthy
volumes: [] # <- expliciet lege lijst; voorkomt jouw foutmelding
restart: unless-stopped
Offcourse its generated by chatgpt, but this was no easy feat due to changes in the dependency structure.