by Onsite Systems

Deployment

Captisio ships three artifacts per tenant: a branded admin web build, a branded end-user web build, and the Android + iOS apps. Most pieces are wired up automatically — this page lists what each one does and how to trigger a new release.

Schemas + rules — nothing to deploy

Field definitions, wizards, and calibrations are live in Firestore. As soon as you mark a new wizard or calibration Active in Captis Admin, the next form-fill session uses it. There’s no build step or deploy — changes are visible within seconds.

Admin web build

The Captis Admin console lives at admin.onsite-systems.com. Builds are produced from the master branch via the deploy-admin GitHub Actions workflow.

  • Push to master → the workflow runs Flutter web build → deploys to Firebase Hosting target admin on the captis-admin project.
  • To deploy manually:
    firebase deploy --only hosting:admin --project captis-admin

End-user web build (captis_app)

Per-tenant end-user web builds are produced by the build-captis-app-web workflow and staged via stage-release-web. Each tenant gets its own Hosting site (one site per tenant id) with the tenant’s branding baked into the build.

Android app build

The build-android workflow runs Flutter against apps/captis_app. Pass app_name as a workflow input to brand the launcher.

  • APKs (testing) and AABs (Play Store) are uploaded as workflow artifacts.
  • For the Play Store, AABs go through the upload flow on the Play Console. Make sure the Data Safety form matches what the app actually collects (Captisio defaults to PII + photos).

iOS app build

iOS builds are produced locally on a Mac (or via a future remote runner). The captis_app iOS target is configured for App Store distribution; tenant branding (icon, launcher name) ships per tenant.

Firestore rules + indexes

Rules and index definitions are deployed automatically from master via the deploy-firebase-rules workflow whenever firestore.rules, storage.rules, or firestore.indexes.json change. No manual deploy needed.

To redeploy manually:

firebase deploy --only firestore:rules,storage --project captis-admin

Marketing site

This site (onsite-systems.com) is deployed by the deploy-marketing workflow whenever files in marketing/ change.

Manual deploy:

firebase deploy --only hosting:marketing --project captis-admin

Custom domains

  • admin.onsite-systems.com → admin Hosting site.
  • {tenantId}.onsite-systems.com or BYO domain → per-tenant end-user Hosting site.
  • onsite-systems.com + www → marketing Hosting site.
Need help wiring a new tenant’s deployment? Reach out via Contact support.