# Deploy — security.azcomputerguru.com ## 1. cPanel / WHM (IX server, 172.16.3.10) - Create subdomain `security.azcomputerguru.com` (docroot e.g. `/home//security`). - Create MySQL DB `acgsec_assess` + user `acgsec_app`, grant all on the DB. Vault the password (`msp-tools/security-assessment-db`). Import `app/schema.sql`. - Upload `app/*` to the docroot. `cp config.sample.php config.php` and fill secrets (DB pass + Mike's Syncro key from vault `msp-tools/syncro-mike`). ## 2. Cloudflare DNS + Access - DNS: `security` A/CNAME -> the IX origin, **proxied** (orange cloud). - Zero Trust > Access > Applications: add self-hosted app for `security.azcomputerguru.com`, policy = Allow, include `mike@azcomputerguru.com` (require MFA). Everyone else blocked. The app reads `Cf-Access-Authenticated-User-Email` as a second check. ## 3. Consent apps - 365: register redirect URI `https://security.azcomputerguru.com/consent-callback.php` on the Security Investigator app (bfbc12a4-...). Admin-consent link is generated per-tenant in-app. - Google: create a Workspace read-only OAuth client, set GOOGLE_CLIENT_ID + redirect; scopes are in config. (Stubbed until created.) ## Notes - Read-only by design: the app only *reads* Syncro and *generates* consent links. No tenant writes. - Post-meeting scan consumes the export + the granted 365/Google consent to run the audit.