@startuml
skinparam linetype ortho
skinparam ranksep 150
skinparam nodesep 50
top to bottom direction

frame "Exemple de déploiement mono-noeud" as ExampleSimpleNode {
    
    actor "Navigateur Web" as WebNavigator
    
    node "Serveur Bouncer" as BouncerServer {
        actor "CLI d'administration" as AdminCLI

        database "Redis" as RedisDatabase

        component "bouncer-proxy" as  BouncerProxyService
        component "bouncer-admin" as BouncerAdminService
        
        folder "/etc/bouncer" as BouncerConfigFolder      
    }

    node "Serveur distant" as RemoteServer {
        component "Site Web" as RemoteWebsite
    }

    WebNavigator --down0)- BouncerProxyService: "TCP/80 (HTTP)"
    AdminCLI -0)- BouncerAdminService: "TCP/8081 (HTTP)"

    BouncerProxyService -down0)-- RemoteWebsite: "TCP/80 (HTTP)\nTCP/443 (HTTPS)"

    BouncerAdminService .down.> RedisDatabase: reads/writes
    BouncerProxyService .down.> RedisDatabase: reads

    BouncerAdminService ..> BouncerConfigFolder: uses
    BouncerProxyService ..> BouncerConfigFolder: uses

@enduml