Project

General

Profile

Technical Architecture » History » Version 4

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

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