-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment
Ship the production build to Firebase Hosting (and Functions/rules), apply security headers, and run a post-deploy smoke test.
Detailed source: Step 11 — Build & Deploy.
Run the control menu and use the Deploy submenu:
bash .SYSTEMX/WSG-MENU.sh # → DeployIt drives .SYSTEMX/scripts/deploy.sh,
a generic pipeline: quality gates → build → version/changelog → commit → push →
Firebase deploy, with smart targets (only deploys what your firebase.json
defines).
| Script | Does |
|---|---|
bootstrap.sh |
Install + authenticate + verify SDKs/CLIs. Flags: --check, --install, --auth, --with-stripe, --with-mcp, --with-m365, --with-godaddy, --interactive-login, --yes
|
deploy.sh |
Full pipeline. Targets: all/full, app, hosting, rules, functions. Flags: --preflight, --audit, --dry-run, --check, --rollback-info, --fast, --bg, --fix, --bump <patch|minor|major>, --project <id>, --skip-tests, --skip-deploy, --open
|
deploy-hosting.sh |
Build + deploy Hosting only |
deploy-rules.sh |
Deploy Firestore + Storage rules only |
deploy-functions.sh |
Compile + deploy Cloud Functions (no-op until functions/ exists) |
quality-check.sh |
Run typecheck + lint + tests (missing scripts skipped) |
version-bump.sh |
Bump semver + sync .SYSTEMX/version/
|
firebase-setup.sh |
Firebase login + project selection (generic, no hard-coded IDs) |
# Examples
bash .SYSTEMX/scripts/deploy.sh --preflight # gates + build, no git/deploy
bash .SYSTEMX/scripts/deploy.sh hosting --dry-run
bash .SYSTEMX/scripts/deploy.sh rules
bash .SYSTEMX/scripts/deploy.sh app --fast
bash .SYSTEMX/scripts/deploy.sh --check
bash .SYSTEMX/scripts/deploy.sh --rollback-info
bash .SYSTEMX/scripts/deploy.sh --bump patch # bump then full deploy
bash .SYSTEMX/scripts/deploy.sh --project my-id # override Firebase project- Firebase CLI:
npx --yes firebase-tools loginor a globalfirebaseinstall - A Firebase project, and
.firebasercpointing at it (npx --yes firebase-tools use --add). - A green build locally (
npm run build).
npx --yes firebase-tools login
npx --yes firebase-tools use --add # select/create your projectEdit
.firebasercso thedefaultalias is your real project ID. The starter ships a valid lowercase placeholder:your-firebase-project-id.
npm run build
# Preferred template deploy path:
bash .SYSTEMX/scripts/deploy.sh hosting --dry-run
bash .SYSTEMX/scripts/deploy.sh hosting --project your-firebase-project-idWith the full playbook (Functions enabled), deploy everything:
bash .SYSTEMX/scripts/deploy.sh app --project your-firebase-project-id
bash .SYSTEMX/scripts/deploy.sh rules --project your-firebase-project-idIn the Firebase console: Hosting → Add custom domain → follow DNS steps. Verify the HTTPS certificate is provisioned before announcing.
URL="https://<your-project>.web.app" # or your custom domain
# Headers applied?
curl -sI "$URL" | grep -i strict-transport-security
curl -sI "$URL" | grep -i content-security-policy
# Then manually: load the site, sign in, do one core action,
# and (if billing) run a test-mode checkout.- HSTS + CSP present on the live response (curl checks above).
- Deployed security rules match the repo (no drift).
- App Check enforcement enabled for production backends.
- Stripe switched to live keys only after a passing test-mode smoke.
- No
.env*/ secret files bundled intodist/.
See Security for the full baseline.
Prefer deploying from CI (GitHub Actions) so every release is reproducible and
gated by lint/typecheck/test. The starter ships a CI workflow
(.github/workflows/ci.yml) that runs lint · typecheck · build; extend it
with a deploy job using a Firebase service-account secret. See
Step 09 — CI/CD.
firebase.json controls hosting:
-
public: "dist"— the Vite build output. -
rewrites: [{ "source": "**", "destination": "/index.html" }]— SPA routing. -
headers— the hardened security header set (see Security). -
assets/**gets long-lived immutable caching.
SFWA-WTL-G1 · Standard Firebase Web App, Wayne Tech Lab Generation 1 · Provided by Wayne Tech Lab LLC under MIT · Use at your own risk · Subject to daily change · Repository
- Home
- Quick Start
- WTL Standard Setup Guide
- One-Line Install
- Platform Matrix
- Linux Setup
- Windows Setup
- Architecture and Stack
- Project Structure
- SYSTEMX Root and Folder Standard
- Setup Playbook
- Environment Variables
- Security
- Deployment
- Testing and QA
- MCP and Agents
- GitHub Authors and Contribution Notes
- SYSTEMX WEBPORTAL
- White Paper
- Executive Summary
- CISO Note From the Founder
- Wayne Tech Lab Purpose
- Security Overview
- Long-Term Warnings
- .ENV Solutions
- Menu Operations
- Setup and Deployment
- Start and End of Day
- SYSTEMX Sync and Controlled Updates
- Agent 0 and Subagents
- Agent 0 Operating Model
- How Subagents Work
- Starter Prompts and Smart Routing
- Third-Party Responsibility
- User Ingest and Production Setup
- FAQ