mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 04:08:15 +00:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			c26167ce61
			...
			3b3ec5196a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3b3ec5196a | |||
| fd0a978a16 | |||
| 1376930e5c | |||
| 86dd349e8f | |||
| 8bb7f607c1 | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 1.4 MiB  | 
@@ -2,10 +2,13 @@ application_id:               "bigbluebutton"
 | 
				
			|||||||
bbb_repository_directory:     "{{ docker_compose.directories.services }}"
 | 
					bbb_repository_directory:     "{{ docker_compose.directories.services }}"
 | 
				
			||||||
docker_compose_file_origine:  "{{ docker_compose.directories.services }}docker-compose.yml"
 | 
					docker_compose_file_origine:  "{{ docker_compose.directories.services }}docker-compose.yml"
 | 
				
			||||||
docker_compose_file_final:    "{{ docker_compose.directories.instance }}docker-compose.yml"
 | 
					docker_compose_file_final:    "{{ docker_compose.directories.instance }}docker-compose.yml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Database configuration
 | 
				
			||||||
database_instance:            "bigbluebutton"
 | 
					database_instance:            "bigbluebutton"
 | 
				
			||||||
database_name:                "" # Database name is empty, because bb uses multiple databases
 | 
					database_name:                "multiple_databases"
 | 
				
			||||||
database_username:            "postgres"
 | 
					database_username:            "postgres"
 | 
				
			||||||
database_password:            "{{ applications.bigbluebutton.credentials.postgresql_secret }}"
 | 
					database_password:            "{{ applications.bigbluebutton.credentials.postgresql_secret }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
domain: 	                    "{{ domains[application_id] }}"
 | 
					domain: 	                    "{{ domains[application_id] }}"
 | 
				
			||||||
http_port: 	                  "{{ ports.localhost.http[application_id] }}"
 | 
					http_port: 	                  "{{ ports.localhost.http[application_id] }}"
 | 
				
			||||||
