Compare commits

..

12 Commits

Author SHA1 Message Date
fe5f0f3f7f add versions to backup scripts 2025-05-22 13:13:21 -04:00
916ab286a5 typo fix 2025-05-22 12:37:40 -04:00
ca34a493ba clean up draft configs 2025-05-22 12:34:13 -04:00
2d10d73582 mmctl patch draft 2025-05-22 12:25:49 -04:00
b8ea370933 add backup handler scripts 2025-05-22 00:48:23 -04:00
726e3ab5c3 new backup scripts 2025-04-17 15:17:07 -04:00
54d8ac8954 fix typo 2025-04-17 15:17:07 -04:00
8629fd77e9 initial 2025-04-17 15:17:07 -04:00
5f0295b98a chore: publish 2.1.0+10.5.0 release 2025-04-16 12:45:26 -04:00
6268af51ff Merge pull request 'Add support for enterprise license' (#4) from license-support into main
Reviewed-on: #4
2025-04-16 15:49:43 +00:00
e3268bc404 Add support for enterprise license 2025-04-11 11:14:24 -04:00
27faf7a644 add release notes
Some checks failed
continuous-integration/drone/push Build is failing
2025-02-11 15:16:22 -05:00
9 changed files with 56 additions and 22 deletions

View File

@ -33,4 +33,7 @@ ORG_NAME="My Organization"
#SSO_DOMAIN=accounts.example.com #SSO_DOMAIN=accounts.example.com
#SSO_APP=mattermost #SSO_APP=mattermost
#SSO_ID= #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,13 @@ This is how to configure your Mattermost server to accept logins from your Authe
- Go to https://YOURAPPNAME/admin_console/authentication/email - Go to https://YOURAPPNAME/admin_console/authentication/email
- Set **Enable sign-in with email** and **Enable sign-in with username** to `false` - 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`
[`abra`]: https://git.coopcloud.tech/coop-cloud/abra [`abra`]: https://git.coopcloud.tech/coop-cloud/abra
[`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik [`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik

View File

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

View File

@ -8,9 +8,14 @@ fi
if [ "$1" == "pre-restore" ]; then if [ "$1" == "pre-restore" ]; then
# kill the running plugins that need to be overwritten # kill the running plugins that need to be overwritten
pkill plugins pkill -f '.*plugins'
sleep 40
pkill -f '.*plugins'
sleep 40
pkill -f '.*plugins'
fi fi
if [ "$1" == "post-restore" ]; then if [ "$1" == "post-restore" ]; then
mmctl config reload --local # kill mattermost so that the container restarts
pkill -f mattermost
fi fi

View File

@ -1,8 +1,12 @@
if [ "$1" == "pre-backup" ]; then if [ "$1" == "pre-backup" ]; then
# Remove any existing db dump and then create a new one
rm -rf /var/lib/postgresql/data/postgres-backup
PGPASSWORD=$(cat ${POSTGRES_PASSWORD_FILE}) pg_dump -U ${POSTGRES_USER} ${POSTGRES_DB} --format=directory -f /var/lib/postgresql/data/postgres-backup
exit exit
fi fi
if [ "$1" == "post-backup" ]; then if [ "$1" == "post-backup" ]; then
rm -rf /var/lib/postgresql/data/postgres-backup
exit exit
fi fi

5
compose.license.yml Normal file
View File

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

View File

@ -28,16 +28,22 @@ services:
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=1.5.3+9.11.8" - "coop-cloud.${STACK_NAME}.version=2.1.0+10.5.0"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "backupbot.backup=true" - "backupbot.backup=true"
- "backupbot.backup.path=/mattermost,/etc/ssl" - "backupbot.backup.path=/mattermost,/etc/ssl"
- "backupbot.restore.pre-hook=/restore.sh pre" - "backupbot.restore.pre-hook=/backup.sh pre-restore"
- "backupbot.restore.post-hook=/restore.sh post" - "backupbot.restore.post-hook=/backup.sh post-restore"
configs: configs:
- source: abra_mattermost_entrypoint - source: abra_mattermost_entrypoint
target: /abra-mattermost-entrypoint.sh target: /abra-mattermost-entrypoint.sh
mode: 0555 mode: 0555
- source: backup-mattermost
target: /backup.sh
mode: 0777
- source: mattermost-config
target: /config-to-copy.json
mode: 0555
secrets: secrets:
- postgres_password - postgres_password
entrypoint: /abra-mattermost-entrypoint.sh entrypoint: /abra-mattermost-entrypoint.sh
@ -51,6 +57,10 @@ services:
- POSTGRES_USER=mattermost - POSTGRES_USER=mattermost
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- POSTGRES_DB=mattermost - POSTGRES_DB=mattermost
configs:
- source: backup-postgres
target: /backup.sh
mode: 0777
secrets: secrets:
- postgres_password - postgres_password
networks: networks:
@ -58,10 +68,10 @@ services:
deploy: deploy:
labels: labels:
backupbot.backup: "true" backupbot.backup: "true"
backupbot.backup.pre-hook: "PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} --format=directory -f /var/lib/postgresql/data/postgres-backup"
backupbot.backup.post-hook: "rm -rf /var/lib/postgresql/data/postgres-backup"
backupbot.backup.path: "/var/lib/postgresql/data/" backupbot.backup.path: "/var/lib/postgresql/data/"
backupbot.restore.post-hook: "/backup-postgres.sh post" backupbot.backup.pre-hook: "/backup.sh pre-backup"
backupbot.backup.post-hook: "/backup.sh post-backup"
backupbot.restore.post-hook: "/backup.sh post-restore"
secrets: secrets:
postgres_password: postgres_password:
@ -72,7 +82,16 @@ configs:
abra_mattermost_entrypoint: abra_mattermost_entrypoint:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION} name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
file: ./entrypoint.sh file: ./entrypoint.sh
backup-mattermost:
name: ${STACK_NAME}_backup-mattermost_${BACKUP_MATTERMOST_VERSION}
file: ./backup-mattermost.sh
backup-postgres:
name: ${STACK_NAME}_backup-postgres_${BACKUP_POSTGRES_VERSION}
file: ./backup-postgres.sh
mattermost-config:
name: ${STACK_NAME}_mattermost_config_${MATTERMOST_CONFIG_VERSION}
file: ./config.json.tmpl
template_driver: golang
networks: networks:
proxy: proxy:

View File

@ -1,12 +0,0 @@
{
"Enable": true,
"Secret": "${MATTERMOST_SSO_SECRET}",
"Id": "${SSO_ID}",
"Scope": "",
"AuthEndpoint": "https://${SSO_DOMAIN}/application/o/authorize/",
"TokenEndpoint": "https://${SSO_DOMAIN}/application/o/token/",
"UserAPIEndpoint": "https://${SSO_DOMAIN}/application/o/userinfo/",
"DiscoveryEndpoint": "https://${SSO_DOMAIN}/application/o/${SSO_APP}/.well-known/openid-configuration",
"ButtonText": "${ORG_NAME}",
"ButtonColor": "#ff0000"
}

1
release/2.0.0+10.5.0 Normal file
View File

@ -0,0 +1 @@
Note that the first time you enable the email or sso configurations it will reset your existing Mattermost configuration.