mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +00:00 
			
		
		
		
	feat(nextcloud): integrate Talk & Whiteboard; refactor to NEXTCLOUD_* vars; full-stack setup
config(ports): add Nextcloud websocket port (4003); canonical domains (nextcloud/talk/whiteboard) refactor: unify get_app_conf usage & Jinja spacing; migrate paths/handlers to new NEXTCLOUD_* vars feat(plugins): split plugin routines; configure Whiteboard via occ (URL + JWT) fix(oidc): use NEXTCLOUD_URL for logout; correct LDAP attribute mappings; add OIDC flavor switch feat: Whiteboard container & reverse-proxy location; Talk STUN/WS ports; Redis URL for Whiteboard chore: drop obsolete TODO; minor cleanups in oauth2-proxy, matrix, peertube, pgadmin, phpldapadmin, pixelfed, phpmyadmin security(schema): Bluesky jwt_secret now base64_prefixed_32; add Nextcloud whiteboard_jwt_secret db: normalize postgres image tag templating; central DB host checks spacing fixes ops: add full-stack bootstrap (certs, proxy, volumes); internal nginx config reload handler update refs: https://chatgpt.com/share/68b5f5b7-8d64-800f-b001-1241f818dc0e
This commit is contained in:
		| @@ -0,0 +1,47 @@ | ||||
| - name: enable {{ plugin_key }} nextcloud plugin | ||||
|   command: "{{ NEXTCLOUD_DOCKER_EXEC_OCC }} app:enable {{ plugin_key }}" | ||||
|   register: enable_result | ||||
|   changed_when: enable_result.rc == 0 and ("already enabled" not in enable_result.stdout) | ||||
|  | ||||
| - name: Check if {{ plugin_vars_path }} exists | ||||
|   stat: | ||||
|     path: "{{ plugin_vars_path }}" | ||||
|   delegate_to: localhost | ||||
|   become: false | ||||
|   register: plugin_vars_file | ||||
|  | ||||
| - name: "Load {{ plugin_key }} configuration variables" | ||||
|   include_vars: | ||||
|     file: "{{ plugin_vars_path }}" | ||||
|   when: plugin_vars_file.stat.exists | ||||
|  | ||||
| - name: "Set plugin configuration (batched shell, no async)" | ||||
|   ansible.builtin.shell: | | ||||
|     set -euo pipefail | ||||
|     {% for item in (plugin_configuration | default([])) %} | ||||
|     {{ NEXTCLOUD_DOCKER_EXEC_OCC }} \ | ||||
|       config:app:set {{ item.appid }} {{ item.configkey }} \ | ||||
|       --value '{{ ( (item.configvalue | to_json) if (item.configvalue is mapping) else (item.configvalue | string) )  | ||||
|             | regex_replace("'", "'" ~ '"' ~ "'" ~ '"' ~ "'") }}' | ||||
|     {% endfor %} | ||||
|   args: | ||||
|     executable: /bin/bash | ||||
|   when: plugin_vars_file.stat.exists | ||||
|   register: config_set_shell | ||||
|   changed_when: > | ||||
|     not ASYNC_ENABLED and | ||||
|     (config_set_shell.stdout | default('')) is search(' set to ') | ||||
|   failed_when: not ASYNC_ENABLED and config_set_shell.rc != 0 | ||||
|   async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}" | ||||
|   poll:  "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}" | ||||
|  | ||||
| - name: Check if {{ plugin_task_path }} exists | ||||
|   stat: | ||||
|     path: "{{ plugin_task_path }}" | ||||
|   delegate_to: localhost | ||||
|   become: false | ||||
|   register: plugin_tasks_file | ||||
|  | ||||
| - name: "include {{ plugin_task_path }}" | ||||
|   include_tasks: "{{ plugin_task_path }}" | ||||
|   when: plugin_tasks_file.stat.exists | ||||
		Reference in New Issue
	
	Block a user