Project

General

Profile

Technical Architecture » History » Revision 5

Revision 4 (Kusala Tech, 12/15/2025 04:03 AM) → Revision 5/9 (Kusala Tech, 12/15/2025 04:04 AM)

# Technical Architecture 

 # Architecture 
 ![Kusala Tech Architecture](kt-architecture.svg) ![]() 

 <details> 
 <summary>PlantUML Code</summary> 

 ```plantuml 
 @startuml Kusala_Tech_Architecture 
 !theme aws-orange 

 skinparam monochrome true 
 skinparam defaultFontName Helvetica 
 skinparam shadowing false 

 ' === Components === 
 rectangle "DNS & Email" as dns { 
   rectangle "name.com" as name_dns #aliceblue 
   rectangle "Titan Mail" as titan #aliceblue 
   name_dns -[hidden]-> titan 
 } 

 rectangle "Hosting" as hosting { 
   rectangle "Linode VPS\n(foss-dev)" as linode_vps #moccasin { 
     rectangle "Docker" as docker { 
       rectangle "Traefik" as traefik #lightgreen 
       rectangle "Redmine" as redmine #lightgreen 
       rectangle "Certbot" as certbot #lightgreen 
       traefik -[hidden]-> redmine 
       redmine -[hidden]-> certbot 
     } 
   } 
   rectangle "Linode LKS\n(future)" as linode_lks #moccasin 
   linode_vps -[hidden]-> linode_lks 
 } 

 rectangle "Security" as security { 
   rectangle "KeePassXC" as keepass #mistyrose { 
     rectangle "WebDAV Sync\n(self-signed cert)" as webdav #lightgrey 
   } 
 } 

 ' === Connections === 
 name_dns --> titan : "email@kusala.studio\n(IMAP/SMTP manual config)" 
 titan --> linode_vps : "Admin notifications" 
 linode_vps --> name_dns : "DNS records" 

 linode_vps --> keepass : "Credential storage" 
 webdav --> linode_vps : "Password sync" 

 ' === Legend/Notes === 
 note right of linode_vps 
   • Single point of failure 
   • Minimal functional phase 
   • Limited budget constraints 
 end note 

 note right of titan 
   • IMAP: imap.titan.email 
   • SMTP: smtp.titan.email 
   • Requires manual config 
 end note 

 note bottom of security 
   • KeePassXC database 
   • Sync via WebDAV 
   • Currently self-signed cert 
 end note 

 @enduml 
 ``` 
 </details> 
 ‍ 

 AI Request (TODO - find a way to standardize AI prompts): 

 Help me create a PlantUML diagram to reflect the current status of the architecture for Kusala Tech. 

 Context: 

 - name.com for NS (kusala.studio) 
 - email on Titan Mail (service of name.com) 

   - imap.titan.email 
   - smtp.titan.email 
   - 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) 
 - Linode VPS (foss-dev) 

   - 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. 
   - Docker 

     - Traefik 
     - Redmine 
     - Certbot will be configured for TLS 
 - KeepassXC for password management 

   - Sync over WebDAV 

     - Tested - works nicely (currently self-signed cert) 
 - Linode LKS (for later migration if necessary)