<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cpate.ch/index.php?action=history&amp;feed=atom&amp;title=Pentestgpt</id>
	<title>Pentestgpt - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cpate.ch/index.php?action=history&amp;feed=atom&amp;title=Pentestgpt"/>
	<link rel="alternate" type="text/html" href="https://wiki.cpate.ch/index.php?title=Pentestgpt&amp;action=history"/>
	<updated>2026-09-07T08:23:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.cpate.ch/index.php?title=Pentestgpt&amp;diff=274&amp;oldid=prev</id>
		<title>Bftcpa606: Created page with &quot; = Setting Up PentestGPT in a Container on Proxmox — Beginner&#039;s Guide = &#039;&#039;Based on PentestGPT v1.0 (the December 2025 &quot;agentic&quot; release). Verified July 2026.&#039;&#039;  == What you&#039;re actually building == PentestGPT changed a lot in v1.0. The old versions were a Python package you installed with pip. The current version ships as a &#039;&#039;&#039;Docker image&#039;&#039;&#039; that already contains Python 3.12, the pentest tools (nmap, netcat, whois, dnsutils, openvpn, etc.), and the Claude Code CLI it u...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpate.ch/index.php?title=Pentestgpt&amp;diff=274&amp;oldid=prev"/>
		<updated>2026-07-13T20:47:12Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; = Setting Up PentestGPT in a Container on Proxmox — Beginner&amp;#039;s Guide = &amp;#039;&amp;#039;Based on PentestGPT v1.0 (the December 2025 &amp;quot;agentic&amp;quot; release). Verified July 2026.&amp;#039;&amp;#039;  == What you&amp;#039;re actually building == PentestGPT changed a lot in v1.0. The old versions were a Python package you installed with pip. The current version ships as a &amp;#039;&amp;#039;&amp;#039;Docker image&amp;#039;&amp;#039;&amp;#039; that already contains Python 3.12, the pentest tools (nmap, netcat, whois, dnsutils, openvpn, etc.), and the Claude Code CLI it u...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Setting Up PentestGPT in a Container on Proxmox — Beginner&amp;#039;s Guide =&lt;br /&gt;