bbb_env_file_link:            "{{ docker_compose.directories.instance }}.env"    
 | 
					bbb_env_file_link:            "{{ docker_compose.directories.instance }}.env"    
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,15 +50,19 @@ env:
 | 
				
			|||||||
  ## on initial signup example 'user1@example.com,user2@example.com'
 | 
					  ## on initial signup example 'user1@example.com,user2@example.com'
 | 
				
			||||||
  DISCOURSE_DEVELOPER_EMAILS:       {{users.administrator.email}}
 | 
					  DISCOURSE_DEVELOPER_EMAILS:       {{users.administrator.email}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Set Logo
 | 
				
			||||||
 | 
					  DISCOURSE_LOGO_URL:       "{{service_provider.platform.logo}}"
 | 
				
			||||||
 | 
					  DISCOURSE_LOGO_SMALL_URL: "{{service_provider.platform.logo}}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # SMTP ADDRESS, username, and password are required
 | 
					  # SMTP ADDRESS, username, and password are required
 | 
				
			||||||
  # WARNING the char '#' in SMTP password can cause problems!
 | 
					  # WARNING the char '#' in SMTP password can cause problems!
 | 
				
			||||||
  DISCOURSE_SMTP_ADDRESS:           {{ system_email.host }}
 | 
					  DISCOURSE_SMTP_ADDRESS:           {{ system_email.host }}
 | 
				
			||||||
  DISCOURSE_SMTP_PORT:              {{ system_email.port }}
 | 
					  DISCOURSE_SMTP_PORT:              {{ system_email.port }}
 | 
				
			||||||
  DISCOURSE_SMTP_USER_NAME:         {{system_email.username}}
 | 
					  DISCOURSE_SMTP_USER_NAME:         {{ system_email.username }}
 | 
				
			||||||
  DISCOURSE_SMTP_PASSWORD:          {{ system_email.password }}
 | 
					  DISCOURSE_SMTP_PASSWORD:          {{ system_email.password }}
 | 
				
			||||||
  DISCOURSE_SMTP_ENABLE_START_TLS:  {{ system_email.start_tls | upper }}
 | 
					  DISCOURSE_SMTP_ENABLE_START_TLS:  {{ system_email.start_tls | upper }}
 | 
				
			||||||
  DISCOURSE_SMTP_DOMAIN:            {{ system_email.domain }}
 | 
					  DISCOURSE_SMTP_DOMAIN:            {{ system_email.domain }}
 | 
				
			||||||
  DISCOURSE_NOTIFICATION_EMAIL:     {{system_email.from}}
 | 
					  DISCOURSE_NOTIFICATION_EMAIL:     {{ system_email.from }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Database Configuration
 | 
					  # Database Configuration
 | 
				
			||||||
  DISCOURSE_DB_USERNAME: {{ database_username }}
 | 
					  DISCOURSE_DB_USERNAME: {{ database_username }}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,21 +19,17 @@
 | 
				
			|||||||
    domain: 	"{{ domains[application_id] }}"
 | 
					    domain: 	"{{ domains[application_id] }}"
 | 
				
			||||||
    http_port: 	"{{ ports.localhost.http[application_id] }}"
 | 
					    http_port: 	"{{ ports.localhost.http[application_id] }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: "copy docker-compose.yml and env file"
 | 
					 | 
				
			||||||
  include_tasks: copy-docker-compose-and-env.yml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: add config.toml
 | 
					- name: add config.toml
 | 
				
			||||||
  template: 
 | 
					  template: 
 | 
				
			||||||
    src:  "config.toml.j2" 
 | 
					    src:  "config.toml.j2" 
 | 
				
			||||||
    dest: "{{docker_compose.directories.config}}config.toml"
 | 
					    dest: "{{docker_compose.directories.config}}config.toml"
 | 
				
			||||||
  notify: docker compose project setup
 | 
					  notify: docker compose project setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: flush docker service
 | 
					- name: "copy docker-compose.yml and env file"
 | 
				
			||||||
  meta: flush_handlers
 | 
					  include_tasks: copy-docker-compose-and-env.yml
 | 
				
			||||||
  when: applications.listmonk.setup |bool 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: setup routine for listmonk
 | 
					- name: setup routine for listmonk
 | 
				
			||||||
  command:
 | 
					  command:
 | 
				
			||||||
    cmd:   docker compose run -T --rm application sh -c "yes | ./listmonk --install"
 | 
					    cmd:   docker compose run -T --rm application sh -c "yes | ./listmonk --install"
 | 
				
			||||||
    chdir: "{{docker_compose.directories.instance}}"
 | 
					    chdir: "{{docker_compose.directories.instance}}"
 | 
				
			||||||
  when: applications.listmonk.setup |bool 
 | 
					  ignore_errors: true # Ignore errors if already setup
 | 
				
			||||||
@@ -5,14 +5,6 @@
 | 
				
			|||||||
# port, use port 80 (this will require running with elevated permissions).
 | 
					# port, use port 80 (this will require running with elevated permissions).
 | 
				
			||||||
address = "0.0.0.0:9000"
 | 
					address = "0.0.0.0:9000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# BasicAuth authentication for the admin dashboard. This will eventually
 | 
					 | 
				
			||||||
# be replaced with a better multi-user, role-based authentication system.
 | 
					 | 
				
			||||||
# IMPORTANT: Leave both values empty to disable authentication on admin
 | 
					 | 
				
			||||||
# only where an external authentication is already setup.
 | 
					 | 
				
			||||||
# admin_username = "{{applications.listmonk.users.administrator.username}}"
 | 
					 | 
				
			||||||
# admin_password = "{{listmonk_admin_password}}"
 | 
					 | 
				
			||||||
# Deactivated for newer versions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Database.
 | 
					# Database.
 | 
				
			||||||
[db]
 | 
					[db]
 | 
				
			||||||
host = "{{database_host}}"
 | 
					host = "{{database_host}}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,8 @@ TZ=Etc/UTC
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Administrator setup
 | 
					# Administrator setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LISTMONK_ADMIN_USER={{users.administrator.username}}
 | 
					LISTMONK_ADMIN_USER={{ applications[application_id].users.administrator.username }}
 | 
				
			||||||
LISTMONK_ADMIN_PASSWORD={{users.administrator.password}}
 | 
					LISTMONK_ADMIN_PASSWORD={{ applications[application_id].users.administrator.password }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% if applications[application_id].features.oidc | bool %}
 | 
					{% if applications[application_id].features.oidc | bool %}
 | 
				
			||||||
################################### 
 | 
					################################### 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,3 @@
 | 
				
			|||||||
application_id:  	  "listmonk"
 | 
					application_id:  	  "listmonk"
 | 
				
			||||||
database_password:  "{{listmonk_database_password}}"
 | 
					database_password:  "{{applications[application_id].credentials.database.password}}"
 | 
				
			||||||
database_type:      "postgres"
 | 
					database_type:      "postgres"
 | 
				
			||||||
@@ -1,6 +1,9 @@
 | 
				
			|||||||
application_id:               "mailu"
 | 
					application_id:               "mailu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Database Configuration
 | 
				
			||||||
database_password:  	        "{{applications.mailu.credentials.database.password}}"
 | 
					database_password:  	        "{{applications.mailu.credentials.database.password}}"
 | 
				
			||||||
database_type:                "mariadb"
 | 
					database_type:                "mariadb"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cert_mount_directory:         "{{docker_compose.directories.volumes}}certs/"
 | 
					cert_mount_directory:         "{{docker_compose.directories.volumes}}certs/"
 | 
				
			||||||
enable_wildcard_certificate:  false
 | 
					enable_wildcard_certificate:  false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,3 @@
 | 
				
			|||||||
application_id:  	  "mastodon"
 | 
					application_id:  	  "mastodon"
 | 
				
			||||||
database_password:  "{{applications.mastodon.credentials.database.password}}"
 | 
					database_password:  "{{applications[application_id].credentials.database.password}}"
 | 
				
			||||||
database_type:      "postgres"
 | 
					database_type:      "postgres"
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					FLASK_DEBUG={{ enable_debug }}
 | 
				
			||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
# Wordpress with Discourse Support
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This folder contains the files to setup Discourse support for Wordpress.
 | 
					 | 
				
			||||||
IT's realized with the [WP Discourse Plugin](https://de.wordpress.org/plugins/wp-discourse/)
 | 
					 | 
				
			||||||
@@ -1,38 +0,0 @@
 | 
				
			|||||||
---
 | 
					 | 
				
			||||||
- name: Add /var/www/discourse to Git safe.directory
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker exec {{ applications.discourse.container }} \
 | 
					 | 
				
			||||||
      git config --global --add safe.directory /var/www/discourse
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
  changed_when: false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: Revoke old WP Discourse API keys via Rails
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker exec {{ applications.discourse.container }} bash -lc "\
 | 
					 | 
				
			||||||
      cd /var/www/discourse && \
 | 
					 | 
				
			||||||
      script/rails runner \"\
 | 
					 | 
				
			||||||
        ApiKey.where(\
 | 
					 | 
				
			||||||
          user_id: User.find_by_username('system').id,\
 | 
					 | 
				
			||||||
          description: 'WP Discourse Integration',\
 | 
					 | 
				
			||||||
          revoked_at: nil\
 | 
					 | 
				
			||||||
        ).update_all(revoked_at: Time.current)\
 | 
					 | 
				
			||||||
      \""
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
  changed_when: false
 | 
					 | 
				
			||||||
  failed_when: false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: Generate new WP Discourse API key via Rake task
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker exec {{ applications.discourse.container }} bash -lc "\
 | 
					 | 
				
			||||||
      cd /var/www/discourse && \
 | 
					 | 
				
			||||||
      bin/rake api_key:create_master['WP Discourse Integration']\
 | 
					 | 
				
			||||||
    "
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
  register: discourse_generated_api_key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: Store the new WP Discourse API key in a fact
 | 
					 | 
				
			||||||
  set_fact:
 | 
					 | 
				
			||||||
    vault_discourse_api_key: "{{ discourse_generated_api_key.stdout | trim }}"
 | 
					 | 
				
			||||||
@@ -1,30 +0,0 @@
 | 
				
			|||||||
---
 | 
					 | 
				
			||||||
- name: "Include docker-discourse"
 | 
					 | 
				
			||||||
  include_role:
 | 
					 | 
				
			||||||
    name: docker-discourse
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: "Generate Discourse API Key when WP Discourse is enabled"
 | 
					 | 
				
			||||||
  include_tasks: generate-api-key.yml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load after api key generation, so that it can be used
 | 
					 | 
				
			||||||
- name: "Include WP Discourse vars"
 | 
					 | 
				
			||||||
  include_vars:
 | 
					 | 
				
			||||||
    file: "{{ role_path }}/vars/discourse.yml"
 | 
					 | 
				
			||||||
    name: discourse_settings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: "Install WP Discourse plugin"
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker-compose exec -u www-data -T application
 | 
					 | 
				
			||||||
    wp plugin install wp-discourse --activate
 | 
					 | 
				
			||||||
    --path={{ wordpress_docker_html_path }}
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: "Configure WP Discourse settings"
 | 
					 | 
				
			||||||
  vars:
 | 
					 | 
				
			||||||
    discourse_settings_json_b64: "{{ discourse_settings | to_json | b64encode }}"
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker-compose exec -u www-data -T application bash -lc
 | 
					 | 
				
			||||||
    "wp eval \"update_option('wp_discourse_options', json_decode(base64_decode('{{ discourse_settings_json_b64 }}'), true));\" --path={{ wordpress_docker_html_path }}"
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
@@ -37,10 +37,15 @@
 | 
				
			|||||||
- name: "Install wordpress"
 | 
					- name: "Install wordpress"
 | 
				
			||||||
  include_tasks: install.yml
 | 
					  include_tasks: install.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: "Activating OIDC when enabled."
 | 
					- name: "Install and activate WordPress plugins from application config"
 | 
				
			||||||
  include_tasks: oidc/install.yml
 | 
					  block:
 | 
				
			||||||
  when: applications[application_id].features.oidc | bool
 | 
					    - name: "Iterate through WordPress plugins"
 | 
				
			||||||
 | 
					      include_tasks: plugin.yml
 | 
				
			||||||
- name: "Activating WP Discourse when enabled"
 | 
					      loop: "{{ applications[application_id].plugins | dict2items }}"
 | 
				
			||||||
  include_tasks: discourse/install.yml
 | 
					      loop_control:
 | 
				
			||||||
  when: applications[application_id].plugins.discourse | bool
 | 
					        label: "{{ item.key }}"
 | 
				
			||||||
 | 
					      vars:
 | 
				
			||||||
 | 
					        plugin_name: "{{ item.key }}"
 | 
				
			||||||
 | 
					        plugin_enabled: "{{ item.value.enabled | bool }}"
 | 
				
			||||||
 | 
					        plugin_task_path: "{{ role_path }}/tasks/plugins/{{ plugin_name }}/install.yml"
 | 
				
			||||||
 | 
					      when: plugin_enabled
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,2 +0,0 @@
 | 
				
			|||||||
# Wordpress with OIDC
 | 
					 | 
				
			||||||
This folder contains the files to setup Wordpress with OIDC.
 | 
					 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
---
 | 
					 | 
				
			||||||
- name: "Install OpenID Connect Generic Plugin via WP CLI"
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker-compose exec -u www-data -T application
 | 
					 | 
				
			||||||
      wp plugin install daggerhart-openid-connect-generic
 | 
					 | 
				
			||||||
      --path={{ wordpress_docker_html_path }}
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: Wait for Discourse API
 | 
					 | 
				
			||||||
  wait_for:
 | 
					 | 
				
			||||||
    host: "{{ domains.discourse }}"
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    delay: 5
 | 
					 | 
				
			||||||
    timeout: 600
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: "Activate OpenID Connect Generic Plugin"
 | 
					 | 
				
			||||||
  command: >
 | 
					 | 
				
			||||||
    docker-compose exec -u www-data -T application
 | 
					 | 
				
			||||||
      wp plugin activate daggerhart-openid-connect-generic
 | 
					 | 
				
			||||||
      --path={{ wordpress_docker_html_path }}
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    chdir: "{{ docker_compose.directories.instance }}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: "Setup OIDC settings"
 | 
					 | 
				
			||||||
  include_tasks: "settings.yml"
 | 
					 | 
				
			||||||
							
								
								
									
										18
									
								
								roles/docker-wordpress/tasks/plugin.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								roles/docker-wordpress/tasks/plugin.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- name: "Check if plugin has a dedicated install task"
 | 
				
			||||||
 | 
					  stat:
 | 
				
			||||||
 | 
					    path: "{{ plugin_task_path }}"
 | 
				
			||||||
 | 
					  register: plugin_task_file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "Include plugin-specific install task if it exists"
 | 
				
			||||||
 | 
					  include_tasks: "{{ plugin_task_path }}"
 | 
				
			||||||
 | 
					  when: plugin_task_file.stat.exists
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "Install and activate WordPress plugin via WP CLI"
 | 
				
			||||||
 | 
					  command: >
 | 
				
			||||||
 | 
					    docker-compose exec -u www-data -T application
 | 
				
			||||||
 | 
					      wp plugin install {{ plugin_name }} --activate
 | 
				
			||||||
 | 
					      --path={{ wordpress_docker_html_path }}
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
 | 
					  when: not plugin_task_file.stat.exists
 | 
				
			||||||
							
								
								
									
										15
									
								
								roles/docker-wordpress/tasks/plugins/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								roles/docker-wordpress/tasks/plugins/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					# WordPress Plugins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This WordPress setup integrates several powerful plugins to extend functionality with authentication, federation, and external discussion platforms:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 🔐 OpenID Connect Generic Client  
 | 
				
			||||||
 | 
					Enables secure login via OpenID Connect (OIDC).  
 | 
				
			||||||
 | 
					Plugin used: [daggerhart-openid-connect-generic](https://wordpress.org/plugins/daggerhart-openid-connect-generic/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 💬 WP Discourse  
 | 
				
			||||||
 | 
					Seamlessly connects WordPress with a Discourse forum for comments, discussions, and single sign-on (SSO).  
 | 
				
			||||||
 | 
					Plugin used: [wp-discourse](https://wordpress.org/plugins/wp-discourse/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 🌍 ActivityPub  
 | 
				
			||||||
 | 
					Federates your blog with the Fediverse, making it accessible on platforms like Mastodon and Friendica.  
 | 
				
			||||||
 | 
					Plugin used: [activitypub](https://wordpress.org/plugins/activitypub/)
 | 
				
			||||||
							
								
								
									
										94
									
								
								roles/docker-wordpress/tasks/plugins/wp-discourse.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								roles/docker-wordpress/tasks/plugins/wp-discourse.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,94 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- name: "Include docker-discourse"
 | 
				
			||||||
 | 
					  include_role:
 | 
				
			||||||
 | 
					    name: docker-discourse
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Wait for Discourse API
 | 
				
			||||||
 | 
					  wait_for:
 | 
				
			||||||
 | 
					    host: "{{ domains.discourse }}"
 | 
				
			||||||
 | 
					    port: 80
 | 
				
			||||||
 | 
					    delay: 5
 | 
				
			||||||
 | 
					    timeout: 600
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Add /var/www/discourse to Git safe.directory
 | 
				
			||||||
 | 
					  command: >
 | 
				
			||||||
 | 
					    docker exec {{ applications.discourse.container }} \
 | 
				
			||||||
 | 
					      git config --global --add safe.directory /var/www/discourse
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
 | 
					  changed_when: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Revoke old WP Discourse API keys via Rails
 | 
				
			||||||
 | 
					  command: >
 | 
				
			||||||
 | 
					    docker exec {{ applications.discourse.container }} bash -lc "\
 | 
				
			||||||
 | 
					      cd /var/www/discourse && \
 | 
				
			||||||
 | 
					      script/rails runner \"\
 | 
				
			||||||
 | 
					        ApiKey.where(\
 | 
				
			||||||
 | 
					          user_id: User.find_by_username('system').id,\
 | 
				
			||||||
 | 
					          description: 'WP Discourse Integration',\
 | 
				
			||||||
 | 
					          revoked_at: nil\
 | 
				
			||||||
 | 
					        ).update_all(revoked_at: Time.current)\
 | 
				
			||||||
 | 
					      \""
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
 | 
					  changed_when: false
 | 
				
			||||||
 | 
					  failed_when: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Generate new WP Discourse API key via Rake task
 | 
				
			||||||
 | 
					  command: >
 | 
				
			||||||
 | 
					    docker exec {{ applications.discourse.container }} bash -lc "\
 | 
				
			||||||
 | 
					      cd /var/www/discourse && \
 | 
				
			||||||
 | 
					      bin/rake api_key:create_master['WP Discourse Integration']\
 | 
				
			||||||
 | 
					    "
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
 | 
					  register: discourse_generated_api_key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Store the new WP Discourse API key in a fact
 | 
				
			||||||
 | 
					  set_fact:
 | 
				
			||||||
 | 
					    vault_discourse_api_key: "{{ discourse_generated_api_key.stdout | trim }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "Load WP Discourse settings"
 | 
				
			||||||
 | 
					  include_vars:
 | 
				
			||||||
 | 
					    file: "{{ role_path }}/vars/discourse.yml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "Install WP Discourse plugin"
 | 
				
			||||||
 | 
					  command: >
 | 
				
			||||||
 | 
					    docker-compose exec -u www-data -T application
 | 
				
			||||||
 | 
					      wp plugin install wp-discourse --activate
 | 
				
			||||||
 | 
					      --path={{ wordpress_docker_html_path }}
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "Configure WP Discourse settings"
 | 
				
			||||||
 | 
					  loop: "{{ discourse_settings | map(attribute='name') | unique | list }}"
 | 
				
			||||||
 | 
					  loop_control:
 | 
				
			||||||
 | 
					    label: "{{ item }}"
 | 
				
			||||||
 | 
					  vars:
 | 
				
			||||||
 | 
					    option_name: "{{ item }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    option_items: >-
 | 
				
			||||||
 | 
					      {{ discourse_settings
 | 
				
			||||||
 | 
					         | selectattr('name', 'equalto', option_name)
 | 
				
			||||||
 | 
					         | list
 | 
				
			||||||
 | 
					      }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    option_kv: >-
 | 
				
			||||||
 | 
					      {{ dict(
 | 
				
			||||||
 | 
					           option_items | map(attribute='key')
 | 
				
			||||||
 | 
					           | zip(option_items | map(attribute='value'))
 | 
				
			||||||
 | 
					         ) }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    option_json_b64: "{{ option_kv | to_json | b64encode }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  command: >
 | 
				
			||||||
 | 
					    docker-compose exec -u www-data -T application bash -lc
 | 
				
			||||||
 | 
					      "wp eval \"update_option(
 | 
				
			||||||
 | 
					         '{{ option_name }}',
 | 
				
			||||||
 | 
					         json_decode(
 | 
				
			||||||
 | 
					           base64_decode('{{ option_json_b64 }}'),
 | 
				
			||||||
 | 
					           true
 | 
				
			||||||
 | 
					         )
 | 
				
			||||||
 | 
					       );\" --path={{ wordpress_docker_html_path }}"
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
@@ -1,9 +1,245 @@
 | 
				
			|||||||
# Defines WP Discourse plugin settings
 | 
					# Defines WP Discourse plugin settings
 | 
				
			||||||
# @see https://github.com/discourse/wp-discourse
 | 
					# @see https://github.com/discourse/wp-discourse
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# roles/docker-wordpress/vars/discourse.yml
 | 
				
			||||||
 | 
					# Defines WP Discourse plugin settings (exported from your current wp_options dump)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
discourse_settings:
 | 
					discourse_settings:
 | 
				
			||||||
  publish_discourse_posts:  true
 | 
					  #- name: wpdc_discourse_domain
 | 
				
			||||||
  discourse_url:           "https://{{ domains.discourse }}"
 | 
					  #  key: wpdc_discourse_domain
 | 
				
			||||||
  discourse_api_key:       "{{ vault_discourse_api_key }}" 
 | 
					  #  value: ""
 | 
				
			||||||
  discourse_username:      "system"
 | 
					
 | 
				
			||||||
  discourse_use_sso:       false
 | 
					  - name: discourse_connect
 | 
				
			||||||
 | 
					    key: url
 | 
				
			||||||
 | 
					    value: "https://{{ domains.discourse }}"
 | 
				
			||||||
 | 
					  - name: discourse_connect
 | 
				
			||||||
 | 
					    key: api-key
 | 
				
			||||||
 | 
					    value: "{{ vault_discourse_api_key }}"
 | 
				
			||||||
 | 
					  - name: discourse_connect
 | 
				
			||||||
 | 
					    key: publish-username
 | 
				
			||||||
 | 
					    value: "system"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: display-subcategories
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: publish-category
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: publish-category-update
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: full-post-content
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: allow-tags
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: max-tags
 | 
				
			||||||
 | 
					  #  value: 5
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: publish-as-unlisted
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: custom-excerpt-length
 | 
				
			||||||
 | 
					  #  value: 55
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: add-featured-link
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: auto-publish
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: force-publish
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: force-publish-max-age
 | 
				
			||||||
 | 
					  #  value: 0
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: publish-failure-notice
 | 
				
			||||||
 | 
					  #  value: true
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: publish-failure-email
 | 
				
			||||||
 | 
					  #  value: "{{ users.administrator.email }}"
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: auto-track
 | 
				
			||||||
 | 
					  #  value: true
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: allowed_post_types
 | 
				
			||||||
 | 
					  #  value:
 | 
				
			||||||
 | 
					  #    - post
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: hide-discourse-name-field
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_publish
 | 
				
			||||||
 | 
					  #  key: discourse-username-editable
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: enable-discourse-comments
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: comment-type
 | 
				
			||||||
 | 
					  #  value: "display-comments"
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: ajax-load
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: cache-html
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: clear-cached-comment-html
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: discourse-new-tab
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: comment-sync-period
 | 
				
			||||||
 | 
					  #  value: 10
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: hide-wordpress-comments
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: show-existing-comments
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: existing-comments-heading
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: max-comments
 | 
				
			||||||
 | 
					  #  value: 5
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: min-replies
 | 
				
			||||||
 | 
					  #  value: 1
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: min-score
 | 
				
			||||||
 | 
					  #  value: 0
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: min-trust-level
 | 
				
			||||||
 | 
					  #  value: 1
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: bypass-trust-level-score
 | 
				
			||||||
 | 
					  #  value: 50
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: custom-datetime-format
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: only-show-moderator-liked
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_comment
 | 
				
			||||||
 | 
					  #  key: load-comment-css
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: discourse-link-text
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: start-discussion-text
 | 
				
			||||||
 | 
					  #  value: "Start the discussion at"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: continue-discussion-text
 | 
				
			||||||
 | 
					  #  value: "Continue the discussion at"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: join-discussion-text
 | 
				
			||||||
 | 
					  #  value: "Join the discussion at"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: comments-singular-text
 | 
				
			||||||
 | 
					  #  value: "Comment"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: comments-plural-text
 | 
				
			||||||
 | 
					  #  value: "Comments"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: no-comments-text
 | 
				
			||||||
 | 
					  #  value: "Join the Discussion"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: notable-replies-text
 | 
				
			||||||
 | 
					  #  value: "Notable Replies"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: comments-not-available-text
 | 
				
			||||||
 | 
					  #  value: "Comments are not currently available for this post."
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: participants-text
 | 
				
			||||||
 | 
					  #  value: "Participants"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: published-at-text
 | 
				
			||||||
 | 
					  #  value: "Originally published at:"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: single-reply-text
 | 
				
			||||||
 | 
					  #  value: "Reply"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: many-replies-text
 | 
				
			||||||
 | 
					  #  value: "Replies"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: more-replies-more-text
 | 
				
			||||||
 | 
					  #  value: "more"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: external-login-text
 | 
				
			||||||
 | 
					  #  value: "Log in with Discourse"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: link-to-discourse-text
 | 
				
			||||||
 | 
					  #  value: "Link your account to Discourse"
 | 
				
			||||||
 | 
					  #- name: discourse_configurable_text
 | 
				
			||||||
 | 
					  #  key: linked-to-discourse-text
 | 
				
			||||||
 | 
					  #  value: "Your account is linked with Discourse!"
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  #- name: discourse_webhook
 | 
				
			||||||
 | 
					  #  key: use-discourse-webhook
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_webhook
 | 
				
			||||||
 | 
					  #  key: webhook-secret
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					  #- name: discourse_webhook
 | 
				
			||||||
 | 
					  #  key: webhook-match-old-topics
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_webhook
 | 
				
			||||||
 | 
					  #  key: use-discourse-user-webhook
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_webhook
 | 
				
			||||||
 | 
					  #  key: webhook-match-user-email
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  #- name: discourse_sso_common
 | 
				
			||||||
 | 
					  #  key: sso-secret
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  #- name: discourse_sso_provider
 | 
				
			||||||
 | 
					  #  key: enable-sso
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_provider
 | 
				
			||||||
 | 
					  #  key: auto-create-sso-user
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_provider
 | 
				
			||||||
 | 
					  #  key: login-path
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					  #- name: discourse_sso_provider
 | 
				
			||||||
 | 
					  #  key: real-name-as-discourse-name
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_provider
 | 
				
			||||||
 | 
					  #  key: force-avatar-update
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_provider
 | 
				
			||||||
 | 
					  #  key: redirect-without-login
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  #- name: discourse_sso_client
 | 
				
			||||||
 | 
					  #  key: sso-client-enabled
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_client
 | 
				
			||||||
 | 
					  #  key: sso-client-login-form-change
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_client
 | 
				
			||||||
 | 
					  #  key: sso-client-login-form-redirect
 | 
				
			||||||
 | 
					  #  value: ""
 | 
				
			||||||
 | 
					  #- name: discourse_sso_client
 | 
				
			||||||
 | 
					  #  key: sso-client-sync-by-email
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_client
 | 
				
			||||||
 | 
					  #  key: sso-client-disable-create-user
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					  #- name: discourse_sso_client
 | 
				
			||||||
 | 
					  #  key: sso-client-sync-logout
 | 
				
			||||||
 | 
					  #  value: false
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					  - name: discourse_logs
 | 
				
			||||||
 | 
					    key: logs-enabled
 | 
				
			||||||
 | 
					    value: "{{ enable_debug }}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -121,7 +121,7 @@ defaults_applications:
 | 
				
			|||||||
{% endraw %}{{ features.render_features({
 | 
					{% endraw %}{{ features.render_features({
 | 
				
			||||||
  'matomo':   true,
 | 
					  'matomo':   true,
 | 
				
			||||||
  'css':      true,
 | 
					  'css':      true,
 | 
				
			||||||
  'iframe':   true,
 | 
					  'iframe':   false,
 | 
				
			||||||
  'oidc':     true,
 | 
					  'oidc':     true,
 | 
				
			||||||
  'database': true,
 | 
					  'database': true,
 | 
				
			||||||
}) }}{% raw %}
 | 
					}) }}{% raw %}
 | 
				
			||||||
@@ -273,6 +273,9 @@ defaults_applications:
 | 
				
			|||||||
      administrator:
 | 
					      administrator:
 | 
				
			||||||
        username:                     "{{users.administrator.username}}"          # Listmonk administrator account username
 | 
					        username:                     "{{users.administrator.username}}"          # Listmonk administrator account username
 | 
				
			||||||
#        password:                     "{{users.administrator.password}}"          # Password to initialized Listmonk administrator with
 | 
					#        password:                     "{{users.administrator.password}}"          # Password to initialized Listmonk administrator with
 | 
				
			||||||
 | 
					    credentials:
 | 
				
			||||||
 | 
					      database:
 | 
				
			||||||
 | 
					#        password:                     ""                                          # Database password
 | 
				
			||||||
    public_api_activated:             False                                       # Security hole. Can be used for spaming
 | 
					    public_api_activated:             False                                       # Security hole. Can be used for spaming
 | 
				
			||||||
    version:                          "latest"                                    # Docker Image version
 | 
					    version:                          "latest"                                    # Docker Image version
 | 
				
			||||||
    setup:                            false                                       # Set true in inventory file to execute the setup and initializing procedures
 | 
					    setup:                            false                                       # Set true in inventory file to execute the setup and initializing procedures
 | 
				
			||||||
@@ -817,8 +820,13 @@ defaults_applications:
 | 
				
			|||||||
#       password:                                                             # Password of the wordpress administrator
 | 
					#       password:                                                             # Password of the wordpress administrator
 | 
				
			||||||
        email:                    "{{users.administrator.email}}"             # Email of the wordpress adminsitrator
 | 
					        email:                    "{{users.administrator.email}}"             # Email of the wordpress adminsitrator
 | 
				
			||||||
    plugins:
 | 
					    plugins:
 | 
				
			||||||
      discourse:                  "{{ 'discourse' in group_names | lower }}"
 | 
					      wp-discourse:
 | 
				
			||||||
      oidc:                       true
 | 
					        enabled:  "{{ 'discourse' in group_names | lower }}"
 | 
				
			||||||
 | 
					      daggerhart-openid-connect-generic:
 | 
				
			||||||
 | 
					        enabled:  true
 | 
				
			||||||
 | 
					      activitypub:
 | 
				
			||||||
 | 
					        enabled:  true
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
{% endraw %}{{ features.render_features({
 | 
					{% endraw %}{{ features.render_features({
 | 
				
			||||||
  'matomo':   	true,
 | 
					  'matomo':   	true,
 | 
				
			||||||
  'css':      	false,
 | 
					  'css':      	false,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user