๐ฆ 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, Chocolatey for Windows, 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 |
| Windows | Chocolatey or pipx |
| 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
๐ช Windows / Chocolatey
OpenDoor is available from the Chocolatey Community Package Repository.
Install from an elevated PowerShell prompt:
choco install opendoor -y
Verify the installation:
opendoor --version
opendoor --help
Update OpenDoor with Chocolatey:
choco upgrade opendoor -y
Uninstall OpenDoor:
choco uninstall opendoor -y
Chocolatey packages may lag the latest GitHub/PyPI release while community moderation completes. Package page: https://community.chocolatey.org/packages/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 |
| Chocolatey | choco upgrade opendoor -y |
| 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.