Skip to content

Environments

PSI is deployed across multiple environments for different partners and purposes.

Deployment Map

Alias Firebase Project Domain Partner Purpose
default demo-psi-local localhost Development Local emulator
staging np-psi-staging np-psi-staging.firebaseapp.com New Public Staging / QA
production np-psi-dev psi.newpublic.org New Public Production
research np-psi-research np-psi-research.firebaseapp.com New Public Research
zdf psi-product-zdfd-deploy-86085 (internal) ZDF ZDF deployment
rc-dev apppsi-40af9 dev-conversations.radio-canada.ca Radio-Canada RC dev
rc-prod rc-prod-psi-product conversations.radio-canada.ca Radio-Canada RC production
srg-staging dialogue-83198 dialogue-83198.web.app SRG SSR SRG staging

Environment Architecture

graph TD
    subgraph "Development"
        LOCAL[Local Emulator<br/>demo-psi-local]
    end

    subgraph "Shared Environments"
        STAGING[Staging<br/>np-psi-staging]
        RESEARCH[Research<br/>np-psi-research]
    end

    subgraph "Partner Production"
        NP_PROD[New Public Production<br/>psi.newpublic.org]
        ZDF_PROD[ZDF Production]
        RC_PROD[Radio-Canada Production<br/>conversations.radio-canada.ca]
        SRG_PROD[SRG Staging<br/>dialogue-83198.web.app]
    end

    LOCAL -->|"PR preview"| STAGING
    STAGING -->|"Release"| NP_PROD
    STAGING -->|"Partner deploy"| ZDF_PROD
    STAGING -->|"Partner deploy"| RC_PROD
    STAGING -->|"Partner deploy"| SRG_PROD

Local Development

Local development uses Firebase emulators:

Service Port
Firebase Auth Emulator 9099
Realtime Database Emulator 9001
Cloud Functions Emulator 5001
Hosting Emulator 5010
Emulator UI 4000

Start everything with:

pnpm dev   # Uses mprocs to run: client, server-emulate, server-watch, etc.

Switching Environments

# List available projects
firebase projects:list

# Switch to an environment
firebase use staging
firebase use production
firebase use zdf

# Deploy to a specific environment
firebase deploy --project np-psi-staging

# Always clear after deploying to avoid accidental changes
firebase use --clear

PR Preview Deployments

Pull requests with client changes automatically get preview deployments via GitHub Actions:

  • Preview URL: https://np-psi-staging--pr-{number}-{hash}.web.app
  • Preview channels are cleaned up automatically after PR merge
  • Only client changes are deployed; server changes require a full staging deploy

Further Reading