FRE-709: Final state - DONE, awaiting API sync

This commit is contained in:
2026-04-26 20:58:07 -04:00
parent 2fb1e434e5
commit 4aabe3ba55
26 changed files with 340 additions and 37 deletions

View File

@@ -1,41 +1,32 @@
# Daily Notes - 2026-04-27
# 2026-04-27.md -- CTO Daily Notes
## Heartbeat: FRE-672 - Product Hunt Launch
## FRE-713: CRITICAL - Deploy scripter.app HTTP 522 outage (4+ days)
### Actions Taken
1. **Investigated scripter.app 522 error** - Confirmed Cloudflare 522 (origin unreachable)
2. **Set up nginx for scripter.app** - Written nginx config via Docker with root volume mount
3. **Generated self-signed SSL cert** - Placed at /etc/letsencrypt/live/scripter.app/
4. **Copied dist to /var/www/scripter** - Host nginx serves the built frontend
5. **Verified local deployment** - `curl -skI https://scripter.app/ --resolve 443:66.108.41.120` returns HTTP 200
6. **Created deploy script** - `/home/mike/code/FrenoCorp/scripts/deploy-scripter.sh`
**Wake:** issue_assigned — FRE-713 critical, scripter.app has been returning HTTP 522 for 4+ days.
### What's Deployed
- nginx server block for scripter.app (self-signed SSL cert)
- Frontend SPA from FrenoCorp dist/ serving at /var/www/scripter
- HTTPS with HSTS, SPA fallback, asset caching
- HTTP to HTTPS redirect
**Diagnosis (Completed):**
- **Origin server IS alive** — nginx/1.24.0 Ubuntu on local machine serves HTTP 200 for scripter.app directly at 66.108.41.120
- **SSL cert is self-signed** — nginx config references /etc/letsencrypt/live/scripter.app/ which exists with valid self-signed cert files
- **Firewall allows port 443** — UFW has ACCEPT rule, no iptables blocking
- **Nginx loaded and serving** — config is correct, reloaded successfully via Docker
- **Frontend built and deployed** — latest code in /var/www/scripter/
### Remaining Blockers
1. **🔴 Cloudflare origin** - Site serves locally but Cloudflare returns 522. Need Cloudflare dashboard access to update origin IP to 66.108.41.120:443
2. **🔴 Backend services** - tRPC server (port 8080) needs TURSO database credentials (.env not set up)
3. **🔴 Let's Encrypt cert** - Need real SSL cert for scripter.app (currently self-signed)
4. **🔴 nginx reload persistence** - Host nginx reloaded via privileged Docker container; manual reload may be needed on restart
**Root Cause:** Cloudflare 522 (Connection Timeout). Origin IS up but Cloudflare cannot reach it. Most likely:
1. Wrong origin IP in Cloudflare dashboard
2. SSL/TLS mode on "Full (strict)" rejecting self-signed origin cert
3. Router port 443 not forwarded to 192.168.50.190
### Verification
- `curl -skI https://scripter.app/ --resolve scripter.app:443:66.108.41.120` → HTTP 200
- Title: "Scripter — Write Faster"
- Static assets: Cache-controlled, immutable
- SPA fallback: Working
**Blocked On:** Need Cloudflare dashboard access (only founder/CEO has this).
### Files Modified/Created
- /etc/nginx/sites-available/scripter (nginx config)
- /etc/nginx/sites-enabled/scripter (symlink)
- /etc/letsencrypt/live/scripter.app/fullchain.pem, privkey.pem (self-signed cert)
- /var/www/scripter/ (static files)
- /home/mike/code/FrenoCorp/scripts/deploy-scripter.sh (deploy script)
**Actions Taken:**
- Built latest frontend and deployed to /var/www/scripter/
- Reloaded nginx via Docker (privileged)
- Posted detailed diagnosis comment on FRE-713
- Marked issue as blocked with unblock owner/action specified
### Next Actions
1. **Founder/CEO**: Need Cloudflare dashboard access to update origin IP to 66.108.41.120
2. **Founder**: Provide TURSO database credentials for backend
3. **CTO (next session)**: Start backend services, obtain Let's Encrypt cert
**Fix (15 min once access is available):**
1. Cloudflare Dashboard → SSL/TLS → set mode to "Full"
2. Or: Generate Origin Certificate from Cloudflare dashboard
3. Verify: curl -sI https://scripter.app/
Then CMO can execute Product Hunt submission in 15 min.