From 8701ada7e2fded96f5592bd206492907f83ffa58 Mon Sep 17 00:00:00 2001 From: Bastian de Byl Date: Mon, 28 Sep 2026 18:38:52 -0400 Subject: [PATCH] feat(debyltech-cloud): plain login background, empty homes for new accounts - theming background -> backgroundColor, dropping the stock image for the navy theming colour. - skeletondirectory/templatedirectory set to "" so customer accounts start empty instead of getting Nextcloud's sample Manual, intro video and Templates folder. - The system-config compare now tells an unset key apart from an empty value. Both print nothing, so an intentionally empty setting was silently skipped. Co-Authored-By: Claude Opus 5.5 --- .../tasks/containers/debyltech/cloud.yml | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/ansible/roles/podman/tasks/containers/debyltech/cloud.yml b/ansible/roles/podman/tasks/containers/debyltech/cloud.yml index 69f983b..287a899 100644 --- a/ansible/roles/podman/tasks/containers/debyltech/cloud.yml +++ b/ansible/roles/podman/tasks/containers/debyltech/cloud.yml @@ -524,7 +524,9 @@ ansible.builtin.shell: | set -o pipefail occ() { podman exec -u www-data debyltech-cloud php occ "$@"; } - cur=$(occ config:system:get {{ item.k }} || true) + # An UNSET key prints nothing and exits 1 -- indistinguishable from "" + # by output alone, which would skip setting an intentionally empty value. + cur=$(occ config:system:get {{ item.k }}) || cur='' if [ "$cur" != {{ item.v | quote }} ]; then occ config:system:set {{ item.k }} --value={{ item.v | quote }} --type={{ item.t | default('string') }} >/dev/null echo CHANGED @@ -540,6 +542,10 @@ # Hour in UTC: 05:00 UTC is 01:00/00:00 Eastern, ahead of the 04:15 backup. - {k: maintenance_window_start, v: "5", t: integer} - {k: default_phone_region, v: US} + # New accounts -- customers above all -- start with an empty home rather + # than Nextcloud's sample Manual/intro video/Readme and Templates folder. + - {k: skeletondirectory, v: ""} + - {k: templatedirectory, v: ""} - {k: loglevel, v: "2", t: integer} - {k: log_rotate_size, v: "10485760", t: integer} - {k: mail_template_class, v: "OCA\\Debyltechmail\\Mail\\DebyltechEMailTemplate"} @@ -605,6 +611,25 @@ # call, so it runs only when the app's files changed or no logo is set yet. # `logo` is the wide wordmark on the login page; `logoheader` is the square # mark in the top bar, where a wordmark would shrink to illegibility. +# Plain theming_debyltech_background instead of Nextcloud's stock blue-shapes +# image. `background backgroundColor` is a special case in UpdateConfig.php +# (absent from --help) that drops the image and sets backgroundMime, exactly +# what the admin UI's "remove background image" does. +- name: use a plain colour login background in debyltech-cloud + become: true + become_user: "{{ podman_user }}" + ansible.builtin.shell: | + set -o pipefail + occ() { podman exec -u www-data debyltech-cloud php occ "$@"; } + if [ "$(occ config:app:get theming backgroundMime || true)" != backgroundColor ]; then + occ theming:config background backgroundColor >/dev/null + echo CHANGED + fi + args: + executable: /bin/bash + register: debyltech_background + changed_when: "'CHANGED' in debyltech_background.stdout" + - name: check debyltech-cloud theming logos become: true become_user: "{{ podman_user }}"