Repository: Grar00t/gratech-comet-x
Purpose: Browser-Native Local-First AI Platform with Three-Lobe Architecture
Deployment Options: GitHub Pages, Azure Static Web, Azure Front Door + CDN
- URL: https://grar00t.github.io/gratech-comet-x/
- Workflow:
.github/workflows/pages.yml - Source:
docs/public/directory - Status:
- Go to repository Settings → Pages
- Source: GitHub Actions
- Push to
mainbranch triggers deployment automatically
- URL:
https://<storage-account>.z13.web.core.windows.net/ - Workflow:
.github/workflows/azure-static-web.yml - Source:
docs/public/directory - Status:
gh secret set AZURE_CLIENT_ID
gh secret set AZURE_TENANT_ID
gh secret set AZURE_SUBSCRIPTION_IDgh variable set AZURE_RESOURCE_GROUP -b "rg-gratech-comet"
gh variable set AZURE_STORAGE_ACCOUNT -b "stgratechcometweb"
gh variable set AZURE_LOCATION -b "eastus"- Purpose: Global CDN, WAF, Custom Domain, SSL Certificates
- Setup Guide: docs/AZURE_FRONTDOOR_SETUP.md
- Custom Domain:
ai.gratech.saorwww.gratech.sa
- ✅ Global content delivery
- ✅ Web Application Firewall (WAF)
- ✅ Managed SSL certificates
- ✅ Custom domain support
- ✅ DDoS protection
- ✅ Automatic HTTPS redirect
Run the automated script:
./scripts/setup-branch-protection.shOr configure manually at:
https://github.com/Grar00t/gratech-comet-x/settings/branches
- Require pull request reviews (1 approval)
- Require status checks to pass:
- CodeQL
- CI-CD (CometX) - Azure OIDC
- Security Scan (Trivy)
- GitHub Pages deployment
- Azure Static Web deployment
- Enforce for administrators
- Block force pushes
- Block branch deletion
-
CodeQL Analysis (
.github/workflows/codeql-analysis.yml)- Security scanning for JavaScript/TypeScript
- Runs on: push, PR, weekly schedule
- Results: Security → Code scanning alerts
-
CI-CD Azure OIDC (
.github/workflows/deploy.yml)- Azure login via OIDC (no long-lived secrets)
- Node.js 20 build
- Health check: https://api.gratech.sa/health
-
Docker → GHCR (
.github/workflows/docker-publish-ghcr.yml)- Builds and publishes to GitHub Container Registry
- Image:
ghcr.io/grar00t/gratech-comet-x:latest
-
Security Scan - Trivy (
.github/workflows/security-trivy-sarif.yml)- Scans filesystem and Docker images
- Uploads SARIF to Security tab
- Fails on CRITICAL vulnerabilities
-
GitHub Pages (
.github/workflows/pages.yml)- Deploys landing page to GitHub Pages
- Source:
docs/public/
-
Azure Static Web (
.github/workflows/azure-static-web.yml)- OIDC-based deployment to Azure Storage
- Automatic $web container management
- Preview deployments on PRs
The landing page (docs/public/index.html) features:
- RTL Arabic design
- Responsive layout
- Three-Lobe Architecture visualization
- Feature highlights
- Status badges
- Direct links to documentation
After deployment, visit:
- GitHub Pages: https://grar00t.github.io/gratech-comet-x/
- Azure: Check workflow output for URL
# Clone repository
git clone https://github.com/Grar00t/gratech-comet-x.git
cd gratech-comet-x
# Configure Azure OIDC (one-time)
# Follow: docs/SETUP_GUIDE.md
# Add GitHub secrets
gh secret set AZURE_CLIENT_ID -b "YOUR_CLIENT_ID"
gh secret set AZURE_TENANT_ID -b "YOUR_TENANT_ID"
gh secret set AZURE_SUBSCRIPTION_ID -b "YOUR_SUBSCRIPTION_ID"
# Setup branch protection
./scripts/setup-branch-protection.sh# Push to main triggers all workflows
git push origin main
# Monitor workflows
gh run watch
# Check deployments
gh run list --workflow=pages.yml
gh run list --workflow=azure-static-web.yml# GitHub Pages
curl -I https://grar00t.github.io/gratech-comet-x/
# Azure Static Web (get URL from workflow output)
gh run view --workflow=azure-static-web.yml
# Check all workflows status
gh run list- URL: https://github.com/Grar00t/gratech-comet-x/actions
- Check workflow runs, logs, and status
- URL: https://github.com/Grar00t/gratech-comet-x/security
- View CodeQL and Trivy scan results
- URL: https://github.com/Grar00t/gratech-comet-x/settings/pages
- Verify deployment source and URL
# Verify Pages is enabled
gh api repos/Grar00t/gratech-comet-x/pages
# Check workflow logs
gh run view --workflow=pages.yml --log# Verify secrets are set
gh secret list
# Verify federated credential in Azure
az ad app federated-credential list --id <APP_ID>
# Check subject matches exactly:
# repo:Grar00t/gratech-comet-x:ref:refs/heads/main# Verify workflows are enabled
gh api repos/Grar00t/gratech-comet-x/actions/workflows
# Check branch protection isn't blocking
gh api repos/Grar00t/gratech-comet-x/branches/main/protectionLast Updated: 2025-12-13
Maintainer: Grar00t
License: MIT