Skip to content

03. Installation

Lav edited this page Mar 30, 2026 · 1 revision

Requirements

  • Python 3.12+

Installation

With pipx

pipx installs InfraGuard into its own isolated environment and makes the infraguard command available globally.

# Install from the repository
pipx install git+https://github.com/Whispergate/InfraGuard.git

# With all optional dependencies (dashboard, TUI, GeoIP, async DNS)
pipx install "infraguard[all] @ git+https://github.com/Whispergate/InfraGuard.git"

To add optional dependencies to an existing pipx install:

pipx inject infraguard textual          # Terminal UI
pipx inject infraguard fastapi jinja2   # Web dashboard extras
pipx inject infraguard maxminddb        # GeoIP lookups
pipx inject infraguard aiodns           # Async DNS resolution
pipx inject infraguard dnspython        # DNS listener
pipx inject infraguard aiomqtt          # MQTT listener

With uv

git clone https://github.com/Whispergate/InfraGuard.git
cd InfraGuard
uv sync

With pip

git clone https://github.com/Whispergate/InfraGuard.git
cd InfraGuard
pip install .

# Or with optional dependencies
pip install ".[all]"

With Docker (recommended)

git clone https://github.com/Whispergate/InfraGuard.git
cd InfraGuard
cp .env.example .env        # Edit with your values
docker compose up -d

See Docker Deployment for full details.

Optional dependency groups

Group Packages Purpose
web fastapi, jinja2 Extended web dashboard features
tui textual Terminal UI
geoip maxminddb GeoIP lookups via MaxMind databases
dns aiodns Async DNS resolution (for rDNS filter)
dns-listener dnspython DNS protocol listener
mqtt-listener aiomqtt MQTT protocol listener
all All of the above Everything

Verify installation

infraguard --version

Clone this wiki locally