From 81ec8ffc770ed805243820d3adced975a88bd2c0 Mon Sep 17 00:00:00 2001
From: lilly
Date: Mon, 9 Nov 2026 11:42:12 +0100
Subject: [PATCH] add ascii communication diagram
---
README.md | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/README.md b/README.md
index 03e970d..d576019 100644
--- a/README.md
+++ b/README.md
@@ -51,6 +51,31 @@ The appliction is implemented using the following different components:
- When a user logs in with the `dooris` user now, they are always dropped into the `ssh-cli` binary. This works in cases where a command is specified on the users cli or where it isn't.
In any case, the `ssh-cli` binary interprets the given command (via the `SSH_ORIGINAL_COMMAND` environment variable), figures out what to do, and contacts the running API with the configured credentials to do it.
+### Communication Diagram
+
+```text
+┌─────────────────┐ ┏━━━━━━━━━━━━━━┓
+│ web browser │ ┃ dooris-api ┃
+├┈┈┈┈┈┈┈with┈┈┈┈┈┈┤ ┣┉┉┉┉┉with┉┉┉┉┉┫ ┌──────────┐
+│ dooris-frontend │ ╌ ╌ ⇆ ╌ ╌ ┃ http server ┃ ╭ ╌ ╌ → ╌ ╌ │ SpaceApi │
+└─────────────────┘ ╭╌ ┃ ┃ ╎ └──────────┘
+ ╎ ┣┉┉┉┉┉and┉┉┉┉┉┉┫ ╎ ┌───────────┐ ┌───────────┐ ┌──────────┐
+ ╎ ┃ http client ┃ ╯ ╭╌ ⇆ ╌ ╌ │ homematic │ ╌ ⇆ ╌ │ homematic │ ╌ ⇆ ╌ │ physical │
+ ╎ ┃ ┃ ╌╌ ╯ ╭ ← ╌ │ ccujack │ │ daemon │ │ lock │
+ ⇅ ┣┉┉┉┉┉and┉┉┉┉┉┉┫ ╎ └───────────┘ └───────────┘ └──────────┘
+ ╎ ┃ mqtt client ┃╌ ← ╌ ╯ ┌────────────────┐
+ ╎ ┃ ┃ ╌ ╌ ╌ → ╌ ╌ │ Club-Assistant │
+ ╎ ┗━━━━━━━━━━━━━━┛ └────────────────┘
+ ╎
+ ╰ ╌ ╌ ╌ ╌ ╌ ⇄ ╌ ╌ ╌ ╌ ╮
+┌────────────┐ ┌──────────────────┐ ╎
+│ SSH client │ ╌ ╌ ╌ ⇆ ╌ ╌ ╌│ dooris "ssh-cli" │ ╯
+└────────────┘ └──────────────────┘
+```
+
+- Boxes indicate a discrete daemon or running piece of software. Those sometimes include subcomponents of that daemon for clarity.
+- Dotted connections indicate information flow while the arrows indicate the direction of that flow
+
## Configuration
The final application can be configured either via CLI arguments or via environment variables.