WebVerse is a local web & API security lab runner — a desktop app that discovers labs, starts them with Docker Compose, opens them in your browser, and tracks progress on your machine.
Educational use only. Labs are intentionally vulnerable. Do not expose them to the internet.
curl https://raw.githubusercontent.com/LeighlinRamsay/WebVerse/refs/heads/main/install.sh | bash
pipx installs WebVerse into an isolated environment and exposes a webverse command.
- Linux or macOS
- Python 3.10+
- Docker + Docker Compose v2 (must support
docker compose)
Quick check:
python3 --version
docker --version
docker compose versionIf
docker compose versionfails, install Docker Desktop (macOS) or Docker Engine + Compose plugin (Linux).
Debian/Kali/Ubuntu:
sudo apt update
sudo apt install -y pipx
pipx ensurepathRestart your terminal (or run source ~/.bashrc / source ~/.zshrc).
pipx install git+https://github.com/LeighlinRamsay/WebVerse.gitwebversepipx upgrade webverse
pipx uninstall webverseUse this if you’re editing the code or building labs.
git clone https://github.com/LeighlinRamsay/WebVerse.git
cd WebVersepython3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython3 webverse.py- 🧪 Browse included labs (difficulty, tags, description)
▶️ One-click Start / Stop / Reset- 🌐 Open in Browser from the UI
- 🧾 View lab status and logs
- ✅ Track progress locally (
progress.db) - 🏁 Flag submission + verification (via
flag_sha256in eachlab.yml)
- Open WebVerse
- Go to Labs and pick a lab
- Click Start (Docker Compose spins up the lab)
- Click Open in Browser
- When you capture the flag, submit it in the lab page to mark it solved
- Use Reset to restore the lab and try again
By default, labs live in:
./labs/(in a source checkout)
If Docker works only with sudo, add your user to the docker group:
sudo usermod -aG docker "$USER"
newgrp docker
docker psSome labs bind to low ports. If a lab fails to start with permission errors:
- Update the lab’s
docker-compose.ymlto use a higher port (e.g.8080:80), or - Run WebVerse with elevated permissions (not recommended as default)
- Confirm Docker is running:
docker ps - Check the lab logs in the WebVerse UI
- Try Stop → Reset → Start
Most practice environments are either:
- heavy to set up,
- scattered across repos,
- or too manual to run repeatedly.
WebVerse makes local practice repeatable:
- labs are self-contained
- starting/resetting takes one click
- you can iterate quickly, break things, reset, and try again
WebVerse and included labs are for education and authorized testing only. You are responsible for how you use this software.