gnam is a HTTP ingester, it quite literally eats your HTTP requests and saves them so you can analyze them more easily.
- Accepts any HTTP method (GET, POST, PUT, PATCH, DELETE, etc.)
- Ingests and stores requests into a database (SQLite)
- Web UI to browse saved requests
- Runs as a single self-contained Go binary
- No CGO dependencies (runs anywhere)
There are multiple ways to install gnam:
You can run gnam using the pre-built Docker image from GitHub Container Registry.
Using docker-compose (Recommended):
Create a docker-compose.yml file with the following content:
services:
gnam:
image: ghcr.io/xerosic/gnam:latest
container_name: gnam
ports:
- "8080:8080"
volumes:
- gnam_data:/data
restart: unless-stopped
volumes:
gnam_data:Then, start the service with:
docker-compose up -dUsing docker run:
docker run -d -p 8080:8080 --name gnam -v gnam_data:/data ghcr.io/xerosic/gnam:latestThis will run gnam and persist the database in a named volume called gnam_data.
You can download pre-compiled binaries for various operating systems and architectures from the GitHub Releases page.
If you have a Go environment set up, you can install gnam directly:
go install github.com/xerosic/gnam@latestThis will download, compile, and install the binary in your $GOPATH/bin directory.
To build from source, you'll need Go installed.
-
Clone the repository:
git clone https://github.com/xerosic/gnam.git cd gnam -
Build the binary:
go build -o gnam . -
Run the application:
./gnam