Compare commits

..

13 Commits

7 changed files with 45 additions and 9 deletions

View File

@ -33,4 +33,7 @@ ORG_NAME="My Organization"
#SSO_DOMAIN=accounts.example.com
#SSO_APP=mattermost
#SSO_ID=
#SECRET_MATTERMOST_SSO_SECRET_VERSION=v1
#SECRET_MATTERMOST_SSO_SECRET_VERSION=v1
## Enable enterprise version (requires a valid license)
#COMPOSE_FILE="$COMPOSE_FILE:compose.license.yml"

View File

@ -79,6 +79,16 @@ This is how to configure your Mattermost server to accept logins from your Authe
- Go to https://YOURAPPNAME/admin_console/authentication/email
- Set **Enable sign-in with email** and **Enable sign-in with username** to `false`
## Use a Mattermost Enterprise License
**NOTE: This deploys non-FOSS code and requires you to pay Mattermost for a license to enable features. Not recommended unless you know what you're doing.**
- `abra app config YOURAPPNAME`
- Uncomment the section which starts with `## Enable enterprise version`
- `abra app undeploy YOURAPPNAME`
- `abra app deploy YOURAPPNAME`
# Technical Notes
This recipe inserts a statically-compiled busybox binary from `busybox:1.25-uclibc` into the distroless container, to allow running the custom entrypoint shell script which configures Mattermost.
[`abra`]: https://git.coopcloud.tech/coop-cloud/abra
[`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik

View File

@ -1,5 +1,6 @@
export ENTRYPOINT_VERSION=v1
export ENTRYPOINT_VERSION=v3
export MATTERMOST_CONFIG_VERSION=v1
export SHELL_VERSION=v1
reset_config() {
cp /config-to-copy.json /mattermost/config/config.json && touch /mattermost/config/CoopCloudManaged

BIN
bin/busybox Executable file

Binary file not shown.

5
compose.license.yml Normal file
View File

@ -0,0 +1,5 @@
version: "3.8"
services:
app:
image: mattermost/mattermost-enterprise-edition:10.11

View File

@ -2,7 +2,7 @@ version: "3.8"
services:
app:
image: mattermost/mattermost-team-edition:10.5.0
image: mattermost/mattermost-team-edition:10.11
environment:
- TZ
- MM_SQLSETTINGS_DRIVERNAME=postgres
@ -26,13 +26,16 @@ services:
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectscheme.permanent=true"
- "coop-cloud.${STACK_NAME}.version=1.5.3+9.11.8"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=2.2.0+10.11"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "backupbot.backup=true"
- "backupbot.backup.path=/mattermost,/etc/ssl"
configs:
- source: busybox
target: /bin/busybox
mode: 0555
- source: abra_mattermost_entrypoint
target: /abra-mattermost-entrypoint.sh
mode: 0555
@ -69,6 +72,9 @@ configs:
abra_mattermost_entrypoint:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
file: ./entrypoint.sh
busybox:
name: ${STACK_NAME}_busybox_${SHELL_VERSION}
file: ./bin/busybox
networks:

View File

@ -1,4 +1,13 @@
#!/bin/sh
#!/bin/busybox sh
/bin/busybox mkdir /tmp/bin
export PATH=$PATH:/tmp/bin
/bin/busybox ln -s /bin/busybox /tmp/bin/ln
ln -s /bin/busybox /tmp/bin/cat
ln -s /bin/busybox /tmp/bin/echo
ln -s /bin/busybox /tmp/bin/cp
ln -s /bin/busybox /tmp/bin/touch
ln -s /bin/busybox /tmp/bin/rm
set -e
if test -f "/run/secrets/postgres_password"; then
pwd=`cat /run/secrets/postgres_password`
@ -21,5 +30,7 @@ if ! test -f "/mattermost/config/CoopCloudManaged"; then
cp /config-to-copy.json /mattermost/config/config.json && touch /mattermost/config/CoopCloudManaged
fi
# https://github.com/mattermost/mattermost-server/blob/master/build/Dockerfile
/entrypoint.sh "mattermost"
rm -rf /tmp/bin
# https://github.com/mattermost/mattermost/blob/master/server/build/Dockerfile
/mattermost/bin/mattermost