Install Hunt Web on Linux Desktop
Install Hunt Web on Ubuntu 24.04 Desktop, with interactive Chromium for Greybox Browser testing.
This guide covers installation from a downloaded Hunt Web package, local Dashboard setup, model configuration, and a visible Chromium session for Greybox Browser testing. The Desktop installation includes the CLI, Dashboard, Hermes, scanner tools, Chromium, and PDF report components. Once setup is complete, the same installation supports Blackbox, Greybox Environment, and Greybox Browser.
- 1Check the requirementsUbuntu 24.04 x86_64, Python 3.12, sudo access, and at least 30 GiB free.
- 2Verify and extract the packageCompare the SHA-256 checksum, then extract into a new directory.
- 3Run the installerChoose Linux Desktop and wait for Installation components checked.
- 4Configure the modelRun configure.sh to set the Hermes provider and optional tool keys.
- 5Create the first AdminUse the one-time setup code, then sign in.
- 6Check Health and ChromiumConfirm component status and that a visible Chromium window opens.
1. Check the Requirements
The supported installer platform is Ubuntu 24.04 x86_64 with Python 3.12. Use a terminal inside an active graphical Desktop session and a regular user account with sudo access.
| Requirement | What to prepare |
|---|---|
| Operating system | Ubuntu 24.04, x86_64. Other distributions, architectures, Windows, and macOS are not supported by this installer. |
| Desktop session | An active graphical Linux session for opening interactive Chromium windows. |
| Permissions | The installation user owns the application directory and can approve required OS packages through sudo. Run the installer as that user. |
| Network | Internet access for dependency downloads and the selected model provider. |
| Storage | Budget at least 30 GiB free initially, plus space for scan results and backups. This is a planning allowance, not a maximum. |
| Ports | Default Dashboard port 3053 and Hermes Gateway port 9119 must be available. |
Check the architecture, Python version, and available home-directory space from the terminal:
uname -m
python3 --version
df -h "$HOME"
Use one user account and a fixed installation location throughout this guide. The installer manages its own Node/pnpm, Hermes, tools, and Chromium. A separate global Hermes or browser runtime installation is not required beforehand.
2. Verify and Extract the Release Package
Obtain the release archive and its published checksum from the official
Hunt Web release channel. This example assumes the file is saved as
~/Downloads/hunt-web-2.0.tar.gz.
sha256sum "$HOME/Downloads/hunt-web-2.0.tar.gz"
Compare the output with the checksum published for that release. Once it matches, extract into a new application directory:
mkdir "$HOME/hunt-web-v2" &&
tar -xzf "$HOME/Downloads/hunt-web-2.0.tar.gz" --strip-components=1 -C "$HOME/hunt-web-v2" &&
cd "$HOME/hunt-web-v2"
If the directory already contains an installation, use the package's upgrade guide instead of extracting over it. The examples use these locations:
| Location | Purpose |
|---|---|
~/hunt-web-v2 | Application files and installed components. |
~/.local/share/hunt-web-v2 | Default private data, including configuration, accounts, scan work, and logs. |
Keep application and data directories separate. Use paths without spaces or
symlinks, and keep the chosen directories in place after installation. Custom
data paths and ports can be selected during the first install; see the
included INSTALL-v2.md for those options.
3. Run the Installer and Choose Desktop
For an optional initial check, use
./install.sh --mode desktop --preflight-only. This checks prerequisites
without installing components. If the default ports are occupied, choose
different ports with --port and --hermes-port on the first installation
command, then use the selected Dashboard port in the URLs below.
From the application directory, run:
./install.sh --time-zone Asia/Jakarta --configure-later
The installation-mode prompt offers:
Installation mode:
1. Linux Desktop
2. Linux Server / VPS
Enter 1 for Linux Desktop. The example selects Asia/Jakarta for the
Dashboard display and service time zone; replace it with the required IANA time zone
if needed. Without the option, the default is UTC. The --configure-later
option keeps account and model configuration in the next step of this guide.
Approve the requested OS dependencies using sudo when prompted. The installer downloads and builds the required components, including a real Chromium browser and the Python components for PDF export. First installation can take time; allow each stage to finish.
Wait for Installation components checked. At that point, the generated
dashboard.sh launcher is available. Browser login and the first Admin account
are configured next; installation does not start a scan.
4. Configure the Model and Optional Tool Keys
Run:
./configure.sh
At Configure Hermes provider/model now?, answer y, select the provider
and model, and complete its authentication prompts. This configures the
installation's Hermes profile for scanner and chat work.
The wizard also offers optional tool keys:
| Key | Used for |
|---|---|
PDCP_API_KEY | ProjectDiscovery lookups used by ASNMap and CVEMap / Vulnx. |
SHODAN_API_KEY | Shodan, the default asset-search provider queried through Uncover. |
Uncover can use other providers, which have their own credentials; see
Scanning Tools for each tool's key requirements.
These are separate from model-provider credentials. Optional tool keys can be
configured later; capabilities that require a missing key will still need
that key. For each tool key, Enter keeps or skips the value, n opens a
hidden input, and r reuses compatible private configuration when detected.
Enter keys through the configuration prompts rather than chat messages.
While first-time Admin setup is pending, configure prints a one-time setup
code valid for 10 minutes. Keep it for the next step. Answer n to
Start Dashboard setup now? to launch setup explicitly in the next step.
5. Create the First Admin and Sign In
Start the setup launcher:
./dashboard.sh --setup
Keep that terminal open. On the same computer, visit
http://127.0.0.1:3053/setup and enter the setup code, username, display name,
and an Admin password of 12–128 characters.
If the code expires while setup is pending, open a second terminal in the
application directory and run ./configure.sh --setup-code to obtain a new
one. Once the first Admin has been created, setup is closed. Additional
accounts can be created later through Users & Roles.
Return to the setup terminal and press Ctrl+C. Then start the normal Dashboard:
./dashboard.sh
Open http://127.0.0.1:3053/sign-in and sign in with the newly created account.
Use the configured 127.0.0.1 address consistently for this local setup.
To enable MFA, open Profile → Security / Sessions → Authenticator protection. Confirm the account password, add the displayed setup secret to Google Authenticator or another TOTP app, and enter its six-digit code to complete activation. Store the recovery codes privately.
- 1Open Authenticator protectionProfile, then Security / Sessions, then Authenticator protection.
- 2Confirm the passwordConfirm the account password.
- 3Add the setup secretAdd it to Google Authenticator or another TOTP app.
- 4Enter the six-digit codeThis completes activation.
- 5Store the recovery codesKeep them private.
MFA is optional for the local Admin at 127.0.0.1 under the current access
rule. Admin access through a domain requires it and directs unenrolled Admins
to this setup page. Once MFA is enabled, future logins need an authenticator
code or a single-use recovery code. The authenticator app generates the code;
Hunt Web does not send it by email.
6. Check the Installed Components
Leave the Dashboard running. In a second terminal, open the application directory and check the installation:
cd "$HOME/hunt-web-v2"
./configure.sh --status
./dashboard.sh status
"$HOME/.local/share/hunt-web-v2/bin/hunt-web" --version
"$HOME/.local/share/hunt-web-v2/bin/hunt-web" capabilities
For a custom data directory, use the CLI wrapper under that
directory's bin folder. This keeps CLI commands connected to this
installation's configuration.
In the Dashboard, open Health and select Refresh status. Read each component's status and next step. Hermes connectivity checks the Gateway; it does not establish that a model request will succeed. Review the provider and model under Settings → Hermes Chat, separately from Assistant settings.
The screenshot shows an existing workspace. A new installation may have no saved reports yet. Model credentials, connectivity, and quota can be checked further with a short assessment on an authorized test application before starting a longer scan.
7. Verify Chromium Launch in the Desktop Session
Hunt Web installs Chromium as the browser; Playwright supplies the automation library that controls it. For Greybox Browser, check the visible window and the account session as separate steps:
- 1Create a Greybox Browser TargetSave its Scope, application URLs, and account settings.
- 2Open the account browserConfirm a Chromium window appears in the Desktop session.
- 3Sign inSign in to the application, including MFA, and open the check page.
- 4Check accessConfirm access is verified. Repeat for each account.
- Create a Greybox Browser Target for the test application and save its Scope, application URLs, and account settings.
- Use the account's browser-opening control in Target setup. Confirm that a Chromium window actually appears in the active Desktop session.
- Sign in to the target application, including its MFA if required, and open the configured application check page.
- Use the account's Check access control and confirm that access is verified. For two accounts, complete the checks for both separate sessions.
Refresh status reads saved state; it does not perform a fresh login check. After account access is ready, choose Prepare Run, then select Quick, Standard, or Deep and start the assessment.
8. Start, Stop, and Return After Reboot
./dashboard.sh runs in the foreground. To run in the background, stop an
idle foreground launcher first, then use ./dashboard.sh start from the
same graphical session.
| Command | Purpose |
|---|---|
./dashboard.sh status | Check the launcher's current status. |
./dashboard.sh start | Start the Dashboard in the background. |
./dashboard.sh stop | Stop this installation's Dashboard launcher. |
./dashboard.sh restart | Stop and start the Dashboard. |
Pause active scans and wait for scanner and Hermes work to become idle before stopping or restarting services. A service restart does not automatically resume a scan.
After reboot, sign in to the graphical Desktop, open a terminal in
~/hunt-web-v2, and start the Dashboard again. Browser launching uses that
Desktop session. Background launcher logs are stored at
~/.local/share/hunt-web-v2/logs/dashboard.log with the default data location.
Troubleshooting
| Symptom | Check next |
|---|---|
| Installation or a download stops | Read the failed stage, correct its cause, and rerun the installation command with the same options, directory, and user. Completed stages are rechecked. |
dashboard.sh is missing | The installer has not completed launcher creation. Review its error and finish installation. |
| Dashboard does not open | Check launcher status, its terminal/log, and the selected port. |
| Setup code expired | Run ./configure.sh --setup-code while first-time setup is still pending. |
| Hermes connects but model work fails | Check the selected provider/model, model credentials, endpoint, network, and quota. Tool API keys serve different purposes. |
| Chromium does not appear | Check the graphical session, Browser status, required OS libraries, and installer sandbox checks. Correct the reported dependency or permission issue rather than disabling the sandbox. |
| Account access is not confirmed | Read the access-check reason and verify the correct account, application check URL, and signed-in marker. |
The package's INSTALL-v2.md and docs/operations.md provide more installation
options and troubleshooting details. With the Dashboard and account access
ready, continue to the scanning workflow guide
to prepare the first Run and follow it through Findings and Report.