mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-18 00:06:05 +02:00
Added wordpress disourse draft
This commit is contained in:
4
roles/docker-wordpress/tasks/discourse/README.md
Normal file
4
roles/docker-wordpress/tasks/discourse/README.md
Normal 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/)
|
37
roles/docker-wordpress/tasks/discourse/generate-api-key.yml
Normal file
37
roles/docker-wordpress/tasks/discourse/generate-api-key.yml
Normal 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] }}"
|
30
roles/docker-wordpress/tasks/discourse/install.yml
Normal file
30
roles/docker-wordpress/tasks/discourse/install.yml
Normal 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 }}"
|
Reference in New Issue
Block a user