Documentation Deployment Architecture β
Visual overview of how the documentation deployment works.
Current Architecture (After This PR) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GitHub Repository β
β cattreedev/lantern_app β
βββββββββββββββββ¬ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β β
β β
Push to main Push to dev
β β
βΌ βΌ
βββββββββββββββββββββββββ βββββββββββββββββββββββββ
β GitHub Actions β β GitHub Actions β
β deploy-docs.yml β β deploy-docs.yml β
β β β β
β 1. npm ci β β 1. npm ci β
β 2. npm run β β 2. npm run β
β docs:build β β docs:build β
β 3. Deploy to CF β β 3. Deploy to CF β
βββββββββββββ¬ββββββββββββ βββββββββββββ¬ββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββ βββββββββββββββββββββββββ
β Cloudflare Pages β β Cloudflare Pages β
β lantern-docs β β lantern-docs-dev β
β (Production) β β (Development) β
βββββββββββββ¬ββββββββββββ βββββββββββββ¬ββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββ βββββββββββββββββββββββββ
β docs.ourlantern.app β β docs-dev.ourlantern. β
β (Public/Protected) β β app (Protected) β
βββββββββββββββββββββββββ βββββββββββββββββββββββββPull Request Flow β
βββββββββββββββββββββββββββββββββββββββββββ
β Developer creates PR with docs changes β
ββββββββββββββββββββ¬βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β GitHub Actions triggers β
β (on pull_request event) β
ββββββββββββββββββββ¬βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β Builds docs and deploys to preview URL β
ββββββββββββββββββββ¬βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β Preview URL: β
β feature-xyz.lantern-docs-dev.pages.dev β
β β
β Team reviews docs before merge β
βββββββββββββββββββββββββββββββββββββββββββComplete Infrastructure β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Lantern Infrastructure β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Main Application:
ββββββββββββββββββββ ββββββββββββββββββββ
β ourlantern.app β β dev.ourlantern. β
β (Production) ββββββ βββββββββΊβ app (Dev) β
ββββββββββββββββββββ β β ββββββββββββββββββββ
β² β β β²
β β β β
β ββββββ΄βββββββ΄βββββ β
β β Cloudflare β β
β β Pages Projects β β
β β β β
β β lantern-app β β
β β lantern-app-devβ β
β βββββββββββββββββββ β
β β
ββββββββββββββββββ¬ββββββββββββββββββββββββ
β
GitHub Repo
(cattreedev/
lantern_app)
β
ββββββββββββββββββ΄ββββββββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ
β docs.ourlantern. β β docs-dev. β
β app (Production) ββββββ βββββββββΊβ ourlantern.app β
ββββββββββββββββββββ β β ββββββββββββββββββββ
β² β β β²
β β β β
β ββββββ΄βββββββ΄βββββ β
β β Cloudflare β β
β β Pages Projects β β
β β β β
β β lantern-docs β β
β β lantern-docs- β β
β β dev β β
β βββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββ
Documentation Site (NEW - This PR)DNS Configuration β
βββββββββββββββββββββββββββββββββββββββββββββββ
β Cloudflare DNS (ourlantern.app zone) β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β @ (root) β lantern-app.pages.dev β
β dev β lantern-app-dev.pages. β
β dev β
β docs (NEW) β lantern-docs.pages.dev β
β docs-dev (NEW) β lantern-docs-dev.pages. β
β dev β
β β
β All CNAME records are Proxied (π ) β
βββββββββββββββββββββββββββββββββββββββββββββββGitHub Actions Workflow Triggers β
Event: Push to main/dev
Conditions:
- Files in docs/** changed OR
- package.json changed OR
- .github/workflows/deploy-docs.yml changed
β
Run workflow
Event: Pull Request
Conditions:
- Files in docs/** changed
β
Run workflow (preview deployment)
Event: workflow_dispatch
Conditions:
- Manual trigger from GitHub UI
β
Run workflowDeployment Timeline β
Time: T+0s
ββ Developer pushes commit to dev branch
β
Time: T+5s
ββ GitHub Actions detects push
ββ Workflow starts
β
Time: T+10s
ββ Checkout code
ββ Setup Node.js
β
Time: T+30s
ββ Install dependencies (npm ci)
β
Time: T+60s
ββ Build docs (npm run docs:build)
β
Time: T+90s
ββ Deploy to Cloudflare Pages
β
Time: T+120s
ββ Cloudflare builds and deploys
β
Time: T+180s (3 minutes)
ββ β
Docs live at docs.dev.ourlantern.appSecurity & Access β
βββββββββββββββββββββββββββββββββββββββββββββββ
β Access Control β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ourlantern.app β
β ββ Cloudflare Access: PIN Auth (Piloting) β
β β
β dev.ourlantern.app β
β ββ Cloudflare Access: PIN Auth β
β β
β docs.ourlantern.app (NEW) β
β ββ Option 1: Public (Recommended) β
β ββ Option 2: Cloudflare Access (Optional) β
β β
β docs.dev.ourlantern.app (NEW) β
β ββ Option 1: Public β
β ββ Option 2: Protected (For unreleased β
β features) β
βββββββββββββββββββββββββββββββββββββββββββββββBuild Outputs β
Repository Structure:
/home/runner/work/lantern_app/lantern_app/
β
ββ Main App Build (npm run build:app)
β ββ Output: dist/
β ββ index.html
β ββ assets/
β ββ sw.js (service worker)
β ββ manifest.webmanifest
β
ββ Docs Build (npm run docs:build)
ββ Output: docs/.vitepress/dist/
ββ index.html
ββ assets/
ββ engineering/
ββ features/
ββ business/
ββ ... (all docs pages)
Note: Builds are now INDEPENDENT - no longer copied togetherKey Benefits Visualized β
Before (Single Deployment):
βββββββββββββββββββββββββββ
β Build App + Docs β β 5-10 minutes
β (Single large build) β
ββββββββββ¬βββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββ
β Deploy to Cloudflare β β 2-3 minutes
ββββββββββ¬βββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββ
β ourlantern.app/docs/ β
βββββββββββββββββββββββββββ
After (Separate Deployments):
ββββββββββββββββ ββββββββββββββββ
β Build App β β Build Docs β β 2-3 min each
ββββββββ¬ββββββββ ββββββββ¬ββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β Deploy App β β Deploy Docs β β 2-3 min each
ββββββββ¬ββββββββ ββββββββ¬ββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
βourlantern.appβ βdocs.ourlanternβ
β β β.app β
ββββββββββββββββ ββββββββββββββββ
Benefits:
β
Update docs without touching app
β
Faster individual builds
β
Independent scaling
β
Cleaner URLs
β
Better SEOMonitoring & Verification β
1. GitHub Actions
ββ https://github.com/cattreedev/lantern_app/actions
ββ "Deploy Documentation" workflow
ββ View status (β
or β)
ββ See deployment logs
ββ Check deployment summary
2. Cloudflare Dashboard
ββ https://dash.cloudflare.com
ββ Workers & Pages β Pages
ββ lantern-docs (production)
β ββ Deployments tab
β ββ View history
β ββ See build logs
β ββ Check status
β
ββ lantern-docs-dev (development)
ββ Same monitoring
3. Direct Verification
ββ Visit docs.ourlantern.app
ββ Hard refresh (Ctrl+Shift+R)
ββ Verify changes appearQuick Decision Tree β
Need to update docs?
β
ββ Yes
β β
β ββ Edit docs/ files
β ββ Test locally (npm run docs:dev)
β ββ Commit and push to dev
β ββ β
Auto-deploys to docs.dev.ourlantern.app
β
ββ Ready for production?
β
ββ Yes
β ββ Merge to main
β ββ β
Auto-deploys to docs.ourlantern.app
β
ββ No
ββ Keep testing on docs-devLast updated: 2026-01-10