Compare commits
12 Commits
backup-tro
...
backups
Author | SHA1 | Date | |
---|---|---|---|
fe5f0f3f7f | |||
916ab286a5 | |||
ca34a493ba | |||
2d10d73582 | |||
b8ea370933 | |||
726e3ab5c3 | |||
54d8ac8954 | |||
8629fd77e9 | |||
5f0295b98a | |||
6268af51ff | |||
e3268bc404 | |||
27faf7a644 |
@ -34,3 +34,6 @@ ORG_NAME="My Organization"
|
||||
#SSO_APP=mattermost
|
||||
#SSO_ID=
|
||||
#SECRET_MATTERMOST_SSO_SECRET_VERSION=v1
|
||||
|
||||
## Enable enterprise version (requires a valid license)
|
||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.license.yml"
|
@ -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
|
||||
- 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
|
||||
[`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik
|
||||
|
2
abra.sh
2
abra.sh
@ -1,5 +1,7 @@
|
||||
export ENTRYPOINT_VERSION=v1
|
||||
export MATTERMOST_CONFIG_VERSION=v1
|
||||
export BACKUP_MATTERMOST_VERSION=v1
|
||||
export BACKUP_POSTGRES_VERSION=v1
|
||||
|
||||
reset_config() {
|
||||
cp /config-to-copy.json /mattermost/config/config.json && touch /mattermost/config/CoopCloudManaged
|
||||
|
21
backup-mattermost.sh
Normal file
21
backup-mattermost.sh
Normal file
@ -0,0 +1,21 @@
|
||||
if [ "$1" == "pre-backup" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$1" == "pre-backup" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$1" == "pre-restore" ]; then
|
||||
# kill the running plugins that need to be overwritten
|
||||
pkill -f '.*plugins'
|
||||
sleep 40
|
||||
pkill -f '.*plugins'
|
||||
sleep 40
|
||||
pkill -f '.*plugins'
|
||||
fi
|
||||
|
||||
if [ "$1" == "post-restore" ]; then
|
||||
# kill mattermost so that the container restarts
|
||||
pkill -f mattermost
|
||||
fi
|
19
backup-postgres.sh
Normal file
19
backup-postgres.sh
Normal file
@ -0,0 +1,19 @@
|
||||
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
|
||||
fi
|
||||
|
||||
if [ "$1" == "post-backup" ]; then
|
||||
rm -rf /var/lib/postgresql/data/postgres-backup
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$1" == "pre-restore" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$1" == "post-restore" ]; then
|
||||
pg_restore -U $POSTGRES_USER -d $POSTGRES_DB -c /var/lib/postgresql/data/postgres-backup
|
||||
fi
|
5
compose.license.yml
Normal file
5
compose.license.yml
Normal file
@ -0,0 +1,5 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
image: mattermost/mattermost-enterprise-edition:10.5.0
|
30
compose.yml
30
compose.yml
@ -28,14 +28,22 @@ services:
|
||||
- "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.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}"
|
||||
- "backupbot.backup=true"
|
||||
- "backupbot.backup.path=/mattermost,/etc/ssl"
|
||||
- "backupbot.restore.pre-hook=/backup.sh pre-restore"
|
||||
- "backupbot.restore.post-hook=/backup.sh post-restore"
|
||||
configs:
|
||||
- source: abra_mattermost_entrypoint
|
||||
target: /abra-mattermost-entrypoint.sh
|
||||
mode: 0555
|
||||
- source: backup-mattermost
|
||||
target: /backup.sh
|
||||
mode: 0777
|
||||
- source: mattermost-config
|
||||
target: /config-to-copy.json
|
||||
mode: 0555
|
||||
secrets:
|
||||
- postgres_password
|
||||
entrypoint: /abra-mattermost-entrypoint.sh
|
||||
@ -49,6 +57,10 @@ services:
|
||||
- POSTGRES_USER=mattermost
|
||||
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
|
||||
- POSTGRES_DB=mattermost
|
||||
configs:
|
||||
- source: backup-postgres
|
||||
target: /backup.sh
|
||||
mode: 0777
|
||||
secrets:
|
||||
- postgres_password
|
||||
networks:
|
||||
@ -56,9 +68,10 @@ services:
|
||||
deploy:
|
||||
labels:
|
||||
backupbot.backup: "true"
|
||||
backupbot.backup.pre-hook: "PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /var/lib/postgresql/data/postgres-backup.sql"
|
||||
backupbot.backup.post-hook: "rm -rf /var/lib/postgresql/data/postgres-backup.sql"
|
||||
backupbot.backup.path: "/var/lib/postgresql/data/"
|
||||
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:
|
||||
postgres_password:
|
||||
@ -69,7 +82,16 @@ configs:
|
||||
abra_mattermost_entrypoint:
|
||||
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
|
||||
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:
|
||||
proxy:
|
||||
|
@ -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
1
release/2.0.0+10.5.0
Normal file
@ -0,0 +1 @@
|
||||
Note that the first time you enable the email or sso configurations it will reset your existing Mattermost configuration.
|
Reference in New Issue
Block a user