1) Install prerequisites
```bash
sudo apt-get install curl gnupg ca-certificates lsb-release
```
2) Add Docker's GPG key and repo
```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
- If errors occur with subsequent `apt update` , edit `/etc/apt/sources.list.d/docker.list` to remove "linux/ubuntu kali-rolling" and replace with "linux/debian trixie stable"
3) Install Docker-ce and Docker Compose plugin
```bash
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
```
4) Verify install
```bash
sudo docker run hello-world
docker-compose --version
```
5) Add user to docker group
```bash
sudo usermod -aG docker $USER #adds currne tuser to docker group
newgrp docker #updates your group memberships in current session
```
6) Grab Bloodhound `docker-compose.yml`
```bash
sudo wget https://raw.githubusercontent.com/SpecterOps/BloodHound/refs/heads/main/examples/docker-compose/docker-compose.yml
```
7) Start Bloodhound
```bash
#run from directory with the previously downloads docker-compose.yml file for Bloohound
docker compose up -d #runs bloodhound in background
```
- The default ports are as follows:
- 8080 - BloodHound Web Port. You'll access the UI by going to `http://localhost:8080/ui/login` when the server is running
- The default login will be `admin:<password-here>`, and by default the password is randomized at creation.
- 7474 - Neo4J Web Interface. Useful for when you need to run queries directly against the Neo4J database
- 7687 - Neo4J Database Port. This is provided in case you want to access the Neo4J database from some other application on your machine
8) Stop Bloodhound
```bash
docker compose down
```