Project

General

Profile

Technical Architecture » History » Version 9

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

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