Summary
This update introduces a dedicated BloodHound configuration directory (defaulting to your XDG config path plus bloodhound; see below for details) for storing the JSON configuration file and Docker Compose YAML files. Docker Compose commands now use explicit YAML file paths within this directory instead of looking in the current working directory.
It also adds a -f
or --file
flag to specify a file path for an alternate YAML file, so you can use different YAML files to manage multiple instances with one JSON configuration.
CHANGELOG
[0.1.7] - 2025-7-9
Added
- Added support for a dedicated config directory to act as the configuration home for the JSON configuration file and default Docker YAML files
- The directory is the user's XDG config home directory and
bloodhound
- i.e., the equivalent of
~/.config/bloodhound
on Unix,
~/Library/Application Support/bloodhound
on macOS, and
%LOCALAPPDATA%\bloodhound
on Windows - We use a lowercase
bloodhound
to match the directory used by older installations of BloodHound
- i.e., the equivalent of
- You can place BloodHound CLI anywhere and run it from any location, and it will always look in the config directory for the JSON and default YAML files
- The CLI creates the directory with a
0777
permissions mask so it is accessible to all BloodHound users in multi-user environments - The permissions follow your umask, so the typical user mask of
0022
will set the permissions to0755
- The directory is the user's XDG config home directory and
- Added a
config_directory
value to the JSON configuration file to control the config directory path- Changing this path will change where BloodHound CLI looks for the Docker YAML files
- BloodHound CLI will continue to look in the default location for the JSON config file
- Added checks that ensure the configured directory will work as expected every time BloodHound CLI runs
- The first check ensures the directory exists and creates the directory if it does not
- The second check ensures the config directory has proper permissions that will allow BloodHound CLI to read and write
- Added a
-f
or--file
flag to override the location of the YAML file to use for Docker- Providing a file path will override where BloodHound CLI looks for the YAML file
- e.g.,
./bloodhound-cli -f /Users/Mable/BloodHound/custom-docker-compose.yml containers up
Changed
- Every command that runs a Docker command will now ensure the required YAML file exists before proceeding