From 379aa7c451f525d1f99e35acf7eb3fea51840459 Mon Sep 17 00:00:00 2001
From: lilly
Date: Tue, 11 Aug 2026 16:20:08 +0200
Subject: [PATCH] add configuration required for dooris -> spaceapid
integration
---
inventories/z9/host_vars/dooris.sops.yaml | 7 ++++---
inventories/z9/host_vars/dooris.yaml | 2 ++
roles/dooris/README.md | 3 +++
roles/dooris/meta/argument_specs.yml | 15 +++++++++++++++
roles/dooris/templates/compose.yaml.j2 | 3 +++
5 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/inventories/z9/host_vars/dooris.sops.yaml b/inventories/z9/host_vars/dooris.sops.yaml
index 9620b05..1395425 100644
--- a/inventories/z9/host_vars/dooris.sops.yaml
+++ b/inventories/z9/host_vars/dooris.sops.yaml
@@ -1,6 +1,7 @@
dooris__static_api_token: ENC[AES256_GCM,data:pXmjn36FnOwA7fWAd3Go4W1CiMeRbbAiquj9KI/pQEDy1qDuobBbBft25m3uSAo6VI02PW2oZ4koY8uoPDUwNA==,iv:TNaZjwGBHvIbmF7VPIOo5mYzH1NEIyKIgjzkrobNCoI=,tag:4dHZepMxUGcvBYEp0kNwYQ==,type:str]
dooris__openid_client_secret: ENC[AES256_GCM,data:PqmtHR6LCGXcK5dyqKihUqU6+lydW0mJf7kMMf41qh4=,iv:ZjIl8jwB2lfJHjwcDEFFCbafMBnpzkccxBvvsjg+ia8=,tag:+eCnr9ojv9uUoO9k5khY6w==,type:str]
dooris__ccujack_password: ENC[AES256_GCM,data:FBbrdoQRdVZ+1n8WZg42jZz/xvQ=,iv:GLuen+LiB4MrvU71gEdVYWbdHKaDcEKify3vPePuoO0=,tag:nuqkP0cJLsvNAieWDNY3HA==,type:str]
+dooris__spaceapid_password: ENC[AES256_GCM,data:3MLPzV7NxvOLQSHoBgPdR1WeGGhDZVnxDHDNviPseOQDkFkqUXFGPtfPQqI/pjs0VV607ehw+SfF3T8tMhorgA==,iv:U5j0SmM9rNsQTSxuLSiuG6zyMxVjfdNnu9BPXcaDjko=,tag:glvUmu79iCFEXmGDvm7Vuw==,type:str]
dooris__acmedns:
subdomain: ENC[AES256_GCM,data:XncJZ7qT51dLSkvfIc0Nc3SFxK1y/ip1cO4HA9CJMFtQy+mP,iv:mgwfx0QMzHadvUDZDYCzsiP1Oh+P/5DekbZ4M6y08t4=,tag:4oyXvAJEOFlw7wrrrhwspQ==,type:str]
apiUser: ENC[AES256_GCM,data:YLhXPrrts+JtwRMLrU2oM8hLTiFvZuqrlLrNKtgoL8IUdTxe,iv:L2R0YNRNoMuWGMYvgwRLP0RZwxqmMfQL4REyMX6VIuo=,tag:LegIPuVqMcxpIL1ZksIgbg==,type:str]
@@ -17,8 +18,8 @@ sops:
aHvFML6xynRtBrMsp9IebicBxZKSWLi7uHi+LuAzkIcqpAlJUUBAbg==
-----END AGE ENCRYPTED FILE-----
recipient: age1j0876shgsn7f2thxh9kx9x5uwnh45z6sy2jlk2qz5jhgedm26g5srn9kax
- lastmodified: "2026-07-29T12:14:25Z"
- mac: ENC[AES256_GCM,data:rBtCeee53GXl+upHXGP4TTpUvszMzV0r1eQqzE7jG3WP/ywqfWqsM+sp3124wQzHTZoMxJc0m95YAseSdA+7EFSAQPRRdpfzMxTpoKQBFHS0BfgM/14ppB+kDER1ucNKT521+PyOjbmB86ovTc8MfR2vsHDZ+FrIopUGzPpcBPs=,iv:JiSoJxPt9JW/kWy0aVz6jGNOoQPkZKG/vTkdis/fKSo=,tag:0V6hicsuT6/qLjGb/+fJPw==,type:str]
+ lastmodified: "2026-08-11T14:12:13Z"
+ mac: ENC[AES256_GCM,data:yFvVk8J3Kjf7hYQ5E7tN0Dpa8943n2OLcVKEQWcyMFrl991cYjpti+a766Bx79KgaBqSW70E7Y13KfdXw0wpETte+KwpXEmlh54/3UihdvcavcH0ep7zZhyXEtoBfDTKoFMkvDgmQbljnOOWbWpW0X60lyWe0/xHIHJonlZ7PuY=,iv:9HdGaa4CXKJfI7LgY7oSsLU0VPZZ+dSW+k1s9v5xZkk=,tag:g4BSo09RAslC3H1djw6B2Q==,type:str]
pgp:
- created_at: "2026-05-20T02:08:48Z"
enc: |-
@@ -191,4 +192,4 @@ sops:
-----END PGP MESSAGE-----
fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49
unencrypted_suffix: _unencrypted
- version: 3.13.2
+ version: 3.13.3
diff --git a/inventories/z9/host_vars/dooris.yaml b/inventories/z9/host_vars/dooris.yaml
index 1423192..3f786ac 100644
--- a/inventories/z9/host_vars/dooris.yaml
+++ b/inventories/z9/host_vars/dooris.yaml
@@ -1,5 +1,7 @@
dooris__hostname: "dooris.ccchh.net"
dooris__openid_client_id: "dooris"
dooris__ccujack_user: "dooris"
+dooris__spaceapid_user: "dooris"
+dooris__main_lock: ~ # add "Hautpraum" once we have built it
certbot__acme_account_email_address: le-admin@hamburg.ccc.de
diff --git a/roles/dooris/README.md b/roles/dooris/README.md
index f868b1d..6b7efa2 100644
--- a/roles/dooris/README.md
+++ b/roles/dooris/README.md
@@ -11,6 +11,9 @@ For an exact description of host requirements, see the README of dooris itself.
- `dooris__openid_client_id`: Client-ID in CCCHH ID for dooris
- `dooris__openid_client_secret`: Client-Secret in CCCHH ID for dooris
- `dooris__static_api_token`: A static token that is valid on the servers API and can operate locks
+- `dooris__spaceapid_user`: Username for authentication against our spaceapid
+- `dooris__spaceapid_password`: Password for authentication against our spaceapid
+- `dooris__main_lock`: Name or ID of the main lock whose status gets pushed to spaceapid
- `dooris__acmedns`: Configuration of ACMEDNS domain + credentials for dooris.
Must be a dict with keys `subdomain`, `apiUser`, `apiKey` which are shown when creating a domain in ACMEDNS.
diff --git a/roles/dooris/meta/argument_specs.yml b/roles/dooris/meta/argument_specs.yml
index 134292d..01f7ea2 100644
--- a/roles/dooris/meta/argument_specs.yml
+++ b/roles/dooris/meta/argument_specs.yml
@@ -31,6 +31,21 @@ argument_specs:
required: true
type: str
+ dooris__spaceapid_user:
+ description: "Username for authentication against out spaceapid"
+ required: true
+ type: str
+
+ dooris__spaceapid_password:
+ description: "Password for authentication against out spaceapid"
+ required: true
+ type: str
+
+ dooris__main_lock:
+ description: "Name or ID of the main lock whose status gets pushed to spaceapid"
+ required: true
+ type: str
+
dooris__acmedns:
description: "Configuration of ACMEDNS domain + credentials for dooris"
required: true
diff --git a/roles/dooris/templates/compose.yaml.j2 b/roles/dooris/templates/compose.yaml.j2
index 2bb5e82..2a39b42 100644
--- a/roles/dooris/templates/compose.yaml.j2
+++ b/roles/dooris/templates/compose.yaml.j2
@@ -11,6 +11,9 @@ services:
DOORIS_CCUJACK_PASSWORD: "{{ dooris__ccujack_password }}"
DOORIS_AUTHORIZED_KEYS_FILE: "/srv/state/dooris_authorized_keys"
DOORIS_STATIC_API_TOKENS: "{{ dooris__static_api_token }}"
+ DOORIS_SPACEAPID_USER: "{{ dooris__spaceapid_user }}"
+ DOORIS_SPACEAPID_PASSWORD: "{{ dooris__spaceapid_password }}"
+ DOORIS_MAIN_LOCK: "{{ dooris__main_lock }}"
network_mode: host
restart: unless-stopped
volumes: