add ascii communication diagram
All checks were successful
Build Container / Build Container (push) Successful in 4m16s

This commit is contained in:
lilly 2026-11-09 11:42:12 +01:00
commit 81ec8ffc77
Signed by: lilly
SSH key fingerprint: SHA256:y9T5GFw2A20WVklhetIxG1+kcg/Ce0shnQmbu1LQ37g

View file

@ -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.