From: Andreas Glashauser Date: Sun, 6 Apr 2025 20:17:06 +0000 (+0200) Subject: ADDED: states for setting up an element matrix client X-Git-Url: https://git.andreasglashauser.com/?a=commitdiff_plain;h=742a648590f4f5bf4d2c91064f7900dc5dcda749;p=salt-qubes.git ADDED: states for setting up an element matrix client --- diff --git a/element/element--configure-package-manager.sls b/element/element--configure-package-manager.sls new file mode 100644 index 0000000..73900f9 --- /dev/null +++ b/element/element--configure-package-manager.sls @@ -0,0 +1,20 @@ +{% if grains['id'] == 'template-element' %} + +element--gpg-key: + file.managed: + - name: /usr/share/keyrings/element-io-archive-keyring.gpg + - source: salt://element/files/element-io-archive-keyring.gpg + - user: root + - group: root + - mode: 644 + +element--apt-repo: + pkgrepo.managed: + - name: deb [arch=amd64 signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian default main + - humanname: Element Repository + - file: /etc/apt/sources.list.d/element-io.list + - refresh: True + - require: + - file: element--gpg-key + +{% endif %} diff --git a/element/element--create-qube.sls b/element/element--create-qube.sls new file mode 100644 index 0000000..6ab44a1 --- /dev/null +++ b/element/element--create-qube.sls @@ -0,0 +1,20 @@ +{% if grains['id'] == 'dom0' %} + +element--create-qube: + qvm.vm: + - name: q-element + - present: + - template: template-element + - label: yellow + - prefs: + - label: yellow + - audiovm: sys-audio + - guivm: dom0 + - netvm: sys-vpn-mullvad + - features: + - set: + - menu-items: element-desktop.desktop + - require: + - qvm: element--create-template + +{% endif %} diff --git a/element/element--create-template.sls b/element/element--create-template.sls new file mode 100644 index 0000000..470fb70 --- /dev/null +++ b/element/element--create-template.sls @@ -0,0 +1,26 @@ +{% import "templates/versions.jinja" as version %} + +include: + - templates.templates--install-debian-minimal + +{% if grains['id'] == 'dom0' %} + +element--create-template: + qvm.clone: + - name: template-element + - source: debian-{{ version.debian }}-minimal + - class: TemplateVM + - require: + - qvm: templates--install-debian-{{ version.debian }}-minimal + +element--create-template-prefs: + qvm.prefs: + - name: template-element + - label: yellow + - audiovm: + - guivm: + - netvm: + - require: + - qvm: element--create-template + +{% endif %} diff --git a/element/element--install-packages.sls b/element/element--install-packages.sls new file mode 100644 index 0000000..a860f22 --- /dev/null +++ b/element/element--install-packages.sls @@ -0,0 +1,13 @@ +{% if grains['id'] == 'template-element' %} + +element--install-packages: + pkg.installed: + - refresh: True + - pkgs: + - qubes-core-agent-networking + - qubes-app-shutdown-idle + - element-desktop + - require: + - pkgrepo: element--apt-repo + +{% endif %} diff --git a/element/files/element-io-archive-keyring.gpg b/element/files/element-io-archive-keyring.gpg new file mode 100644 index 0000000..3a61810 Binary files /dev/null and b/element/files/element-io-archive-keyring.gpg differ diff --git a/element/init.sls b/element/init.sls new file mode 100644 index 0000000..6792d3c --- /dev/null +++ b/element/init.sls @@ -0,0 +1,5 @@ +include: + - element.element--create-template + - element.element--configure-package-manager + - element.element--install-packages + - element.element--create-qube