Catch deployment errors before they reach production.
An intelligent pre-deployment analyzer that executes your project code in isolated sandboxes and uses Groq AI to detect, explain, and recommend fixes for deployment issues.
- 📦 Automated Zip Analysis: Upload project archives (
.zip) for instant pre-flight validation. - 🐳 Isolated Container Sandbox: Runs real build and dependency commands inside lightweight, restricted Docker containers.
- 🤖 AI-Powered Diagnostics: Integrated with Groq AI to translate complex build traces into human-readable root causes and actionable solutions.
- 🔍 Cross-File Configuration Checking: Detects mismatches across Dockerfiles, docker-compose configurations, and source files.
- 🔑 Environment Variable Audit: Scans code for environment variable references and checks against
.envdeclarations. - ⚡ Multi-Ecosystem Support: Validates Python (
pip), Node.js (npm), Docker, and Docker Compose applications.
flowchart LR
subgraph Client Layer
UI[Web Dashboard\nNginx :3000]
end
subgraph API Layer
API[FastAPI Service\nUvicorn :8000]
AUTH[JWT Authentication]
DB[(SQLite / PostgreSQL)]
end
subgraph Execution & AI
DS[(Docker Engine)]
SB[Isolated Container Sandbox]
AI[Groq Llama 3 AI Engine]
end
UI -->|Upload Zip / Auth| API
API <--> DB
API <--> AUTH
API -->|Mount & Run| DS
DS --> SB
API -->|Logs & Context| AI
- Docker & Docker Compose (version 2.0+)
- Groq API Key (Free key available at console.groq.com)
# Clone the repository
git clone https://github.com/dinu-vishruth/issue_prediction.git
cd issue_prediction
# Create environment configuration file
cp .env.example .envEdit .env to configure your credentials:
GROQ_API_KEY=your_groq_api_key_here
JWT_SECRET=your_super_secret_jwt_keydocker-compose up --buildAccess the application services:
- 🌐 Web Interface: http://localhost:3000
- 📚 API Documentation (Swagger): http://localhost:8000/docs
- 🏥 Health Check Endpoint: http://localhost:8000/health
To run in the background (detached mode):
docker-compose up -d --buildTo stop all running services:
docker-compose down -vThe repository includes a pre-configured sample project with intentional errors (sample_project/):
-
Package the sample project:
cd sample_project zip -r ../sample_project.zip . cd ..
-
Upload
sample_project.zipat http://localhost:3000.
- ❌ Non-existent package in
requirements.txt - 🔑 Missing environment variables (
DB_PASSWORD,REDIS_URL) - 🔌 Port mismatch between
Dockerfile(8000) anddocker-compose.yml(5000) ⚠️ Missing environment setting (POSTGRES_PASSWORD) indocker-compose.yml
| Project Type | Analyzed File | Verification Executed |
|---|---|---|
| Python | requirements.txt |
pip install --dry-run, pip check |
| Node.js | package.json |
npm install --dry-run, npm ls |
| Docker | Dockerfile |
docker build --no-cache |
| Docker Compose | docker-compose.yml |
docker-compose config |
| Env Variables | .env, .py, .js |
Static AST / Regex scan for missing definitions |
All user-submitted code is isolated using strict Docker container constraints:
- 🧱 Read-Only Mounts: Source code is mounted read-only during execution.
- ⚡ Resource Restrictions: Hard limits enforced per analysis run (
512MB RAM,0.5 CPU cores). - 🌐 Network Isolation: Disables external internet access during command execution.
- ⏱️ Execution Timeouts: Prevents infinite loops or hung processes (30-second default limit).
- 🧹 Automatic Cleanup: Containers and temporary working directories are purged immediately post-analysis.
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export GROQ_API_KEY="your_groq_api_key_here"
export JWT_SECRET="your_custom_secret"
uvicorn main:app --reload --host 0.0.0.0 --port 8000docker build -t deploycheck-sandbox -f Dockerfile.sandbox .cd frontend
python3 -m http.server 3000Upload and analyze a project ZIP file.
- Request:
multipart/form-datawithfilefield (.zip format) - Response: JSON payload containing detected files, raw output logs, detected issues, and AI recommendations.
Returns backend operational status and Docker daemon availability.
- Response:
{"status": "healthy", "docker_available": true}
Distributed under the MIT License. See LICENSE for more information.