forked from coop-cloud/civicrm-wordpress
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			image_vers
			...
			authentik-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 224e78ea6c | 
							
								
								
									
										22
									
								
								.env.sample
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								.env.sample
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| TYPE=civicrm-wordpress | ||||
|  | ||||
| DOMAIN=civicrm.example.com | ||||
| DOMAIN=civicrm-wordpress.example.com | ||||
|  | ||||
| ## Domain aliases | ||||
| #EXTRA_DOMAINS=', `www.civicrm.example.com`' | ||||
| @ -16,6 +16,8 @@ CIVICRM_DB_USER=civicrm | ||||
| CIVICRM_DB_HOST=mysql | ||||
| CIVICRM_DB_PORT=3306 | ||||
|  | ||||
| WORDPRESS_LOCALE=en_US | ||||
| WORDPRESS_ADMIN_EMAIL= | ||||
| WORDPRESS_DB_NAME=wordpress | ||||
| WORDPRESS_DB_USER=wordpress | ||||
| WORDPRESS_DB_HOST=mysql | ||||
| @ -34,3 +36,21 @@ SECRET_DB_ROOT_PASSWORD_VERSION=v1 | ||||
| SECRET_CIVICRM_SITE_KEY_VERSION=v1 # length=16 | ||||
| SECRET_CIVICRM_CRED_KEY_VERSION=v1 # length=43 | ||||
| SECRET_CIVICRM_SIGN_KEY_VERSION=v1 # length=43 | ||||
| SECRET_WORDPRESS_ADMIN_PASSWORD_VERSION=v1 | ||||
|  | ||||
| ## -- OpenId Connect -- | ||||
|  | ||||
| #COMPOSE_FILE="compose.yml:compose.openidconnect.yml" | ||||
| #OPEN_ID_CLIENT_ID= | ||||
| #SECRET_OPEN_ID_CLIENT_SECRET_VERSION=v1 | ||||
|  | ||||
| # If you are using authentik, just set this | ||||
| #AUTHENTIK_DOMAIN=authentik.company | ||||
|  | ||||
| # Otherwise, you must set all of these | ||||
| #OPEN_ID_PROVIDER_LOGIN_URL=https://authentik.company/application/o/authorize/ | ||||
| #OPEN_ID_USERINFO_URL=https://authentik.company/application/o/userinfo/ | ||||
| #OPEN_ID_TOKEN_ENDPOINT_URL=https://authentik.company/application/o/token/ | ||||
| #OPEN_ID_END_SESSION_URL=https://authentik.company/application/o/wordpress/end-session/ | ||||
|  | ||||
| ## -- OpenId Connect -- | ||||
|  | ||||
							
								
								
									
										1
									
								
								abra.sh
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								abra.sh
									
									
									
									
									
								
							| @ -31,6 +31,7 @@ file_env "SMTP_PASSWORD" | ||||
