# ReadyStack modifications to Mattermost v11.11.1 Mattermost's server is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0); the web client (webapp/) and server/templates/, server/i18n/ and server/public/ are Apache-2.0 (upstream LICENSE.txt). The image `readystack/mattermost:v11.11.1-CE-ubuntu24.04-r1` is built from the upstream source at tag v11.11.1 (https://github.com/mattermost/mattermost/tree/v11.11.1) with these changes: 1. Removed, and not reproduced here: `server/enterprise/` (59 files: LICENSE, README.md, external_imports.go, local_imports.go, placeholder.go and the elasticsearch/, message_export/ and metrics/ packages) and `LICENSE.enterprise`, the symlink at the repository root to that tree's licence. That code is under the Mattermost Source Available License, not the AGPL. The image does not contain it and ReadyStack does not redistribute it, so the patch does not show its content; it is in the upstream tag. 2. `mattermost-v11.11.1-readystack.patch`, which applies to the tree after step 1: - `server/enterprise/placeholder.go` (new, written by ReadyStack): an empty `package enterprise`. `server/cmd/mattermost/main.go` imports that package unconditionally, so it has to exist; upstream's own placeholder.go is part of the removed tree. - `server/cmd/mmctl/commands/compliance_export.go` (deleted): mmctl's `compliance export` commands. It imports the removed tree (enterprise/message_export/shared) and is the only non-test file outside server/enterprise/ in the Team Edition build that imports a package of it, so mmctl in this image has no `compliance export` command. - `server/cmd/mmctl/commands/compliance_export_e2e_test.go` and `server/channels/app/metrics_test.go` (deleted): tests that import the removed tree. Tests are not compiled into the image. - `server/go.mod`: `replace github.com/mattermost/mattermost/server/public => ./public`, so the server builds against the server/public module of this same tree, not the published module (v0.4.4) its go.mod requires (upstream reconciles the two with a generated go.work). Complete corresponding source = the upstream tree at v11.11.1 with step 1 and the patch applied: git clone --branch v11.11.1 https://github.com/mattermost/mattermost && cd mattermost rm -rf server/enterprise LICENSE.enterprise git apply mattermost-v11.11.1-readystack.patch (`patch -p1 < mattermost-v11.11.1-readystack.patch` works too.) Dependencies, not source changes: the build then sets minimum versions for four Go modules (golang.org/x/crypto v0.56.0, google.golang.org/grpc v1.85.0-dev.0.20260825072537-93e31b48545e, golang.org/x/net v0.60.0, github.com/klauspost/compress v1.18.7) and runs `go mod tidy -e && go mod vendor` in server/. On this tree that changes three requirements in server/go.mod (golang.org/x/net v0.58.0 to v0.60.0; google.golang.org/grpc v1.84.0 to v1.85.0-dev.0.20260825072537-93e31b48545e; github.com/opensearch-project/opensearch-go/v4 dropped, because only the removed tree used it) and the matching lines of server/go.sum. Those modules are upstream-published and unmodified. The web client is built with upstream's own `npm ci` and `npm run build`; no file under webapp/ is changed. The ReadyStack release archive contains the vendored source tree and the build recipe that applies all of the above. Checked against the release: the vendored source tree in ReadyStack-mattermost-v11.11.1-CE-ubuntu24.04-r1.tar.gz differs from the upstream tag in exactly these files, the server/go.mod and server/go.sum lines above, and build output (server/vendor/ and the web client build).