sherlock/docs/INSTALL.md
2024-06-09 22:22:10 -04:00

4 KiB



Home    |    Installation    |    Usage    |    Docker    |    Contributing

Alternative install methods

  1. Python package
    1. Build from source
  2. Docker Container
    1. via Docker Hub (one off)
    2. via Docker Hub (compose)
    3. Local image with Dockerfile

Python PyPI - Version

# pipx is recommended, but pip may suffice if pipx is unavailable
pipx install sherlock-project

Build live package from source (useful for contributors)

Note

With the switch to Poetry, Sherlock no longer requires a requirements.txt file. Dependencies are now specified within the pyproject.toml file.

If the legacy requirements.txt file is still desired, it can be dynamically generated:

# Append `--with dev` or `--only dev` to include dev dependencies
poetry export --without-hashes -f requirements.txt --output requirements.txt

Building an editable (or live) package links the entry point to your current directory, rather than to the standard install location. This is often useful when working with the code base, as changes are reflected immediately without reinstallation.

Note that the version number will be 0.0.0 for pipx local builds unless manually changed in the pyproject file (it will prompt the user for an update).

# Assumes repository cloned, and current working directory is repository root
pipx install -e .

Run package from source (without installing)

If you'd rather not install directly to your system, you can import the module at runtime with -m.

# Assumes repository cloned, and current working directory is repository root
python3 -m sherlock user123 user789

Docker Docker Image Version

Note

Sherlock doesn't yet have context detection. It's recommended that Docker containers be ran with option -o /opt/sherlock/results/{user123}.txt (replace {user123}) when an output file is desired at the mounted volume (as seen in the compose).

This has no effect on stdout, which functions as expected out of the box.

# One-off searches
docker run --rm -t sherlock/sherlock user123

# If you need to save the output file... (modify as needed)
# Output file will land in ${pwd}/results
docker run --rm -t -v "$PWD/results:/opt/sherlock/results" sherlock/sherlock -o /opt/sherlock/results/text.txt user123
# At any time, you may update the image via this command
docker pull sherlock/sherlock

Using compose

version: "3"
services:
  sherlock:
    container_name: sherlock
    image: sherlock/sherlock
    volumes:
      - ./sherlock/:/opt/sherlock/results/
docker compose run sherlock user123

Build image from source (useful for contributors)

# Assumes ${pwd} is repository root
docker build -t sherlock .
docker run --rm -t sherlock user123