infra: serve app over HTTPS via nginx + Let's Encrypt for LAN access

getDisplayMedia (screen capture) requires a secure context, so LAN
staff access now goes through nginx on a real trusted cert
(local-summit.mydentalofficemanagement.com, issued via certbot's
Cloudflare DNS-01 plugin) instead of plain HTTP. A separate public
hostname/nginx block is reserved for Twilio webhooks only, routed
through Cloudflare Tunnel so nothing else is exposed to the internet.

Also fixes the backend CORS allowlist for the new hostname, and stops
the Socket.IO client from bypassing nginx to hit the backend directly
on :5000 (which broke under TLS/mixed content).
This commit is contained in:
2026-07-12 17:25:30 -04:00
parent 118315a04e
commit f712479882
5 changed files with 64 additions and 8 deletions

View File

@@ -2,7 +2,7 @@ NODE_ENV="development"
HOST=0.0.0.0
PORT=5000
CLOUDFLARE_HOST=
FRONTEND_URLS=http://localhost:3000
FRONTEND_URLS=http://localhost:3000,https://local-summit.mydentalofficemanagement.com
SELENIUM_AGENT_BASE_URL=http://localhost:5002
JWT_SECRET = 'dentalsecret'
LICENSE_SECRET=3aa4ab937e46c6863b9e3c2b591a595b31ea3af1060bf5e7961ad722a8b54f92