A highly polished, professional Single Page Application designed for SecOps professionals and bug hunters to draft, build, refine, and catalogue security vulnerability reports in clean, compliance-grade formats.
This project delivers a responsive client dashboard with interactive Markdown sidebars, category tracking, severity selectors, sync backups, and template headers.
This containerized environment features a micro-sized multi-stage build configured with a lightweight Nginx Alpine production server, optimized with gzip compression and robust fallback routing tailored for single-page React architectures.
Make sure you have the following software installed:
- Docker Desktop (v20.10.0 or higher)
- Docker Compose (v2.0.0 or higher)
Docker Compose is the fastest way to spin up the container with optimized configurations.
-
Build and start the container in detached mode:
docker compose up --build -d
-
Access the Application: Open your browser of choice and navigate to:
http://localhost:8080 -
Stop & Turn Down Services:
docker compose down
If you prefer to work with Docker commands directly instead of Compose, use the commands below.
docker build -t bugreport:latest .docker run -d \
--name bugreport \
-p 8080:80 \
--restart unless-stopped \
bugreport:latestdocker logs -f bugreportdocker stop bugreport
docker rm bugreport- Port Mapping: By default, the app is exposed on host port
8080. To customize the host port, opendocker-compose.ymland modify the ports configuration (e.g."3000:80"to serve on port3000). - Security Precautions: The Compose config enforces
no-new-privileges:trueas a defense-in-depth container containment standard. - SPA Support: The production container copies a specialized
nginx.confrouting all unresolved assets back to standardindex.htmlseamlessly. This ensures you can scale route architectures inside React without triggering404 Not Foundresponses from Nginx.
.
├── Dockerfile # Optimizing build execution stages (Node building -> Nginx deployment)
├── nginx.conf # SPA-configured Nginx routing parameters & gzip controls
├── docker-compose.yml # Declarative service deployment specification
├── .dockerignore # Eliminates container bloat and prevents target context pollution
└── README.md # User guide & operations manualIf another application or container has bound to port 8080, stop the container and edit your docker-compose.yml ports pairing:
ports:
- "9000:80" # Change outer port to 9000, keep inner port 80 untouchedThen run:
docker compose up -dTo force Docker to rebuild your static workspace without using any cached installation layers, clear the cache cleanly using:
docker compose build --no-cache
docker compose up -d