Deployment
Deployment and Operations
Section titled “Deployment and Operations”Hosting models
Section titled “Hosting models”| Model | Description |
|---|---|
| Managed SaaS | Operator-hosted Garrison Bible Study |
| Self-host | Docker 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).
v1 infrastructure
Section titled “v1 infrastructure”| Layer | Choice |
|---|---|
| App packaging | docker/compose.prod.yml for Compose; helm/garrison/ for Kubernetes / Argo CD |
| Database | PostgreSQL |
| Queue / cache | Redis |
| Search | PostgreSQL full-text search (tenant isolation via app queries) |
| Object storage | Deferred until attachments |
| TBD with provider |
Background jobs: Redis queues; desire for admin UI beyond Laravel Horizon for queue statistics (custom or extended).
Operator runbooks: Operator documentation.
Data tenancy
Section titled “Data tenancy”- Single database, row-level
church_idscoping for tenant data. - No per-church schema or database in v1.
Real-time
Section titled “Real-time”- WebSockets / GraphQL subscriptions for in-app notifications and future chat — target as much real-time as practical in v1 (Architecture).
Static sites
Section titled “Static sites”| Site | Path | Host |
|---|---|---|
| Marketing | www/ | Optional self-host container (docker/www/, Compose profile www, Helm www.enabled); production site in www/astro.config.mjs |
| Documentation | docs/ | docs.garrisonbible.com in production (docs/astro.config.mjs site) |
| Web app | ui/ | Self-host container (see docker/ui/); baked URLs from VITE_* at build time |
Documentation site (docs/)
Section titled “Documentation site (docs/)”- CI:
.gitlab-ci.ymlbuildsdocs/and publishes thepublic/artifact (or deploy to your docs host). site: set indocs/astro.config.mjsfor your docs host (production useshttps://docs.garrisonbible.com). Example env files use*.garrison.test.- Secrets: docs build should not need API keys.
Self-host application stack
Section titled “Self-host application stack”- 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; optionalwwwprofile. - Kubernetes:
helm/garrison/— use with Helm or Argo CD (Argo CD).
- v1 built solo; possible small team or OSS contributors later.