๐Ÿ“ฆ Installation and update

OpenDoor is distributed as a Python CLI application and as an official project Docker image. It can be installed with Arch Linux AUR, BlackArch Linux, Homebrew, pipx, pip, Docker, or run directly from a source checkout.

For most users, the recommended installation methods are:

Environment Recommended method
Arch Linux AUR
BlackArch Linux pacman
macOS Homebrew
Containerized usage Docker / GHCR
General CLI usage pipx
Existing Python environment pip
Development editable source install
Package verification source build

๐Ÿง Arch Linux / AUR

OpenDoor is available in the Arch User Repository.

Install with an AUR helper:

yay -S opendoor

Manual AUR installation:

git clone https://aur.archlinux.org/opendoor.git
cd opendoor
makepkg -si

Verify the installation:

opendoor --version
opendoor --help

Update with an AUR helper:

yay -Syu opendoor

For manual AUR installations, update from the package repository:

cd opendoor
git pull
makepkg -si

๐Ÿ‰ BlackArch Linux

OpenDoor is available in BlackArch Linux.

Install from BlackArch:

sudo pacman -Syu
sudo pacman -S opendoor

For Arch Linux users with the BlackArch repository enabled:

sudo pacman -S opendoor

Verify the installation:

opendoor --version
opendoor --help

Update OpenDoor with the system packages:

sudo pacman -Syu opendoor

๐Ÿบ Homebrew

Homebrew is the recommended installation method for macOS users.

brew install opendoor

Verify the installation:

opendoor --version
opendoor --help

Update OpenDoor with Homebrew:

brew update
brew upgrade opendoor

If you maintain or use a custom tap, installation may look like this:

brew install stanislav-web/opendoor/opendoor

Homebrew Formula Downloads

๐Ÿณ Docker / GitHub Container Registry

OpenDoor is available as an official project Docker image via GitHub Container Registry.

Pull the latest release image:

docker pull ghcr.io/stanislav-web/opendoor:latest

Verify the image:

docker run --rm -it ghcr.io/stanislav-web/opendoor:latest --version
docker run --rm ghcr.io/stanislav-web/opendoor:latest --help

Run a scan and write reports to the host:

mkdir -p reports

docker run --rm \
  -v "$PWD/reports:/work/reports" \
  ghcr.io/stanislav-web/opendoor:latest \
  --host https://example.com \
  --reports json,html \
  --reports-dir reports

Run with a custom local wordlist:

mkdir -p reports

docker run --rm \
  -v "$PWD/reports:/work/reports" \
  -v "$PWD/wordlists:/work/wordlists:ro" \
  ghcr.io/stanislav-web/opendoor:latest \
  --host https://example.com \
  --wordlist /work/wordlists/custom.txt \
  --reports json,html \
  --reports-dir reports

Run with a remote HTTP(S) wordlist without mounting a wordlist directory:

mkdir -p reports

docker run --rm \
  -v "$PWD/reports:/work/reports" \
  ghcr.io/stanislav-web/opendoor:latest \
  --host https://example.com \
  --wordlist https://example.com/wordlists/custom.txt \
  --reports json,html \
  --reports-dir reports

Remote wordlists are downloaded into OpenDoor's managed temporary workspace before scan start and are limited to 500 MB.

Use a pinned release tag for reproducible runs:

docker pull ghcr.io/stanislav-web/opendoor:latest
docker run --rm ghcr.io/stanislav-web/opendoor:latest --version

๐Ÿงฐ pipx

pipx installs Python CLI applications into isolated environments and exposes their commands globally. This is the recommended method for most non-Homebrew CLI users.

Linux and macOS

python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install opendoor

Verify:

opendoor --version

Update:

pipx upgrade opendoor

Uninstall:

pipx uninstall opendoor

Windows PowerShell

Install Python first if it is not already available:

winget install Python.Python.3

Install pipx:

py -m pip install --user pipx
py -m pipx ensurepath

Reopen PowerShell, then install OpenDoor:

pipx install opendoor
opendoor --version

Update:

pipx upgrade opendoor

๐Ÿ pip

Use pip when you intentionally want OpenDoor installed into the current Python environment.

Linux and macOS

python3 -m pip install --upgrade opendoor
opendoor --version

Update:

