I recently set up Osintgram 2.0, an open-source Instagram OSINT tool with a local web UI, on a Kali Linux VM running in VMware, using HikerAPI as the data backend. Here is what the setup actually looked like, including the errors I ran into.
1. Python "externally-managed-environment"
On current Kali, pip install -r requirements.txt fails with PEP 668's externally-managed-environment error. The clean fix is a virtual environment:
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
I used --break-system-packages at first, and it caused dependency conflicts with some preinstalled Kali tools. A venv avoids that.
2. make run could not find uvicorn
uvicorn was installed in ~/.local/bin, which was not on my PATH. Running it as a module works:
python3 -m uvicorn src.web.app:app --host 127.0.0.1 --port 8000
3. "Address already in use"
Port 8000 was taken by a Docker container from another project. sudo ss -ltnp | grep :8000 showed docker-proxy as the owner, and docker ps showed which container. You can either stop it or run the tool on another port.
4. Opening the UI from my host machine
The UI binds to 127.0.0.1 and has no authentication, so I kept it that way and used an SSH tunnel instead of exposing it on the network:
ssh -L 8000:127.0.0.1:8000 user@
Then I opened http://127.0.0.1:8000 in my host browser.
5. "No backend configured"
The UI needs a data source. Either set a HikerAPI token or log in with instagrapi. I used HikerAPI:
export HIKERAPI_TOKEN="your_token"
Keep the token out of shell history, screenshots and chat messages, and regenerate it if it ever leaks.
Takeaways
- Use a venv on modern Kali.
- Check for port conflicts if you run Docker projects.
- An SSH tunnel is a safe way to reach a localhost-only UI inside a VM.
- Only use OSINT tools on public data and within the law and the platform's terms.



