Network security auditing for small and medium-sized businesses.
SME-Shield scans your local network, discovers active devices, identifies vulnerable services, and delivers a plain-English PDF report — so any business owner can understand and act on the findings. No IT degree required.
Built by Ronnie Jeff · Kenya
- Detects all active devices on your local network
- Scans 23 common ports per device
- Grabs service banners to identify exact software versions
- Queries the NIST National Vulnerability Database for known CVEs
- Calculates a 0-100 security score with logarithmic risk weighting
- Generates a downloadable PDF report with plain-English remediation advice
- Streams live audit progress over WebSocket
Requires Docker on a Linux machine.
git clone https://github.com/rjeff-sudo/sme-shield.git
cd sme-shield
mkdir -p data
docker build -t sme-shield:latest .
docker run -d -p 8080:8080 -v $(pwd)/data:/app/data --name sme-shield sme-shield:latestOpen http://localhost:8080 in your browser.
To access from other devices on the same network, find your machine IP first:
hostname -I | awk '{print $1}'Then on any device on the same network open:
http://<your-machine-ip>:8080
Note on device discovery: For the network scanner to detect devices on your local network, the app must run directly on a machine inside that network. Docker with
-pport mapping limits discovery to the container network. If you need full device discovery, use Option B below.
Requires Go 1.22+ and GCC installed.
git clone https://github.com/rjeff-sudo/sme-shield.git
cd sme-shield
# Set Go paths (add these to ~/.bashrc to make permanent)
export GOPATH=$HOME/go
export GOMODCACHE=$HOME/go/pkg/mod
# Install dependencies
go mod tidy
# Build and run
make runOpen http://localhost:8080 in your browser.
# If running with Docker
docker stop sme-shield
# If running with make
Ctrl+C# Docker — starts automatically if you used --restart unless-stopped
docker start sme-shield
# Or rebuild and run
make runAll settings live in config.yaml — no code changes needed.
server:
port: 8080 # change the port here
nvd:
api_key: "" # add a free NVD API key for faster CVE lookups
# get one at: https://nvd.nist.gov/developers/request-an-api-keyAn NVD API key raises the CVE lookup rate limit from 5 requests/30s to 50 requests/30s. Free and instant to get — strongly recommended.
sme-shield/
├── cmd/server/ entry point
├── internal/
│ ├── audit/ scan engine, risk scoring, remediation advice
│ ├── handlers/ HTTP handlers (scan, discovery, history, reports)
│ ├── hub/ WebSocket pub/sub
│ ├── models/ shared types
│ ├── network/ subnet detection, device discovery
│ └── scanner/ port scanning, banner grabbing
├── platform/
│ ├── db/ SQLite connection, versioned migrations
│ ├── nvd/ NVD API client, 7-day CVE cache
│ └── report/ PDF generation
├── ui/ frontend (HTML, CSS, JS)
├── config.yaml
├── Dockerfile
└── docker-compose.yml
| Layer | Technology |
|---|---|
| Backend | Go 1.22 |
| Database | SQLite (go-sqlite3) |
| Real-time | WebSocket (gorilla/websocket) |
| CVE data | NIST NVD API 2.0 |
| gofpdf | |
| Frontend | Vanilla HTML / CSS / JS |
| Container | Docker multi-stage build |
Interested in this project or want to discuss network security tools for East African businesses?
- GitHub — github.com/rjeff-sudo
- Email — fitchcharles989@gmail.com
- LinkedIn — https://linkedin.com/rjeff-sudo
MIT — free to use, modify, and distribute.