Technical Architecture » History » Version 5
Kusala Tech, 12/15/2025 04:04 AM
| 1 | 1 | Kusala Tech | # Technical Architecture |
|---|---|---|---|
| 2 | |||
| 3 | # Architecture |
||
| 4 | 5 | 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) |