flowchart TD;
classDef volume fill:#dddddd,stroke:#333,stroke-width:1px
classDef external fill:#eeeebb
classDef folder fill:#bbeeee
subgraph app["app <small>(Single VM)</small>"]
ropewiki_db
click ropewiki_db "https://github.com/RopeWiki/app/tree/master/database" "MySQL database with non-file site data"
ropewiki_webserver
click ropewiki_webserver "https://github.com/RopeWiki/app/tree/master/webserver" "MediaWiki server and file-based site data/uploads"
ropewiki_reverse_proxy
click ropewiki_reverse_proxy "https://github.com/RopeWiki/app/tree/master/reverse_proxy" "TLS termination and redirects"
ropewiki_backup_manager
click ropewiki_backup_manager "https://github.com/RopeWiki/app/tree/master/backup_manager" "Exposes site data for backup"
ropewiki_mailserver
click ropewiki_mailserver "https://github.com/RopeWiki/app/tree/master/mailserver" "SMTP relay server to send email"
ropewiki_database_storage@{shape:cyl}
class ropewiki_database_storage volume
ropewiki_proxy_certs@{shape:cyl}
class ropewiki_proxy_certs volume
ropewiki_proxy_logs@{shape:cyl}
class ropewiki_proxy_logs volume
ropewiki_backup_ssh@{shape:cyl}
class ropewiki_backup_ssh volume
images["/rw/mount/images"]@{shape:cyl}
class images folder
sqlbackup["/rw/mount/sqlbackup"]@{shape:cyl}
class sqlbackup folder
end
Internet["Public Internet"]
class Internet external
backupreader["<code>backupreader</code> users"]
class backupreader external
click backupreader "https://github.com/RopeWiki/app/tree/master/backup_manager/pubkeys"
GMail
class GMail external
luca_server["luca server<br>(Windows VM)"]
click luca_server "https://github.com/RopeWiki/RWServer"
class luca_server external
ropewiki_webserver -- MySQL 3306 --> ropewiki_db -- /var/lib/mysql --> ropewiki_database_storage
ropewiki_webserver -- /usr/share/nginx/html/ropewiki/images --> images
ropewiki_webserver -- SMTP 25 --> ropewiki_mailserver -- TLS SMTP 587 --> GMail
ropewiki_reverse_proxy -- HTTP 80 --> ropewiki_webserver
ropewiki_reverse_proxy -- HTTP 80<br>/luca/* --> luca_server
Internet -- HTTP 8080 --> ropewiki_webserver
Internet -- HTTPS 443 --> ropewiki_reverse_proxy
Internet -- HTTP 80 --> ropewiki_reverse_proxy
backupreader -- SSH 22001 --> ropewiki_backup_manager -- MySQL 3306 --> ropewiki_db
ropewiki_backup_manager -- mysqldump --> sqlbackup --> ropewiki_backup_manager
images --> ropewiki_backup_manager
ropewiki_backup_manager -- /etc/ssh --> ropewiki_backup_ssh
ropewiki_reverse_proxy -- /etc/letsencrypt --> ropewiki_proxy_certs
ropewiki_reverse_proxy -- /logs --> ropewiki_proxy_logs
subgraph Legend
Container["docker container"]
Volume["docker-managed volume"]
class Volume volume
Folder["Folder on host machine"]
class Folder folder
end