Added wordpress disourse draft

This commit is contained in:
2025-04-22 12:50:48 +02:00
parent e1df746346
commit 3653b3111a
14 changed files with 110 additions and 833 deletions

View File

@@ -0,0 +1,4 @@
# 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/)

View File

@@ -0,0 +1,37 @@
- name: "Revoke old WP Discourse API keys via Rails"
command: >
docker exec {{ applications.discourse.container }}
rails runner "
user = User.find_by_username('system')
ApiKey
.where(
user_id: user.id,
description: 'WP Discourse Integration',
revoked_at: nil
)
.update_all(revoked_at: Time.current)
"
args:
chdir: "{{ docker_compose.directories.instance }}"
failed_when: false
- name: "Generate new WP Discourse API key via Rails"
command: >
docker exec {{ applications.discourse.container }}
rails runner "
user = User.find_by_username('system')
ak = ApiKey.create!(
user_id: user.id,
token: SecureRandom.hex,
description: 'WP Discourse Integration'
)
puts ak.token
"
args:
chdir: "{{ docker_compose.directories.instance }}"
register: discourse_generated_api_key
failed_when: false
- name: "Set fact for new WP Discourse API key"
set_fact:
vault_discourse_api_key: "{{ discourse_generated_api_key.stdout_lines[0] }}"

View File

@@ -0,0 +1,30 @@
---
- 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 }}"