๐ฌ Scanopy โ Container Vulnerability Scanner
Host: Homelab ยท Compose:
Homelab/Docker/scanopy/compose.yaml
Stack name:scanopy
1. Overview
Scanopy is a container image vulnerability scanner. A persistent daemon scans containers on the host (via Docker socket) and reports CVEs. A central server aggregates results, stores them in PostgreSQL, and serves the web UI. The daemon uses host network mode to discover all running containers.
2. Architecture & Services
| Service | Image | Port | Role |
|---|---|---|---|
daemon |
ghcr.io/scanopy/scanopy/daemon:v0.17.16 |
${SCANOPY_DAEMON_PORT |
Scans Docker images on the host for vulnerabilities |
postgres |
postgres:17-alpine@sha256:6f30057d31f5861b66f3545d4821f987aacf1dd920765f0acadea0c58ff975b1 |
โ | Scan result storage |
server |
ghcr.io/scanopy/scanopy/server:v0.17.16 |
${SCANOPY_SERVER_PORT |
Web UI and API for viewing scan results |
3. Networking
hostโ โscanopyโ Bridge network connecting the server and PostgreSQL.
4. Persistent Storage
| Container | Host Path / Volume | Description |
|---|---|---||
| daemon | /var/run/docker.sock | โ |
| daemon | daemon-config | โ |
| postgres | postgres_data | โ |
| server | ./data | Server-side scan report data |
5. Environment Variables
| Variable | Service | Description |
|---|---|---|
SCANOPY_BIND_ADDRESS |
daemon |
โ |
SCANOPY_DAEMON_PORT |
daemon |
Daemon port (60073) |
SCANOPY_HEARTBEAT_INTERVAL |
daemon |
โ |
SCANOPY_LOG_LEVEL |
daemon |
Log verbosity (info) |
SCANOPY_MODE |
daemon |
โ |
SCANOPY_NAME |
daemon |
โ |
SCANOPY_PORT |
daemon |
โ |
SCANOPY_SERVER_PORT |
daemon |
Server port (60072) |
SCANOPY_SERVER_URL |
daemon |
Where to report results |
POSTGRES_DB |
postgres |
โ |
POSTGRES_PASSWORD |
postgres |
Set via .env or defaults to password |
POSTGRES_USER |
postgres |
โ |
SCANOPY_DAEMON_PORT |
server |
Daemon port (60073) |
SCANOPY_DATABASE_URL |
server |
PostgreSQL connection string |
SCANOPY_INTEGRATED_DAEMON_URL |
server |
โ |
SCANOPY_LOG_LEVEL |
server |
Log verbosity (info) |
SCANOPY_PUBLIC_URL |
server |
Public-facing URL |
SCANOPY_SERVER_PORT |
server |
Server port (60072) |
SCANOPY_WEB_EXTERNAL_PATH |
server |
โ |
6. Access & Usage
| URL | Description |
|---|---|
http://localhost:60072 |
Scanopy web UI |
# Start
docker compose -f Homelab/Docker/scanopy/compose.yaml up -d
# Check daemon health
curl -f http://localhost:60073/api/health
7. Maintenance & Backup
# Update
docker compose -f Homelab/Docker/scanopy/compose.yaml pull
docker compose -f Homelab/Docker/scanopy/compose.yaml up -d
No critical persistent data โ scan results can be regenerated by re-scanning.