diff --git a/c2-deployment.puml b/c2-deployment.puml new file mode 100644 index 0000000..d2e46d2 --- /dev/null +++ b/c2-deployment.puml @@ -0,0 +1,55 @@ +@startuml OmagaV v2 deployment +!include + +' Define output quality +skinparam dpi 300 + +' Define the user roles +Person(BoardMember, "Styremedlem", "Prøvemedlem, Noechelmedlem, eller aktiv Pang!") +Person_Ext(NormalMember, "Medlem", "Normale, ikke-styre medlemmer") + + +' Define website services +System_Boundary(SiteServer, "Website VM") { + Container(ReverseProxy, "Reverse Proxy", "Nginx Proxy Manager", "SSL Termination and forwarding to correct server") + System_Boundary(ApacheBoundary, "Apache web server") { + Container(Apache, "Apache webserver", "Webserver hosting the websites") + Container(PublicSite, "Public site", "/var/www/public", "Public website, statically generated") + Container(InternalSite, "Intranett", "/var/www/intranett", "Intranett website") + Container(ApiDoc, "API Documentation", "/var/www/doc", "Interactive HTML REST API Documentation") + } + Container(ApiServer, "REST API Server", "Rocket.rs", "Server that handles all data and interacts with DB") + ContainerDb(DB, "Database", "SQLite3") +} + +' Define SSO services +System_Boundary(Inept, "SSO VM") { + Container(SSO, "SSO Server", "Authentik") +} + +' Define user connections +Rel(BoardMember, ReverseProxy, "Uses", "HTTPS") +Rel(BoardMember, SSO, "Uses", "HTTPS") +Rel(NormalMember, ReverseProxy, "Uses", "HTTPS") + +' Define reverse proxy connections +Rel(ReverseProxy, ApiServer, "Forwards", "HTTP") +Rel(ReverseProxy, Apache, "Uses", "HTTP") + +' Defines apache serve routes +Rel(Apache, ApiDoc, "Serves", "localhost:8082") +Rel(Apache, PublicSite, "Serves", "localhost:8081") +Rel(Apache, InternalSite, "Serves", "localhost:8080") + + +' Define the API server connections +Rel(ApiServer, SSO, "Uses", "HTTPS") +Rel(ApiServer, DB, "Uses", "SQL") + +' Alignment and layout +Lay_R(SSO, ApiServer) +Lay_R(InternalSite, ApiServer) +Lay_R(PublicSite, ApiServer) + + +@enduml \ No newline at end of file