2023-03-08 15:45:31 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
file_env() {
|
|
|
|
local var="$1"
|
|
|
|
local fileVar="${var}_FILE"
|
|
|
|
local def="${2:-}"
|
|
|
|
|
|
|
|
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
|
|
|
|
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local val="$def"
|
|
|
|
if [ "${!var:-}" ]; then
|
|
|
|
val="${!var}"
|
|
|
|
elif [ "${!fileVar:-}" ]; then
|
|
|
|
val="$(< "${!fileVar}")"
|
|
|
|
fi
|
|
|
|
|
|
|
|
export "$var"="$val"
|
|
|
|
unset "$fileVar"
|
|
|
|
}
|
|
|
|
|
|
|
|
file_env "WORDPRESS_DB_PASS"
|
|
|
|
file_env "CIVICRM_DB_PASS"
|
|
|
|
file_env "CIVICRM_SITE_KEY"
|
|
|
|
file_env "CIVICRM_CRED_KEYS"
|
2023-03-22 13:59:18 +00:00
|
|
|
file_env "SMTP_PASSWORD"
|
2023-03-08 15:45:31 +00:00
|
|
|
|
2023-03-29 13:51:54 +00:00
|
|
|
if [[ "${1-default}" == "cron" ]]; then
|
|
|
|
echo "Running cron job"
|
|
|
|
env
|
|
|
|
/usr/local/bin/php /usr/local/bin/cv api job.execute --user=admin --cwd=/var/www/html/
|
|
|
|
exit $?
|
|
|
|
fi
|
|
|
|
|
2023-03-23 10:40:58 +00:00
|
|
|
until mysql -e '\q' -h db -p"${WORDPRESS_DB_PASS}" && mysql -e '\q' -h "${CIVICRM_DB_HOST}" -p"${CIVICRM_DB_PASS}"; do
|
2023-03-08 15:45:31 +00:00
|
|
|
echo "Waiting for db container to come up"
|
|
|
|
sleep 1
|
|
|
|
done;
|
|
|
|
|
2023-03-29 13:51:54 +00:00
|
|
|
echo "Running Docker Entrypoint"
|
2023-03-08 15:45:31 +00:00
|
|
|
/usr/local/bin/civicrm-docker-entrypoint
|
|
|
|
|
2023-03-29 13:51:54 +00:00
|
|
|
# Check if Wordpress already installed
|
|
|
|
if su civicrm -c "wp core is-installed"; then
|
|
|
|
echo "Wordpress already installed"
|
|
|
|
else
|
|
|
|
echo "Installing Wordpress"
|
|
|
|
su civicrm -c "wp core install --locale=de_DE --url=$BASE_URL --title=$PROJECT_NAME --admin_user=admin --admin_email=$SMTP_USER"
|
|
|
|
su civicrm -c "wp language core install de_DE"
|
|
|
|
su civicrm -c "wp language core activate de_DE"
|
|
|
|
fi
|
2023-03-22 16:09:20 +00:00
|
|
|
|
2023-03-29 13:51:54 +00:00
|
|
|
# Setup Civicrm L10n
|
2023-03-22 16:09:20 +00:00
|
|
|
if ! [[ -d /var/www/html/wp-content/plugins/civicrm/civicrm/l10n ]]; then
|
2023-03-23 10:40:58 +00:00
|
|
|
echo "=== Moving Civicrm L10n"
|
2023-03-22 16:09:20 +00:00
|
|
|
pushd /var/www/html/wp-content/plugins/civicrm/
|
|
|
|
mkdir -p civicrm/l10n
|
|
|
|
cp -r l10n/de_DE civicrm/l10n
|
|
|
|
cp -r sql/civicrm_acl.de_DE.mysql civicrm/sql/civicrm_acl.de_DE.mysql
|
|
|
|
cp -r sql/civicrm_data.de_DE.mysql civicrm/sql/civicrm_data.de_DE.mysql
|
|
|
|
chown -R civicrm:civicrm civicrm/l10n civicrm/sql
|
|
|
|
popd
|
2023-03-23 10:40:58 +00:00
|
|
|
fi
|
|
|
|
|
2023-03-29 13:51:54 +00:00
|
|
|
# Install Civicrm
|
2023-03-23 10:40:58 +00:00
|
|
|
if ! [[ -f /var/www/html/wp-content/uploads/civicrm/is_installed ]]; then
|
|
|
|
pushd /var/www/html/wp-content/uploads/civicrm/
|
2023-03-29 13:51:54 +00:00
|
|
|
echo "Running Civicrm Docker Install"
|
2023-03-23 10:40:58 +00:00
|
|
|
touch is_installed
|
|
|
|
rm -rf civicrm.settings.php
|
|
|
|
su civicrm -c "wp plugin activate civicrm"
|
2023-03-22 16:09:20 +00:00
|
|
|
|
2023-03-23 10:40:58 +00:00
|
|
|
# TODO: extract module and extension stuff to .env
|
2023-03-29 13:51:54 +00:00
|
|
|
su civicrm -c "cv core:install -vv --keep --db=mysql://$CIVICRM_DB_USER:$CIVICRM_DB_PASS@$CIVICRM_DB_HOST:$CIVICRM_DB_PORT/$CIVICRM_DB_NAME --lang de_DE --comp $CIVICRM_COMPONENTS"
|
2023-03-22 16:09:20 +00:00
|
|
|
mv civicrm.settings.php civicrm.settings.php.generated
|
|
|
|
cp /usr/local/etc/civicrm/civicrm.settings.php civicrm.settings.php
|
|
|
|
chmod a-wx /var/www/html/wp-content/uploads/civicrm/civicrm.settings.php
|
2023-03-29 15:46:26 +00:00
|
|
|
chown -R civicrm:civicrm templates_c upload
|
2023-03-22 16:09:20 +00:00
|
|
|
popd
|
2023-03-29 13:51:54 +00:00
|
|
|
fi
|
|
|
|
# TODO: How do we upgrade a existing civicrm installation?
|
2023-03-23 10:40:58 +00:00
|
|
|
# * run dump backup
|
|
|
|
# * check version specifig upgrade steps: https://docs.civicrm.org/sysadmin/en/latest/upgrade/version-specific/
|
|
|
|
# * run upgrade
|
|
|
|
# * cv flush
|
2023-03-08 15:45:31 +00:00
|
|
|
|
2023-03-29 13:51:54 +00:00
|
|
|
echo "Setting up cron"
|
|
|
|
printenv > /etc/environment
|
|
|
|
apt update && apt install -y cron
|
|
|
|
crontab -l | { cat; echo "*/5 * * * * /usr/local/bin/entrypoint.sh cron > /tmp/cronlog 2>&1"; } | crontab -
|
|
|
|
cron
|
|
|
|
|
|
|
|
echo "Running Webserver"
|
2023-03-20 16:04:05 +00:00
|
|
|
exec apache2-foreground
|