Automated infrastructure compliance scanning and remediation platform.
comply2/
├── frontend/ # Next.js 14 app (TypeScript + Tailwind)
├── backend/ # FastAPI Python backend
├── demo/ # Demo infra with intentional violations
├── firestore.rules # Firestore security rules
├── firestore.indexes.json
├── storage.rules
└── firebase.json
| Layer | Technology |
|---|---|
| Frontend | Next.js 14, TypeScript, Tailwind CSS |
| Auth | Firebase Auth (Google Sign-In) |
| Database | Firestore (Native Mode) |
| Storage | Firebase Storage |
| Backend | FastAPI (Python 3.11+) |
| LLM | Gemini 1.5 Flash |
| GitHub | GitHub OAuth + REST API |
- Create a Firebase project at console.firebase.google.com
- Enable Google Sign-In in Authentication
- Enable Firestore in Native Mode
- Download a Service Account JSON to
backend/serviceAccountKey.json - Deploy security rules:
firebase deploy --only firestore:rules,storage
- Go to GitHub → Settings → Developer Settings → OAuth Apps → New OAuth App
- Homepage URL:
http://localhost:3000 - Callback URL:
http://localhost:3000/api/github/callback - Copy Client ID and Client Secret
cd frontend
cp .env.local.example .env.local
# Fill in Firebase and GitHub values
npm install
npm run dev # http://localhost:3000cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Fill in Firebase, Gemini, GitHub values
# Set FIREBASE_SERVICE_ACCOUNT_JSON=serviceAccountKey.json
uvicorn app.main:app --reload # http://localhost:8000The demo/sample-infra/ folder contains intentionally insecure IaC files:
- main.tf – Public S3, insecure SG, unencrypted RDS, hardcoded secrets
- kubernetes.yaml – Privileged containers, wildcard network policies
- Dockerfile – Running as root, hardcoded secrets, :latest tag
Push this to a GitHub repo, connect it to a workspace, and run a scan to see Comply in action.
- Sign in with Google
- Create consultancy
- Create workspace for "Acme Bank" (GDPR/AWS/Terraform)
- Connect GitHub OAuth
- Connect the
demo/sample-infrarepo - Trigger a scan
- Review findings (P0/P1/P2)
- Approve fix plans
- Create pull request
- View PR on GitHub
See frontend/.env.local.example and backend/.env.example.