python3 -m pip install --upgrade opendoor

Uninstall:

python3 -m pip uninstall opendoor

Windows PowerShell

py -m pip install --upgrade pip
py -m pip install --upgrade opendoor
opendoor --version

Update:

py -m pip install --upgrade opendoor

PyPI - Downloads


๐Ÿงพ Run from source

Use this mode if you want to run OpenDoor directly from a source checkout without installing it as a package.

Linux and macOS

git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor

python3 -m pip install -r requirements.txt
python3 opendoor.py --version
python3 opendoor.py --host https://example.com

Windows PowerShell

git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor

py -m pip install -r requirements.txt
py opendoor.py --version
py opendoor.py --host https://example.com

๐Ÿ› ๏ธ Development installation

Use an editable installation when contributing to OpenDoor, running tests, or validating changes locally.

Linux and macOS

git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor

python3 -m venv .venv
source .venv/bin/activate

python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
python -m pip install -e .

opendoor --version
opendoor --help

Windows PowerShell

git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor

py -m venv .venv
.\.venv\Scripts\Activate.ps1

python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
python -m pip install -e .

opendoor --version
opendoor --help

๐Ÿ—๏ธ Build from source

This flow is useful for maintainers, package builders, and release verification.

python3 -m pip install --upgrade build
python3 -m build

Generated artifacts are written to:

dist/

Install a locally built wheel:

python3 -m pip install dist/opendoor-*.whl

Install a locally built source archive:

python3 -m pip install dist/opendoor-*.tar.gz

Do not hardcode old wheel filenames in scripts or documentation. Use the generated artifact names from dist/.


๐Ÿงช Verify runtime assets

A packaged OpenDoor installation should include the built-in configuration and dictionaries.

Useful verification commands:

opendoor --version
opendoor --help

For package maintainers, also verify that the installed package includes runtime assets such as:

opendoor.conf
data/directories.dat
data/subdomains.dat
data/useragents.dat
data/proxies.dat
data/ignored.dat

Transport profile examples are examples only. Never distribute real OpenVPN or WireGuard credentials, private keys, or production profiles.


๐Ÿ”„ Update strategy

Use the same package manager that installed OpenDoor. Do not mix package managers for the same installation. For example, do not update a Homebrew or system package with pip.

OpenDoor also provides a safe helper command:

opendoor --update

--update does not self-update the scanner, execute package-manager commands, or contact the network. It prints update instructions for common installation types and includes the current Python interpreter path for the active environment. That interpreter-specific command is intentional: it helps avoid updating the wrong virtual environment.

Installed with Update command
AUR helper yay -Syu opendoor
Manual AUR build git pull && makepkg -si
BlackArch / pacman sudo pacman -Syu opendoor
Debian / Kali package sudo apt update && sudo apt install --only-upgrade opendoor
Homebrew brew update && brew upgrade opendoor
Docker / GHCR docker pull ghcr.io/stanislav-web/opendoor:latest
pipx pipx upgrade opendoor
pip python -m pip install --upgrade opendoor from the same Python environment
Windows pip py -m pip install --upgrade opendoor
Source checkout git pull --ff-only and reinstall/editable-install if needed

For source checkouts used as editable installs, refresh the checkout and reinstall in the current environment:

git pull --ff-only
python -m pip install -e .

For Windows PowerShell source checkouts:

git pull --ff-only
python -m pip install -e .

๐Ÿงฏ Common issues

mkdocs: command not found

This is relevant only when building documentation locally. Install documentation dependencies in a virtual environment:

python3 -m venv .docs-venv
source .docs-venv/bin/activate
python -m pip install -r docs/requirements.txt
python -m mkdocs build --strict

externally-managed-environment

Some Python distributions, including Homebrew Python, prevent global pip install into the system environment.

Use a virtual environment, pipx, or Homebrew instead of forcing installation into the system Python.

Do not use --break-system-packages unless you fully understand the risk.

Command not found after installation

Check that your package manager's binary directory is in PATH.

For pipx:

python3 -m pipx ensurepath

For Arch Linux AUR manual builds, confirm that the package installed successfully:

pacman -Qs opendoor

For BlackArch Linux, confirm that the package is available from enabled repositories:

pacman -Ss opendoor

Then reopen the terminal.