Skip to content

Deployment

ModelDescription
Managed SaaSOperator-hosted Garrison Bible Study
Self-hostDocker Compose package for churches/orgs (AGPL); third-party self-host must omit SaaS-only features

Both models are planned long-term (see the README for license details).

LayerChoice
App packagingdocker/compose.prod.yml for Compose; helm/garrison/ for Kubernetes / Argo CD
DatabasePostgreSQL
Queue / cacheRedis
SearchPostgreSQL full-text search (tenant isolation via app queries)
Object storageDeferred until attachments
EmailTBD with provider

Background jobs: Redis queues; desire for admin UI beyond Laravel Horizon for queue statistics (custom or extended).

Operator runbooks: Operator documentation.

  • Single database, row-level church_id scoping for tenant data.
  • No per-church schema or database in v1.
  • WebSockets / GraphQL subscriptions for in-app notifications and future chat — target as much real-time as practical in v1 (Architecture).
SitePathHost
Marketingwww/Optional self-host container (docker/www/, Compose profile www, Helm www.enabled); production site in www/astro.config.mjs
Documentationdocs/docs.garrisonbible.com in production (docs/astro.config.mjs site)
Web appui/Self-host container (see docker/ui/); baked URLs from VITE_* at build time
  • CI: .gitlab-ci.yml builds docs/ and publishes the public/ artifact (or deploy to your docs host).
  • site: set in docs/astro.config.mjs for your docs host (production uses https://docs.garrisonbible.com). Example env files use *.garrison.test.
  • Secrets: docs build should not need API keys.
  • Images: docker/api/, docker/ui/, docker/www/ — built in CI and pushed to the GitLab Container Registry.
  • Compose: docker/compose.prod.yml — Postgres, Redis, API, queue, UI; optional www profile.
  • Kubernetes: helm/garrison/ — use with Helm or Argo CD (Argo CD).
  • v1 built solo; possible small team or OSS contributors later.