Project

General

Profile

Technical Architecture » History » Version 2

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