| export APACHE_SITES_AVAILABLE_CONF_VERSION=v1 | ||||
| export CIVICRM_SETTINGS_PHP_VERSION=v1 | ||||
| export ENTRYPOINT_VERSION=v1 | ||||
| export OPENID_SETTINGS_VERSION=v1 | ||||
|  | ||||
| change_password(){ | ||||
|     echo "Changing password for $1" | ||||
|  | ||||
							
								
								
									
										14
									
								
								compose.openidconnect.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								compose.openidconnect.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| --- | ||||
| version: "3.8" | ||||
|  | ||||
| services: | ||||
|   app: | ||||
|     environment: | ||||
|       - OPEN_ID_CLIENT_SECRET_FILE=/run/secrets/openid_client_secret | ||||
|     secrets: | ||||
|       - openid_client_secret | ||||
|  | ||||
| secrets: | ||||
|   openid_client_secret: | ||||
|     external: true | ||||
|     name: ${STACK_NAME}_openid_client_secret_${SECRET_OPEN_ID_CLIENT_SECRET_VERSION} | ||||
							
								
								
									
										20
									
								
								compose.yml
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								compose.yml
									
									
									
									
									
								
							| @ -3,7 +3,7 @@ version: "3.8" | ||||
|  | ||||
| services: | ||||
|   app: | ||||
|     image: michaelmcandrew/civicrm:5.59.4-wordpress-php8.1 | ||||
|     image: michaelmcandrew/civicrm:5.82.0-wordpress-php8.1 | ||||
|     hostname: civicrm | ||||
|     environment: | ||||
|       - PROJECT_NAME | ||||
| @ -24,16 +24,18 @@ services: | ||||
|       - SMTP_PORT | ||||
|       - SMTP_USER | ||||
|       - SMTP_PASSWORD_FILE=/run/secrets/smtp_password | ||||
|       - WORDPRESS_ADMIN_PASSWORD_FILE=/run/secrets/wordpress_admin_password | ||||
|     secrets: | ||||
|       - db_password | ||||
|       - civicrm_site_key | ||||
|       - civicrm_cred_key | ||||
|       - civicrm_sign_key | ||||
|       - smtp_password | ||||
|       - wordpress_admin_password | ||||
|     volumes: | ||||
|       - data:/var/www/html/wp-content/uploads | ||||
|     networks: | ||||
|       - default | ||||
|       - internal | ||||
|       - proxy | ||||
|     configs: | ||||
|       - source: apache-sites-available-conf | ||||
| @ -43,6 +45,8 @@ services: | ||||
|         mode: 555 | ||||
|       - source: civicrm-settings-php | ||||
|         target: /usr/local/etc/civicrm/civicrm.settings.php | ||||
|       - source: openid-settings | ||||
|         target: /usr/local/etc/civicrm/openid_settings.json | ||||
|     entrypoint: /usr/local/bin/entrypoint.sh | ||||
|     deploy: | ||||
|       restart_policy: | ||||
| @ -57,7 +61,7 @@ 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=0.1.1+5.59.4-wordpress-php8.1" | ||||
|         - "coop-cloud.${STACK_NAME}.version=0.1.3+5.82.0-wordpress-php8.1" | ||||
|         - "backupbot.backup=true" | ||||
|         - "backupbot.backup.path=/var/www/html/wp-content/uploads" | ||||
|     healthcheck: | ||||
| @ -90,6 +94,8 @@ services: | ||||
|       timeout: 10s | ||||
|       retries: 10 | ||||
|       start_period: 1m | ||||
|     networks: | ||||
|       - internal | ||||
|     deploy: | ||||
|       restart_policy: | ||||
|         condition: on-failure | ||||
| @ -114,6 +120,7 @@ services: | ||||
| networks: | ||||
|   proxy: | ||||
|     external: true | ||||
|   internal: | ||||
|  | ||||
| volumes: | ||||
|   mariadb: | ||||
| @ -134,6 +141,10 @@ configs: | ||||
|     name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION} | ||||
|     file: entrypoint.sh | ||||
|     template_driver: golang | ||||
|   openid-settings: | ||||
|     name: ${STACK_NAME}_openid_settings_${OPENID_SETTINGS_VERSION} | ||||
|     file: openid_settings.json | ||||
|     template_driver: golang | ||||
|  | ||||
| secrets: | ||||
|   db_root_password: | ||||
| @ -154,3 +165,6 @@ secrets: | ||||
|   civicrm_sign_key: | ||||
|     external: true | ||||
|     name: ${STACK_NAME}_civicrm_sign_key_${SECRET_CIVICRM_SIGN_KEY_VERSION} | ||||
|   wordpress_admin_password: | ||||
|     external: true | ||||
|     name: ${STACK_NAME}_wordpress_admin_password_${SECRET_WORDPRESS_ADMIN_PASSWORD_VERSION} | ||||
|  | ||||
| @ -28,6 +28,8 @@ file_env "CIVICRM_DB_PASS" | ||||
| file_env "CIVICRM_SITE_KEY" | ||||
| file_env "CIVICRM_CRED_KEYS" | ||||
| file_env "SMTP_PASSWORD" | ||||
| file_env "WORDPRESS_ADMIN_PASSWORD" | ||||
| file_env "OPEN_ID_CLIENT_SECRET" | ||||
|  | ||||
| if  [[  "${1-default}" == "cron" ]]; then | ||||
|   echo "============ Running cron job ============" | ||||
| @ -49,9 +51,9 @@ 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" | ||||
|   su civicrm -c "wp core install --locale=$WORDPRESS_LOCALE --url=$BASE_URL --title=$PROJECT_NAME --admin_user=admin --admin_email=$WORDPRESS_ADMIN_EMAIL --admin_password='$WORDPRESS_ADMIN_PASSWORD'" | ||||
|   su civicrm -c "wp language core install $WORDPRESS_LOCALE" | ||||
|   su civicrm -c "wp language core activate $WORDPRESS_LOCALE" | ||||
| fi | ||||
|  | ||||
| # Setup Civicrm L10n | ||||
| @ -73,7 +75,7 @@ pushd /var/www/html/wp-content/uploads/civicrm/ | ||||
|       touch is_installed | ||||
|       rm -rf civicrm.settings.php | ||||
|       su civicrm -c "wp plugin activate civicrm" | ||||
|       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" | ||||
|       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 $WORDPRESS_LOCALE --comp $CIVICRM_COMPONENTS" | ||||
|       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 | ||||
| @ -87,11 +89,58 @@ pushd /var/www/html/wp-content/uploads/civicrm/ | ||||
|   fi | ||||
| popd | ||||
|  | ||||
| if  [[ -n "${OPEN_ID_CLIENT_ID}" ]]; then | ||||
|   # install OpenID Connect Generic plugin | ||||
|   if ! su civicrm -c "wp plugin is-installed daggerhart-openid-connect-generic"; then | ||||
|     # su civicrm -c "wp option list" | ||||
|     echo "============ Running OpenId Connect Install ============" | ||||
|     su civicrm -c "wp plugin install daggerhart-openid-connect-generic --activate" | ||||
|     # su civicrm -c "wp option list" | ||||
|   fi | ||||
|  | ||||
|   if ! su civicrm -c "wp option get openid_connect_generic_settings"; then | ||||
|     echo "Couldn't find openid connect settings option!" | ||||
|     # cat /usr/local/etc/civicrm/openid_settings.json | ||||
|     su civicrm -c "wp option add openid_connect_generic_settings --format=json < /usr/local/etc/civicrm/openid_settings.json" | ||||
|   fi | ||||
|  | ||||
|   su civicrm -c "wp option list" | ||||
|   su civicrm -c "wp option patch update openid_connect_generic_settings client_id $OPEN_ID_CLIENT_ID" | ||||
|   su civicrm -c "wp option patch update openid_connect_generic_settings client_secret $OPEN_ID_CLIENT_SECRET" | ||||
|  | ||||
|   if  [[ -n "${AUTHENTIK_DOMAIN}" ]]; then | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_login https://$AUTHENTIK_DOMAIN/application/o/authorize/" | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_userinfo https://$AUTHENTIK_DOMAIN/application/o/userinfo/" | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_token https://$AUTHENTIK_DOMAIN/application/o/token/" | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_end_session https://$AUTHENTIK_DOMAIN/application/o/wordpress/end-session/" | ||||
|   else | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_login $OPEN_ID_PROVIDER_LOGIN_URL" | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_userinfo $OPEN_ID_USERINFO_URL" | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_token $OPEN_ID_TOKEN_ENDPOINT_URL" | ||||
|     su civicrm -c "wp option patch update openid_connect_generic_settings endpoint_end_session $OPEN_ID_END_SESSION_URL" | ||||
|   fi | ||||
|   su civicrm -c "wp option list" | ||||
| fi | ||||
|  | ||||
| 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 | ||||
|  | ||||
|  | ||||
| # if  [[  "${OPEN_ID_CONNECT_ENABLED}" == "1" ]]; then | ||||
| #   sleep 30s | ||||
| #   echo "============ Configuring OpenID Connect ============" | ||||
| #   if su civicrm -c "wp option get openid_connect_generic_settings"; then | ||||
| #     echo "found openid connect settings option!" | ||||
| #     su civicrm -c "wp option get openid_connect_generic_settings" | ||||
| #     # su civicrm -c "wp option patch update openid_connect_generic_settings client_id $OPEN_ID_CLIENT_ID" | ||||
| #   else | ||||
| #     echo "Couldn't find openid connect settings option!" | ||||
| #   fi | ||||
| # fi | ||||
|  | ||||
|  | ||||
| echo "============ Running Webserver ============" | ||||
| exec apache2-foreground | ||||
							
								
								
									
										29
									
								
								openid_settings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								openid_settings.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
