#!/bin/bash set -e # defaults export FLEXIFY_M_VERSION=${FLEXIFY_M_VERSION:-latest} export FLEXIFY_SINGLE_ENGINE=${FLEXIFY_SINGLE_ENGINE:-true} export FLEXIFY_SINGLE_USER=${FLEXIFY_SINGLE_USER:-true} export FLEXIFY_ANONYMOUS_SIGNUP_WITH_PASSWORD=${FLEXIFY_ANONYMOUS_SIGNUP_WITH_PASSWORD:-false} export FLEXIFY_ANONYMOUS_SIGNUP_WITH_MICROSOFT=${FLEXIFY_ANONYMOUS_SIGNUP_WITH_MICROSOFT:-false} while [ $# -gt 0 ]; do case "$1" in --version*|-v*) if [[ "$1" != *=* ]]; then shift; fi export FLEXIFY_M_VERSION="${1#*=}" ;; --multi-engine|--no-engine|-e) export FLEXIFY_SINGLE_ENGINE=false ;; --multi-user) export FLEXIFY_SINGLE_USER=false ;; --allow-anonymous-sign-up-with-password) export FLEXIFY_ANONYMOUS_SIGNUP_WITH_PASSWORD=true ;; --allow-anonymous-sign-up-with-microsoft) export FLEXIFY_ANONYMOUS_SIGNUP_WITH_MICROSOFT=true ;; --sso-microsoft-client-id) if [[ "$1" != *=* ]]; then shift; fi export SSO_MICROSOFT_CLIENT_ID="${1#*=}" ;; --sso-microsoft-tenant-id) if [[ "$1" != *=* ]]; then shift; fi export SSO_MICROSOFT_TENANT_ID="${1#*=}" ;; --help|-h) echo 'Flexify.IO Installation Script' echo 'Options:' echo " -v --version Version to install [$FLEXIFY_M_VERSION]" echo " --multi-engine Install in multi-engine mode (do not install engine) [$FLEXIFY_SINGLE_ENGINE]" echo " --multi-user Install in multi-user mode [$FLEXIFY_SINGLE_USER]" echo " --allow-anonymous-sign-up-with-password Allow anonymous sign up with password [$FLEXIFY_ANONYMOUS_SIGNUP_WITH_PASSWORD]" echo " --allow-anonymous-sign-up-with-microsoft Allow anonymous sign up with Microsoft SSO [$FLEXIFY_ANONYMOUS_SIGNUP_WITH_MICROSOFT]" echo " --sso-microsoft-client-id Set client Id for Microsoft SSO [$SSO_MICROSOFT_CLIENT_ID]" echo " --sso-microsoft-tenant-id Set tenant Id for Microsoft SSO in single-tenant mode [$SSO_MICROSOFT_TENANT_ID]" exit 0 ;; *) >&2 printf "Error: Invalid argument $1\n" exit 1 ;; esac shift done echo echo "== Installing Flexify.IO version $FLEXIFY_M_VERSION ==" echo # Temp directory rm -rf flexify-tmp mkdir flexify-tmp cd flexify-tmp # Install Docker if ! [ -x "$(command -v docker)" ]; then echo 'docker is not installed. Installing...' curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh # does not start autoamtically on CentOS systemctl enable docker systemctl start docker fi # Download and extract archive curl -Of "https://download.flexify.io/docker/$FLEXIFY_M_VERSION/flexify.tar.gz" tar xvzf flexify.tar.gz chmod +x *.sh # Configure everything ./configure.sh cd .. rm -rf flexify-tmp # Start containers cd /etc/flexify/ docker compose up -d