ReqInspect is an open-source application designed to simplify and streamline requirements.txt inspection and debugging. It provides a full-stack solution with a Vue.js frontend and a Go backend, offering a responsive and powerful interface for inspecting python requirements.txt file.
Note: This application has been migrated from AWS infrastructure to run locally via Docker. The public URLs (reqinspect.com) are no longer reachable. Use the Docker setup below to run it on your local machine.
To run ReqInspect locally using Docker:
- Ensure Docker and Docker Compose are installed.
- Clone the repository and navigate to the project directory.
- Build the custom Python image:
sudo docker build -f python-with-git.Dockerfile -t my-python-git . - Start the services:
sudo docker compose up --build - Access the application at
http://localhost:5173
The setup includes:
- Vue.js frontend served via Nginx on port 5173
- Go backend API on port 8080
- Docker-in-Docker support for pip install testing
The ReqInspect application was previously deployed on AWS with the following stack:
- Framework: Built with Vue.js for a modern, dynamic, and responsive user interface.
- Hosting: Deployed on AWS Amplify, taking advantage of its managed hosting services for SPAs (Single Page Applications).
- CDN-backed hosting for fast and reliable global delivery.
- HTTPS enabled by default for secure communication.
- Automatic builds and deployments on commits to the main branch.
- Automatic Domain Resolution linked with Route53
- Framework: Powered by a Go API that efficiently handles HTTP requests.
- Hosting: Deployed on an AWS EC2 instance to ensure flexibility and scalability.
- Rate Limited API to mitigate attacks and spamming of the backend
- Token-based authentication implemented for enhanced security:
- Clients must obtain an authentication token before sending requests.
- Tokens ensure secure file uploads and authenticated API interactions.
- Domain: The application was previously accessible through reqinspect.com and www.reqinspect.com. These URLs are no longer active.
- Load Balancing:
- An Application Load Balancer (ALB) distributes incoming requests to the backend instances.
- HTTPS termination occurs at the ALB to ensure end-to-end encryption.
- Authentication & Authorization:
- The backend enforces token-based authentication for all API endpoints.
- Expired or invalid tokens are rejected to maintain API security.
- Rate Limiting:
- The backend limits the amount of pings per hour in order to mitigate attacks
- Logging: Both the frontend and backend are integrated with AWS CloudWatch for centralized log collection and analysis.
- Metrics: CloudWatch monitors system performance, traffic patterns, and error rates.
- Alerting: Alarms notify the administrator of unusual activities or potential system failures.
- Frontend: AWS Amplify ensures automatic scaling for traffic surges without manual intervention.
- Backend: The EC2 instance is provisioned with auto-scaling rules, ensuring optimal performance even under heavy load.
We welcome contributions! If you'd like to suggest a feature, report a bug, or make a pull request, please follow the contribution guidelines in this repository.
Licensed under Apache 2.0 License