mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-05-09 14:55:44 +02: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
|
||||||
|
|
||||||
@ -8,5 +11,5 @@ enable_wildcard_certificate: false
|
|||||||
# @see https://github.com/heviat/Mailu-OIDC/tree/2024.06
|
# @see https://github.com/heviat/Mailu-OIDC/tree/2024.06
|
||||||
docker_source: "{{ 'ghcr.io/heviat' if applications[application_id].features.oidc | bool else 'ghcr.io/mailu' }}"
|
docker_source: "{{ 'ghcr.io/heviat' if applications[application_id].features.oidc | bool else 'ghcr.io/mailu' }}"
|
||||||
|
|
||||||
domain: "{{ domains[application_id] }}"
|
domain: "{{ domains[application_id] }}"
|
||||||
http_port: "{{ ports.localhost.http[application_id] }}"
|
http_port: "{{ ports.localhost.http[application_id] }}"
|
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user