55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
@startuml OmagaV v2 deployment
|
|
!include <C4/C4_Container>
|
|
|
|
' 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 |