Project

General

Profile

Technical Architecture » History » Version 3

Kusala Tech, 12/15/2025 04:02 AM

1 1 Kusala Tech
# Technical Architecture
2
3
# Architecture
4
5 2 Kusala Tech
<details>
6
<summary>PlantUML Code</summary>
7 3 Kusala Tech
8 1 Kusala Tech
```plantuml
9
@startuml Kusala_Tech_Architecture
10
!theme aws-orange
11
12
skinparam monochrome true
13
skinparam defaultFontName Helvetica
14
skinparam shadowing false
15
16
' === Components ===
17
rectangle "DNS & Email" as dns {
18
  rectangle "name.com" as name_dns #aliceblue
19
  rectangle "Titan Mail" as titan #aliceblue
20
  name_dns -[hidden]-> titan
21
}
22
23
rectangle "Hosting" as hosting {
24
  rectangle "Linode VPS\n(foss-dev)" as linode_vps #moccasin {
25
    rectangle "Docker" as docker {
26
      rectangle "Traefik" as traefik #lightgreen
27
      rectangle "Redmine" as redmine #lightgreen
28
      rectangle "Certbot" as certbot #lightgreen
29
      traefik -[hidden]-> redmine
30
      redmine -[hidden]-> certbot
31
    }
32
  }
33
  rectangle "Linode LKS\n(future)" as linode_lks #moccasin
34
  linode_vps -[hidden]-> linode_lks
35
}
36
37
rectangle "Security" as security {
38
  rectangle "KeePassXC" as keepass #mistyrose {
39
    rectangle "WebDAV Sync\n(self-signed cert)" as webdav #lightgrey
40
  }
41
}
42
43
' === Connections ===
44
name_dns --> titan : "email@kusala.studio\n(IMAP/SMTP manual config)"
45
titan --> linode_vps : "Admin notifications"
46
linode_vps --> name_dns : "DNS records"
47
48
linode_vps --> keepass : "Credential storage"
49
webdav --> linode_vps : "Password sync"
50
51
' === Legend/Notes ===
52
note right of linode_vps
53
  • Single point of failure
54
  • Minimal functional phase
55
  • Limited budget constraints
56
end note
57
58
note right of titan
59
  • IMAP: imap.titan.email
60
  • SMTP: smtp.titan.email
61
  • Requires manual config
62
end note
63
64
note bottom of security
65
  • KeePassXC database
66
  • Sync via WebDAV
67
  • Currently self-signed cert
68
end note
69
70
@enduml
71
```
72 2 Kusala Tech
</details>
73 1 Kusala Tech
74
75
AI Request (TODO - find a way to standardize AI prompts):
76
77
Help me create a PlantUML diagram to reflect the current status of the architecture for Kusala Tech.
78
79
Context:
80
81
- name.com for NS (kusala.studio)
82
- email on Titan Mail (service of name.com)
83
84
  - imap.titan.email
85
  - smtp.titan.email
86
  - NOTE: they need to be configured manually (autodiscovery does not currently work - ref for configuration can be found at: https://support.titan.email/hc/en-us/articles/900000215446-Configure-Titan-on-other-apps-using-IMAP-POP)
87
- Linode VPS (foss-dev)
88
89
  - Note: this is a single point of failure, but there is not anything currently highly critical, and we are in minimal functional phase with limited to no budget.
90
  - Docker
91
92
    - Traefik
93
    - Redmine
94
    - Certbot will be configured for TLS
95
- KeepassXC for password management
96
97
  - Sync over WebDAV
98
99
    - Tested - works nicely (currently self-signed cert)
100
- Linode LKS (for later migration if necessary)