&amp;#039;&amp;#039;Based on PentestGPT v1.0 (the December 2025 &amp;quot;agentic&amp;quot; release). Verified July 2026.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== What you&amp;#039;re actually building ==&lt;br /&gt;
PentestGPT changed a lot in v1.0. The old versions were a Python package you installed with pip. The current version ships as a &amp;#039;&amp;#039;&amp;#039;Docker image&amp;#039;&amp;#039;&amp;#039; that already contains Python 3.12, the pentest tools (nmap, netcat, whois, dnsutils, openvpn, etc.), and the Claude Code CLI it uses for reasoning.&lt;br /&gt;
&lt;br /&gt;
So on Proxmox you&amp;#039;ll do three things:&lt;br /&gt;
&lt;br /&gt;
1.         Create a &amp;#039;&amp;#039;&amp;#039;host&amp;#039;&amp;#039;&amp;#039; on Proxmox (an LXC container or a VM) — this is your &amp;quot;container on Proxmox.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2.         Install &amp;#039;&amp;#039;&amp;#039;Docker&amp;#039;&amp;#039;&amp;#039; inside that host.&lt;br /&gt;
&lt;br /&gt;
3.         Let PentestGPT&amp;#039;s make commands build and run &amp;#039;&amp;#039;&amp;#039;its own Docker container&amp;#039;&amp;#039;&amp;#039; inside the host.&lt;br /&gt;
&lt;br /&gt;
Yes — that&amp;#039;s a container running a container. That&amp;#039;s normal and expected here. The Proxmox LXC is the outer shell; PentestGPT lives in a Docker container inside it.  &lt;br /&gt;
&lt;br /&gt;
== Before you start ==&lt;br /&gt;
You&amp;#039;ll need:&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;A Proxmox VE host&amp;#039;&amp;#039;&amp;#039; (version 8.x assumed) that you can reach via the web UI &amp;#039;&amp;#039;and&amp;#039;&amp;#039; open a shell on.&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;An LLM provider credential.&amp;#039;&amp;#039;&amp;#039; The autonomous agent uses Claude. You have four options, pick one:&lt;br /&gt;
&lt;br /&gt;
–           &amp;#039;&amp;#039;&amp;#039;Anthropic API key&amp;#039;&amp;#039;&amp;#039; — from console.anthropic.com. Pay-as-you-go. Simplest for a server. &amp;#039;&amp;#039;(Recommended for a headless box.)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
–           &amp;#039;&amp;#039;&amp;#039;Claude subscription (OAuth login)&amp;#039;&amp;#039;&amp;#039; — requires a paid Claude Pro/Max subscription; you log in interactively.&lt;br /&gt;
&lt;br /&gt;
–           &amp;#039;&amp;#039;&amp;#039;OpenRouter API key&amp;#039;&amp;#039;&amp;#039; — from openrouter.ai, gives access to many models.&lt;br /&gt;
&lt;br /&gt;
–           &amp;#039;&amp;#039;&amp;#039;Local LLM&amp;#039;&amp;#039;&amp;#039; — point it at your own Ollama / LM Studio server (advanced).&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;About 30–45 minutes&amp;#039;&amp;#039;&amp;#039;, most of which is the image build downloading.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A note on cost:&amp;#039;&amp;#039;&amp;#039; because it calls a paid API, real runs cost money. The project&amp;#039;s own published benchmarks average roughly &amp;#039;&amp;#039;&amp;#039;$1.11 per successful task&amp;#039;&amp;#039;&amp;#039; (median ~$0.42). Keep an eye on your API spend.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A note on scope:&amp;#039;&amp;#039;&amp;#039; PentestGPT is a real offensive-security tool. Only point it at systems you own or have &amp;#039;&amp;#039;&amp;#039;explicit written authorization&amp;#039;&amp;#039;&amp;#039; to test — your own lab VMs, Hack The Box / TryHackMe targets, etc. The project ships with the same disclaimer.  &lt;br /&gt;
&lt;br /&gt;
== Decision: LXC container or VM? ==&lt;br /&gt;
Since you asked for a &amp;#039;&amp;#039;container&amp;#039;&amp;#039; on Proxmox, this guide leads with an &amp;#039;&amp;#039;&amp;#039;LXC container&amp;#039;&amp;#039;&amp;#039;. It&amp;#039;s lighter and boots instantly.&lt;br /&gt;
&lt;br /&gt;
One honest caveat: PentestGPT&amp;#039;s Docker setup asks for the NET_ADMIN capability and a TUN device so it can dial VPNs (for Hack The Box / TryHackMe). Getting those working inside an LXC takes a couple of extra tweaks (privileged container + nesting + TUN passthrough), which this guide covers. If you &amp;#039;&amp;#039;&amp;#039;don&amp;#039;t&amp;#039;&amp;#039;&amp;#039; need built-in VPN, you can skip the TUN step entirely.&lt;br /&gt;
&lt;br /&gt;
If you&amp;#039;d rather avoid the LXC tweaks altogether, a small &amp;#039;&amp;#039;&amp;#039;VM&amp;#039;&amp;#039;&amp;#039; is the more bulletproof host — the TUN device and NET_ADMIN &amp;quot;just work&amp;quot; with no special config. There&amp;#039;s a short VM section at the end; everything from Part 2 onward is identical.  &lt;br /&gt;
&lt;br /&gt;
== Part 1 — Create the LXC container ==&lt;br /&gt;
&lt;br /&gt;
=== 1.1 Get a template (if you don&amp;#039;t have one) ===&lt;br /&gt;
In the Proxmox web UI: click your storage (e.g. local) → &amp;#039;&amp;#039;&amp;#039;CT Templates&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Templates&amp;#039;&amp;#039;&amp;#039;, and download &amp;#039;&amp;#039;&amp;#039;Ubuntu 24.04&amp;#039;&amp;#039;&amp;#039; (recommended — it matches PentestGPT&amp;#039;s base image) or Debian 13.&lt;br /&gt;
&lt;br /&gt;
Or from the Proxmox host shell:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
pveam update&lt;br /&gt;
&lt;br /&gt;
pveam available | grep -Ei &amp;#039;ubuntu-24.04|debian-13&amp;#039;&lt;br /&gt;
&lt;br /&gt;
pveam download local ubuntu-24.04-standard_24.04-2_amd64.tar.zst&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;(The exact filename will vary — copy whatever the available command lists.)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== 1.2 Create the container ===&lt;br /&gt;
Click &amp;#039;&amp;#039;&amp;#039;Create CT&amp;#039;&amp;#039;&amp;#039; (top-right of the Proxmox UI) and set:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Setting&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Value&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Why&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Unprivileged container&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Unchecked&amp;#039;&amp;#039;&amp;#039; (i.e. &amp;#039;&amp;#039;privileged&amp;#039;&amp;#039;)&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Makes Docker-in-LXC far less painful for a beginner.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Hostname&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |pentestgpt&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Anything you like.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Password / SSH key&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |your choice&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |You&amp;#039;ll log in with this.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Template&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |the one from 1.1&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |—&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Disk&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&amp;#039;&amp;#039;&amp;#039;32 GB&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |The image + tools need room.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |CPU cores&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&amp;#039;&amp;#039;&amp;#039;2–4&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |More = faster reasoning.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Memory&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&amp;#039;&amp;#039;&amp;#039;4096 MB min, 8192 MB better&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Compose defaults to an 8 GB limit.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Network&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |DHCP or a static IP on your LAN&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Needs internet for the build + API.&lt;br /&gt;
|}&lt;br /&gt;
Click through and &amp;#039;&amp;#039;&amp;#039;Finish&amp;#039;&amp;#039;&amp;#039;, but &amp;#039;&amp;#039;&amp;#039;don&amp;#039;t start it yet&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Why privileged?&amp;#039;&amp;#039;&amp;#039; A privileged LXC is less isolated from the Proxmox host than an unprivileged one. For a homelab tool on a network you control, that&amp;#039;s an acceptable trade for a smooth Docker experience. If you&amp;#039;re security-conscious about the host itself, use the VM option instead.&lt;br /&gt;
&lt;br /&gt;
=== 1.3 Enable nesting (required for Docker) ===&lt;br /&gt;
Select the new container in the UI → &amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Features&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; → tick &amp;#039;&amp;#039;&amp;#039;Nesting&amp;#039;&amp;#039;&amp;#039; (and &amp;#039;&amp;#039;&amp;#039;keyctl&amp;#039;&amp;#039;&amp;#039; if shown) → &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== 1.4 (Optional) Pass through the TUN device — only if you want built-in VPN ===&lt;br /&gt;
Skip this if you won&amp;#039;t use Hack The Box / TryHackMe VPN from inside the tool.&lt;br /&gt;
&lt;br /&gt;
On the &amp;#039;&amp;#039;&amp;#039;Proxmox host shell&amp;#039;&amp;#039;&amp;#039;, edit the container&amp;#039;s config (replace 100 with your CT&amp;#039;s ID):&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
nano /etc/pve/lxc/100.conf&lt;br /&gt;
&lt;br /&gt;
Add these two lines at the bottom: &lt;br /&gt;
&lt;br /&gt;
lxc.cgroup2.devices.allow: c 10:200 rwm&lt;br /&gt;
&lt;br /&gt;
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== 1.5 Start it and log in ===&lt;br /&gt;
Start the container (&amp;#039;&amp;#039;&amp;#039;Start&amp;#039;&amp;#039;&amp;#039; button), then open &amp;#039;&amp;#039;&amp;#039;Console&amp;#039;&amp;#039;&amp;#039;, and log in as root with the password you set.  &lt;br /&gt;
&lt;br /&gt;
== Part 2 — Install Docker inside the container ==&lt;br /&gt;
Run these &amp;#039;&amp;#039;&amp;#039;inside the LXC console&amp;#039;&amp;#039;&amp;#039; (this is for Ubuntu/Debian):&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Update the system&lt;br /&gt;
&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Tools we&amp;#039;ll need&lt;br /&gt;
&lt;br /&gt;
apt install -y ca-certificates curl gnupg git make &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Add Docker&amp;#039;s official GPG key + repository&lt;br /&gt;
&lt;br /&gt;
install -m 0755 -d /etc/apt/keyrings&lt;br /&gt;
&lt;br /&gt;
curl -fsSL &amp;lt;nowiki&amp;gt;https://download.docker.com/linux/ubuntu/gpg&amp;lt;/nowiki&amp;gt; -o /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
chmod a+r /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://download.docker.com/linux/ubuntu&amp;lt;/nowiki&amp;gt; $(. /etc/os-release &amp;amp;&amp;amp; echo $VERSION_CODENAME) stable&amp;quot; \&lt;br /&gt;
&lt;br /&gt;
  | tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Install Docker Engine + Compose plugin&lt;br /&gt;
&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Confirm it works&lt;br /&gt;
&lt;br /&gt;
docker run --rm hello-world&lt;br /&gt;
&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039; instead of Ubuntu, change the two ubuntu words in the repo URL to debian.&lt;br /&gt;
&lt;br /&gt;
If hello-world prints a friendly message, Docker is working. If you get a permission or cgroup error, double-check that &amp;#039;&amp;#039;&amp;#039;Nesting&amp;#039;&amp;#039;&amp;#039; is enabled (Part 1.3) and reboot the container (reboot).  &lt;br /&gt;
&lt;br /&gt;
== Part 3 — Install PentestGPT ==&lt;br /&gt;
Still inside the LXC:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Clone with the benchmark suite included&lt;br /&gt;
&lt;br /&gt;
git clone --recurse-submodules &amp;lt;nowiki&amp;gt;https://github.com/GreyDGL/PentestGPT.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd PentestGPT &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Build the Docker image (this is the slow step — grab a coffee)&lt;br /&gt;
&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
make install builds the pentestgpt:latest image from the included Dockerfile. First run pulls Ubuntu 24.04 and installs all the pentest tools, so it can take several minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If you forgot --recurse-submodules:&amp;#039;&amp;#039;&amp;#039; run git submodule update --init --recursive from inside the PentestGPT folder.  &lt;br /&gt;
&lt;br /&gt;
== Part 4 — Configure your LLM provider ==&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
make config&lt;br /&gt;
&lt;br /&gt;
This launches an interactive menu. Choose the option matching what you set up in &amp;quot;Before you start&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;Anthropic API&amp;#039;&amp;#039;&amp;#039; → paste your sk-ant-... key. &amp;#039;&amp;#039;(Easiest for a server.)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;Claude login (OAuth)&amp;#039;&amp;#039;&amp;#039; → for subscription users; you&amp;#039;ll finish the login in Part 5.&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;OpenRouter&amp;#039;&amp;#039;&amp;#039; → paste your OpenRouter key.&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;Local LLM&amp;#039;&amp;#039;&amp;#039; → point it at your Ollama/LM Studio server (see Troubleshooting for the host.docker.internal note).&lt;br /&gt;
&lt;br /&gt;
Your credentials are stored in a persistent Docker volume, so you only do this once — they survive restarts.  &lt;br /&gt;
&lt;br /&gt;
== Part 5 — Connect and run your first test ==&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
make connect&lt;br /&gt;
&lt;br /&gt;
This starts the PentestGPT container (if it isn&amp;#039;t already running) and drops you into a shell &amp;#039;&amp;#039;&amp;#039;inside&amp;#039;&amp;#039;&amp;#039; it, in the /workspace directory.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If you chose the Claude OAuth option&amp;#039;&amp;#039;&amp;#039;, log in once now:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
claude login&lt;br /&gt;
&lt;br /&gt;
(Follow the URL/code prompt. This also persists across restarts.)&lt;br /&gt;
&lt;br /&gt;
Now run the agent against a target:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Basic run against a target IP&lt;br /&gt;
&lt;br /&gt;
pentestgpt --target 10.10.11.234 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Give it context to focus its approach&lt;br /&gt;
&lt;br /&gt;
pentestgpt --target 10.10.11.50 --instruction &amp;quot;WordPress site, focus on plugin vulnerabilities&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Cap how long it runs&lt;br /&gt;
&lt;br /&gt;
pentestgpt --target 10.10.11.234 --max-iterations 5&lt;br /&gt;
&lt;br /&gt;
This opens an interactive text UI where you watch the agent work through reconnaissance → vulnerability analysis → exploitation. Useful keys: &amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039; = help, &amp;#039;&amp;#039;&amp;#039;Ctrl+P&amp;#039;&amp;#039;&amp;#039; = pause/resume, &amp;#039;&amp;#039;&amp;#039;Ctrl+Q&amp;#039;&amp;#039;&amp;#039; = quit.&lt;br /&gt;
&lt;br /&gt;
When you&amp;#039;re done, exit the shell and stop the container:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
make stop&lt;br /&gt;
&lt;br /&gt;
Your image, config, and login all persist — next time it&amp;#039;s just make connect.  &lt;br /&gt;
&lt;br /&gt;
== Managing the container day-to-day ==&lt;br /&gt;
Run these from the ~/PentestGPT folder inside your LXC:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Command&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |What it does&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |make  connect&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Start + attach to the PentestGPT shell (your main entry  point).&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |make  stop&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Stop the container; all config/logins are kept.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |make  config&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Re-run provider setup (e.g. to switch keys).&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |make  clean-docker&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Remove the container and image.&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |make  docker-nuke&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |Remove everything &amp;#039;&amp;#039;&amp;#039;including saved logins&amp;#039;&amp;#039;&amp;#039; (forces a  fresh login next time).&lt;br /&gt;
|}&lt;br /&gt;
Monitor resource use anytime with:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
docker stats pentestgpt  &lt;br /&gt;
&lt;br /&gt;
== Optional: the multi-provider interactive mode ==&lt;br /&gt;
Inside the container, there&amp;#039;s also a classic human-in-the-loop mode called pentestgpt-legacy. Unlike the autonomous agent (Claude-only), it talks to many providers — OpenAI, Anthropic, Gemini, DeepSeek, Grok, Qwen, Moonshot, and local Ollama — and you steer it with commands like next, more, todo, and discuss. Set the relevant API key(s) in a .env file first (copy .env.example), then:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
pentestgpt-legacy --list-models     # see what&amp;#039;s available/configured&lt;br /&gt;
&lt;br /&gt;
pentestgpt-legacy                   # auto-pick best available models  &lt;br /&gt;
&lt;br /&gt;
== Turning off telemetry (optional) ==&lt;br /&gt;
PentestGPT sends anonymous usage metadata (session type, duration, which tools ran — &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; commands, credentials, or flag contents) to the project&amp;#039;s analytics. To disable it:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; per run&lt;br /&gt;
&lt;br /&gt;
pentestgpt --target 10.10.11.234 --no-telemetry &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; or globally, inside the container&lt;br /&gt;
&lt;br /&gt;
export LANGFUSE_ENABLED=false  &lt;br /&gt;
&lt;br /&gt;
== If you&amp;#039;d rather use a VM instead of an LXC ==&lt;br /&gt;
A VM is the more foolproof host, especially if you want the VPN features. The only differences:&lt;br /&gt;
&lt;br /&gt;
•            In Proxmox, choose &amp;#039;&amp;#039;&amp;#039;Create VM&amp;#039;&amp;#039;&amp;#039; and install Ubuntu 24.04 Server (give it ~2–4 vCPU, 4–8 GB RAM, 32 GB disk).&lt;br /&gt;
&lt;br /&gt;
•            &amp;#039;&amp;#039;&amp;#039;Skip Part 1.2&amp;#039;s privileged setting, 1.3 nesting, and 1.4 TUN passthrough entirely&amp;#039;&amp;#039;&amp;#039; — none of that is needed. /dev/net/tun and NET_ADMIN work natively.&lt;br /&gt;
&lt;br /&gt;
•            Everything from &amp;#039;&amp;#039;&amp;#039;Part 2 (Install Docker)&amp;#039;&amp;#039;&amp;#039; onward is exactly the same.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;docker: permission denied (as a non-root user):&amp;#039;&amp;#039;&amp;#039; add your user to the docker group, then re-log: usermod -aG docker $USER and newgrp docker. (If you&amp;#039;re running everything as root in the LXC, you won&amp;#039;t hit this.)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;make: command not found:&amp;#039;&amp;#039;&amp;#039; you missed it in Part 2 — apt install -y make.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Docker won&amp;#039;t start / cgroup errors in the LXC:&amp;#039;&amp;#039;&amp;#039; confirm &amp;#039;&amp;#039;&amp;#039;Nesting&amp;#039;&amp;#039;&amp;#039; is enabled (Part 1.3), then reboot the container. If it persists, the privileged setting (Part 1.2) is the usual fix.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;quot;Permission denied&amp;quot; writing to /workspace:&amp;#039;&amp;#039;&amp;#039; the repo ships a helper — from the PentestGPT folder on the host, run ./fix-workspace-permissions.sh.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Local LLM can&amp;#039;t connect (connection refused):&amp;#039;&amp;#039;&amp;#039; from inside the Docker container, your host machine is reachable as host.docker.internal, &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; localhost. Point the model URL there (the compose file already maps it).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Image build fails downloading packages:&amp;#039;&amp;#039;&amp;#039; check the container has working internet/DNS (ping github.com), and that your Proxmox network bridge is reachable.&lt;/div&gt;</summary>
		<author><name>Bftcpa606</name></author>
	</entry>
</feed>