@startuml

title "Development Mode - LEMP"

cloud "Exposed Ports" {
    () XX080 as SymfonyDevModePort
    () XX081 as SymfonyProdModePort
    () XX082 as SymfonyProdModeVarnishPort

    () XX083 as MemcacheAdminPort
    () XX983 as SorlPort
    () XX084 as DatabaseAdminPort
    () XX306 as DatabaseEnginePort
    () XX180 as MailcatcherPort
}

node "nginx" {
    [PROD]
    [DEV]
    }

node "Engine" as engine {
    [PHP-FPM] as PhpFPM
    [PHP-CLI] as PhpCli
}

node "MySQL or MariaDB" as db {
    database "ezplatform" as StandardDB
}

node "Memcache/Redis" as appcache {
}

node "Varnish 4.x" as varnish {
}

node "Memcache/Redis Admin" as memcacheadmin {
}

node "Mailcatcher" as mailcatcher {
}

node "Adminer" as dbadmin {
}

node "Solr" as solr {
}

MemcacheAdminPort -> memcacheadmin: Web Interface
DatabaseEnginePort ---> db: TCP forward
MailcatcherPort -> mailcatcher: Web Interface
DatabaseAdminPort -> dbadmin: Web Interface
SorlPort -> solr

SymfonyDevModePort --> DEV: Web
SymfonyProdModePort --> PROD: Web
SymfonyProdModeVarnishPort --> varnish: Web
varnish --> PROD

DEV --> PhpFPM
PROD --> PhpFPM

engine -up--> db
engine --> appcache
engine --> mailcatcher
engine ---> solr

memcacheadmin --> appcache
dbadmin --> db

@enduml