|  | ||||
| { | ||||
|     "login_type":"button", | ||||
|     "client_id":"", | ||||
|     "client_secret":"", | ||||
|     "scope":"email profile openid offline_access", | ||||
|     "endpoint_login":"", | ||||
|     "endpoint_userinfo":"", | ||||
|     "endpoint_token":"", | ||||
|     "endpoint_end_session":"", | ||||
|     "acr_values":"", | ||||
|     "identity_key":"preferred_username", | ||||
|     "no_sslverify":"0", | ||||
|     "http_request_timeout":"5", | ||||
|     "enforce_privacy":"0", | ||||
|     "alternate_redirect_uri":"0", | ||||
|     "nickname_key":"preferred_username", | ||||
|     "email_format":"{email}", | ||||
|     "displayname_format":"", | ||||
|     "identify_with_username":"0", | ||||
|     "state_time_limit":"180", | ||||
|     "token_refresh_enable":"1", | ||||
|     "link_existing_users":"0", | ||||
|     "create_if_does_not_exist":"1", | ||||
|     "redirect_user_back":"0", | ||||
|     "redirect_on_logout":"1", | ||||
|     "enable_logging":"0", | ||||
|     "log_limit":"1000" | ||||
| }    | ||||
		Reference in New Issue
	
	Block a user
	