From 09e9047b26f1c8f6b6f0cd3a172136303eb876ff Mon Sep 17 00:00:00 2001 From: Arjun Hemrajani Date: Thu, 27 Aug 2026 11:26:24 +0000 Subject: [PATCH] add_mattermost (#1) Reviewed-on: https://git.excloud.dev/excloud-dev/apps/pulls/1 Co-authored-by: Arjun Hemrajani Co-committed-by: Arjun Hemrajani --- mattermost/domain.sh | 30 +++++++++++++++ mattermost/install.sh | 89 +++++++++++++++++++++++++++++++++++++++++++ test | 0 3 files changed, 119 insertions(+) create mode 100644 mattermost/domain.sh create mode 100644 mattermost/install.sh create mode 100644 test diff --git a/mattermost/domain.sh b/mattermost/domain.sh new file mode 100644 index 0000000..628b1ff --- /dev/null +++ b/mattermost/domain.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +APP_NAME="mattermost" +APP_DIR="/var/excloud/apps" +APP_UPSTREAM_PORT="${EXC_APP_UPSTREAM_PORT:-8065}" + +DOMAIN="${1}" + +if [ -z "${DOMAIN}" ]; then + echo "Error: URL argument is required. Example:" >&2 + echo "domain.sh sub.example.com" >&2 + exit 1 +fi + +MATTERMOST_DIR="${APP_DIR}/${APP_NAME}" +COMPOSE_FILE="${MATTERMOST_DIR}/docker-compose.yml" +ENV_FILE="${MATTERMOST_DIR}/.env" + +source /var/excloud/scripts/caddy-setup.sh + +sed -i "s|MM_SERVICESETTINGS_SITEURL: .*|MM_SERVICESETTINGS_SITEURL: https://${DOMAIN}|" "${COMPOSE_FILE}" + +if is_app_ready "$MATTERMOST_DIR"; then + docker compose --env-file "${ENV_FILE}" -f "${COMPOSE_FILE}" up -d --remove-orphans + switch_domain "$DOMAIN" "$APP_UPSTREAM_PORT" "$MATTERMOST_DIR" +else + setup_initializing_page "$DOMAIN" "$APP_NAME" "$MATTERMOST_DIR" + docker compose --env-file "${ENV_FILE}" -f "${COMPOSE_FILE}" up -d --remove-orphans + wait_and_switch_to_proxy "$DOMAIN" "$APP_UPSTREAM_PORT" "$MATTERMOST_DIR" & +fi diff --git a/mattermost/install.sh b/mattermost/install.sh new file mode 100644 index 0000000..84e2064 --- /dev/null +++ b/mattermost/install.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +APP_NAME="mattermost" +APP_DIR="/var/excloud/apps" +SCRIPT_DIR="/var/excloud/scripts" +APP_UPSTREAM_PORT="${EXC_APP_UPSTREAM_PORT:-8065}" +CALLS_PORT="${EXC_APP_CALLS_PORT:-8443}" + +mkdir -p "${APP_DIR}" +mkdir -p "${SCRIPT_DIR}" + +DOMAIN="${1}" + +if [ -z "${DOMAIN}" ]; then + echo "Error: URL argument is required. Example:" >&2 + echo "install.sh sub.example.com" >&2 + exit 1 +fi + +MATTERMOST_DIR="${APP_DIR}/${APP_NAME}" +COMPOSE_FILE="${MATTERMOST_DIR}/docker-compose.yml" +ENV_FILE="${MATTERMOST_DIR}/.env" + +mkdir -p "${MATTERMOST_DIR}" +source /var/excloud/scripts/caddy-setup.sh +setup_initializing_page "$DOMAIN" "$APP_NAME" "$MATTERMOST_DIR" + +if [ ! -f "${ENV_FILE}" ]; then + POSTGRES_PASSWORD="$(od -An -N32 -tx1 /dev/urandom | tr -d ' \n')" + (umask 077 && printf 'POSTGRES_PASSWORD=%s\n' "${POSTGRES_PASSWORD}" > "${ENV_FILE}") +fi + +cat > "${COMPOSE_FILE}" <