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