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