Deployment Overview
Lantern uses multiple deployment platforms for different services:
| Service | Platform | Purpose |
|---|---|---|
| Web App | Cloudflare Pages + Workers | React/Vite front-end, PWA |
| Discord Bot | Railway | Feature request submissions, admin tools |
| Cloud Functions | Firebase Cloud Functions | Backend logic, GitHub issue creation |
| Database | Firebase Firestore | User data, feature requests, lantern state |
| File Storage | Firebase Cloud Storage | User uploads, profile images |
Deployment Guides by Service
- CI/CD Pipeline — Automated builds, tests, and deployments with GitHub Actions
- Discord Bot Deployment — Railway setup, environment variables, troubleshooting
- Web App Deployment — Cloudflare Pages & Workers configuration
- Cloud Functions Deployment — Firebase Cloud Functions setup
- Storybook Deployment — Hosting component documentation
- Docs Deployment — VitePress documentation site
- Branch Protection Setup — Configuring required status checks and PR approval rules
Development Environments
Local Development
- Web app:
npm run dev(Vite dev server on localhost:5173) - Discord bot:
npm run start(fromdiscord-bot/directory) - Docs:
npm run docs:dev(VitePress on localhost:5173) - Storybook:
npm run storybook - Tests:
npm test(Vitest)
Dev Environment (dev.ourlantern.app)
- Uses
lantern-app-devFirebase project - Accessible to internal testing
- Auto-deploys from
devbranch
Production (ourlantern.app)
- Uses
lantern-app-prodFirebase project - Public-facing
- Manual deployments from
mainbranch
Environment Variables
Each service requires different environment variables. See the service-specific deployment guides for configuration details.
Secrets Management
- Store Firebase service account keys in
~/repos/secrets/firebase/ - Railway, Cloudflare, and GitHub use their respective secret managers
- Never commit secrets to git
See Also
- SUBDOMAINS_AND_ACCESS.md — Infrastructure overview
- ../../engineering/README.md — Engineering documentation index