Add your description here
Project description
dockerhound
Run BloodHound CE as a single-user application using containers. This tool manages the required PostgreSQL and Neo4j databases automatically, with no manual setup needed.
The project was first designed as a single bash script and evolved into
a packaged Python project. The bash script has beend preserved in
bloodhound-ce for those who prefer a simpler setup.
Why dockerhound?
BloodHound CE typically requires setting up multiple services. dockerhound packages everything into containers with sensible defaults:
- Default credentials:
admin/admin(no password change required) - Automatic database initialization
- Isolated workspaces for different projects
- Podman preferred, Docker supported
If you have only podman and uv installed, you can run BloodHound instantly:
$ uv tool run dockerhound
...
Running postgres container ...
Running neo4j container ...
Wait until neo4j is ready ...
Running bloodhound container ...
Wait until bloodhound is ready ...
Success! Go to http://localhost:8181
Login with admin/admin
Workspace: default
Press CTRL-C when you're done.
...
Installation
# Using uv (recommended):
uv tool install dockerhound
# Using pipx:
pipx install dockerhound
Or install from source:
git clone <repository>
cd dockerhound
# Using uv (recommended):
uv tool install .
# Usinv pipx:
pipx install .
Requires either podman or docker installed. Podman is preferred.
Usage
Start BloodHound CE:
dockerhound
This will:
- Start PostgreSQL and Neo4j containers
- Wait for services to be ready
- Launch BloodHound CE on http://localhost:8181
- Set up admin credentials (admin/admin)
Options
--port/-p: Change web interface port (default: 8181)--workspace/-w: Use a specific workspace (default: "default")--backend: Force container backend (podmanordocker)--bolt-port: Expose Neo4j bolt port (default: 7687, only exposed if specified)--data-dir: Custom data directory path
Commands
Pull latest images:
dockerhound pull
Environment Variables
PORT: Override web interface portWORKSPACE: Override workspace nameDATA_DIR: Override data directory location
Workspaces
Workspaces keep different BloodHound databases separate. Each workspace has its own:
- Neo4j graph database
- PostgreSQL application database
- Data stored in
~/.local/share/dockerhound/<workspace>/
Switch workspaces:
# Use client1 workspace
dockerhound --workspace client1
# Or with environment variable
WORKSPACE=client1 dockerhound
Examples
# Default setup
dockerhound
# Different port and workspace
dockerhound --port 9090 --workspace pentest-2024
# Expose Neo4j bolt port for external tools
dockerhound --bolt-port 7687
# Use docker instead of podman
dockerhound --backend docker
# Custom data location
dockerhound --data-dir ./bloodhound-data
Cleanup
Remove containers and data:
podman container rm --filter name='DockerHound-CE*'
rm -rf ~/.local/share/dockerhound/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file dockerhound-0.1.0.tar.gz.
File metadata
- Download URL: dockerhound-0.1.0.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d68c42c3c58e10a207c01a0d5ace9d3e4c8c9ab31587f38e2197c2c2d894b44
|
|
| MD5 |
275f3bbbf31e7acfebda261e4bbd3262
|
|
| BLAKE2b-256 |
7c489807b08ee66ce9b27c9b6dd0edc1100c06a7744784f2f5e813ddd19edf68
|