-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment Guide
Owner(s): CrowdPM team | Last updated: 2026-03-08 | Status: Production
This page summarizes deployment across local, demo, and production contexts. The canonical operational runbooks remain:
docs/development.mddocs/demo.mddocs/prod.md
Use this page as the wiki-level overview and decision guide.
Use local deployment when:
- developing features;
- validating route behavior;
- testing ingest changes;
- preparing for demos without cloud dependencies.
Primary command:
pnpm devThis launches:
- frontend dev server;
- Firebase Emulator Suite;
- functions build watcher.
Local deployment prerequisites:
-
.firebasercseeded from example; -
frontend/.env.localconfigured; -
functions/.env.localconfigured; -
functions/.secret.localconfigured for secret-backed functions.
Use the demo deployment when:
- code has been reviewed;
- CI is green;
- a shared hosted environment is needed for presentation or team validation.
High-level demo deployment requirements:
- access to the demo Firebase project;
- demo runtime secrets configured;
- Firestore API enabled in the project if it is a first-time setup;
- Firestore database created;
- default Storage bucket created;
- GitHub Actions secret
DEMO_SERVICE_ACCOUNT_JSONconfigured if using the documented GitHub deployment workflow.
Use production deployment only for controlled releases.
High-level production requirements:
- release window and approval confirmed;
- demo validation complete;
- correct project context selected;
- production secrets verified;
- fresh build artifacts generated;
- release notes prepared.
pnpm install- copy env examples into
.env.local - create
functions/.secret.local - run
pnpm dev - verify
/health - verify frontend and smoke test
- all relevant changes merged to
main; - CI green;
- local repo clean and up to date;
- Firebase CLI authenticated;
- demo project access confirmed.
The documented demo runbook includes a GitHub Actions secret named:
DEMO_SERVICE_ACCOUNT_JSON
If using GitHub-based deployment, ensure that secret exists and corresponds to the intended demo project.
For a new or freshly prepared demo Firebase project, confirm:
- Firestore API is enabled;
- Firestore database exists;
- default Firebase Storage bucket exists.
Without these, functions and ingest smoke tests can fail even when code is correct.
- check out
mainand pull latest changes; - confirm correct demo project context and secrets;
- build fresh artifacts if required by the runbook;
- deploy using the documented demo procedure;
- validate hosted frontend and core API behavior;
- run or verify a smoke-test-like path in the hosted environment if appropriate.
- demo environment already validated;
- production release manager is identified;
- release notes drafted;
- rollback/backups verified.
The documented production runbook explicitly switches Firebase context to production before continuing. This step must be treated as a hard stop / confirmation point.
- ensure the local checkout matches the intended release commit;
- switch Firebase context to production;
- verify required secrets such as
DEVICE_TOKEN_PRIVATE_KEY; - run fresh lint/build steps;
- deploy only after the project context is re-verified;
- perform post-deploy validation and record the release.
- deployment context overview;
- environment distinctions;
- contributor guidance on when to use local/demo/production;
- high-level checklists.
- exact command sequences;
- secret-management commands;
- first-run cloud-console steps;
- release-manager operational details.
- using the local/demo alias for a real deploy;
- forgetting
functions/.secret.localduring local startup; - forgetting to provision Firestore or Storage in a new demo project;
- leaving
VITE_API_BASEpointed at the wrong environment; - deploying without confirming the active Firebase project;
- documenting deployment in the wiki but not updating
/docs.
Any deployment-process change should usually update all of the following:
Owner: CrowdPM Team
Last updated: 2026-03-08
Status: Production
Single sources of truth (links only)
- Production Website: crowdpmplatform.web.app
- Requirements doc: Requirements Doc
- Design doc: Design Doc
- Project board: Project board
- CI dashboard: CI Dashboard
- Release artifacts: Release Artifacts
- Repo: GitHub