๐ฆ 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
๐ณ 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
๐งพ 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.