Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.
Version: Next

Deploy with the Frontend Deployment Pack

Use this workflow only when support has explicitly provided the frontend deployment pack as an exception release artifact for the site.

This is not the default school deployment path. The normal production path is Deploy with the Backend School Bundle.

What the deployment pack deploys

The deployment pack runs a packaged school stack with:

  • frontend
  • backend
  • PostgreSQL
  • Redis
  • MinIO

It does this through the packaged school deployment scripts and pinned image tags in RELEASE-PACK.json.

When this page applies

This page applies only if support has intentionally moved the site off the standard backend-bundle flow for packaging or field-support reasons.

Support should preferably provide the extracted pack directory and, when needed, the archive plus checksum for transfer verification.

The working directory looks like this:

frontend-deployment-pack-support-only-<releaseVersion>/
docs/
scripts/
README.md
RELEASE-PACK.json
RELEASE-HANDOFF.json
RELEASE-HANDOFF.md

Step 1: Run preflight against the archive

If support provided the archive and checksum manifest, run the packaged preflight before extraction.

Windows PowerShell:

powershell -ExecutionPolicy Bypass -File .\scripts\preflight-frontend-support-pack.ps1 `
-Archive .\frontend-deployment-pack-support-only-<releaseVersion>.tar.gz `
-ChecksumFile .\frontend-deployment-pack-support-only-<releaseVersion>.tar.gz.sha256.json

If the release is signed:

  • place trusted-release-signing-public.pem beside the archive
  • on Windows PowerShell, ensure openssl is available on PATH

Step 2: Verify and extract the archive

powershell -ExecutionPolicy Bypass -File .\scripts\extract-frontend-support-pack.ps1 `
-Archive .\frontend-deployment-pack-support-only-<releaseVersion>.tar.gz `
-ChecksumFile .\frontend-deployment-pack-support-only-<releaseVersion>.tar.gz.sha256.json `
-OutputDir .

This extraction step writes the deployment-pack verification record into the extracted directory.

Step 3: Enter the extracted pack

cd .\frontend-deployment-pack-support-only-<releaseVersion>

Step 4: Run packaged preflight and write the extracted-pack stamp

powershell -ExecutionPolicy Bypass -File .\scripts\preflight-frontend-support-pack.ps1 -PackRoot . -WriteStamp

This writes the packaged preflight record used by the install and refresh gates.

Step 5: Prepare school configuration

Create .env.school from the template if needed and review the school-specific values.

copy .env.school.example .env.school

The release wrappers will populate generated secrets and keep the pinned image tags from RELEASE-PACK.json.

Step 6: Install

powershell -ExecutionPolicy Bypass -File .\scripts\install-frontend-support-release.ps1 -EnvPath .env.school

The install wrapper will stop if either of these records is missing:

  • the extraction verification record
  • the extracted-pack preflight record

Step 7: Verify deployment

Confirm these before handing over to school staff:

  • .deployment-pack-verification.json exists
  • .deployment-pack-preflight.json exists
  • the frontend loads locally and on the LAN URL
  • the backend health endpoint responds
  • the containers are running as expected

Step 8: Update later releases

Use the packaged refresh command from the extracted pack:

powershell -ExecutionPolicy Bypass -File .\scripts\refresh-frontend-support-release.ps1 -EnvPath .env.school

Do not bypass the packaged preflight and extraction records unless support is explicitly debugging a broken operator environment.