|
| 1 | +# DevSH Rocket.Chat Fork |
| 2 | + |
| 3 | +This fork carries the DevSH operational branch for the self-hosted Rocket.Chat deployment. |
| 4 | + |
| 5 | +## Branch Model |
| 6 | + |
| 7 | +- `devsh` is the production build branch used by DevSH infrastructure. |
| 8 | +- `devsh` starts from an upstream Rocket.Chat release tag. |
| 9 | +- Upstream updates should be pulled into `devsh` intentionally, then validated through the image workflow before TerraInfra rolls forward. |
| 10 | +- Runtime production changes belong in TerraInfra. This fork should stay close to upstream Rocket.Chat source. |
| 11 | + |
| 12 | +## FOSS Image Build |
| 13 | + |
| 14 | +The `DevSH FOSS image` workflow builds a fully self-hosted FOSS Rocket.Chat image: |
| 15 | + |
| 16 | +1. Check out the `devsh` branch. |
| 17 | +2. Install Node, Yarn, Deno, and Meteor. |
| 18 | +3. Build shared packages. |
| 19 | +4. Run `yarn fossify`, which removes Enterprise and commercial source directories. |
| 20 | +5. Build the Meteor production bundle. |
| 21 | +6. Build and verify the Docker image. |
| 22 | +7. Publish immutable tags to `ghcr.io/devsh-graphics-programming/rocketchat-foss`. |
| 23 | + |
| 24 | +The workflow verifies that the runtime bundle does not contain `AirGappedRestriction`, which is the Enterprise air-gapped restriction path that can make isolated official images read-only. |
| 25 | + |
| 26 | +## Image Tags |
| 27 | + |
| 28 | +Pushes to `devsh` publish: |
| 29 | + |
| 30 | +- `devsh-YYYYMMDDHHMMSS-<sha>` as the immutable rollout tag. |
| 31 | +- `devsh` as a moving convenience tag. |
| 32 | + |
| 33 | +Terraform/Flux uses only immutable `devsh-YYYYMMDDHHMMSS-<sha>` tags for production rollouts. |
| 34 | + |
| 35 | +## TerraInfra Integration |
| 36 | + |
| 37 | +TerraInfra watches the GHCR package with Flux image automation: |
| 38 | + |
| 39 | +- `ImageRepository`: `ghcr.io/devsh-graphics-programming/rocketchat-foss` |
| 40 | +- `ImagePolicy`: newest immutable `devsh-YYYYMMDDHHMMSS-<sha>` tag |
| 41 | +- `ImageUpdateAutomation`: commits the selected tag to `env/prod` |
| 42 | + |
| 43 | +After Flux commits the tag update, the Rocket.Chat HelmRelease rolls the deployment on `prod-rocket-01`. |
| 44 | + |
| 45 | +## Operational Rule |
| 46 | + |
| 47 | +Do not use Rocket.Chat official Enterprise-flavored container images for the isolated DevSH deployment. The DevSH production service uses this FOSS image route so the workspace stays self-hosted without a cloud/license dependency for basic chat functionality. |
| 48 | + |
0 commit comments