Deployment
This page describes the way we deployed the application on the university servers. It’s not the only way to do so, but one possible way. It is mostly based on the [Flask Mega Tutorial Part XVII](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvii-deployment-on-linux).
deployment.puml
1 @startuml
2
3 'actor "admin" as externaladmin
4 actor user
5
6
7 interface "HTTP\nport 80\npublic" as 80
8 interface "HTTPS\nport 443\npublic" as 443
9
10frame akademie {
11 component "elastic search" as elastic
12}
13
14frame uhhinternal{
15
16 actor "admin" as internaladmin
17 'actor "user" as internaluser
18
19frame vsphere {
20}
21node tools {
22 component supervisor as supervisortools
23 component gunicorn as gunicorntools
24 component nginx as nginxtools
25 component "formuale-capitains-nemo" as formulaetools
26 'interface "HTTP\nport 8000\nprivate" as 8000tools
27 portin "HTTP\nport 80\npublic" as internal80
28 portin "HTTPS\nport 443\npublic" as internal443
29 database corpora as corporatools
30}
31
32 'internaluser ..> internal80
33 'internaluser ..> internal443
34 'gunicorntools -0)- nginxtools: "HTTP\nport 8000\nprivate"
35 nginxtools --> gunicorntools: "forward to"
36 nginxtools -- internal443
37 nginxtools -- internal80
38
39 supervisortools --> gunicorntools : controls
40 'internaladmin --> supervisortools : manages
41
42 'gunicorntools -- 8000tools
43 'nginxtools ..> 8000tools : forwards to
44
45 gunicorntools --> formulaetools : serves
46 formulaetools --> corporatools: uses
47
48}
49 node werkstatt {
50 component supervisor
51 component varnish
52 component gunicorn
53 component nginx
54 component "formuale-capitains-nemo" as formulae
55 interface "HTTP\nport 8000\nprivate" as 8000
56 database corpora
57 }
58
59 formulae --> elastic: uses
60 formulaetools --> elastic: uses
61
62
63 nginx --> varnish: forward to 8080
64
65 'internaladmin --> tools
66 'internaladmin --> werkstatt
67 'internaladmin --> vsphere
68
69 vsphere --> werkstatt: controls
70 vsphere --> tools: controls
71
72 'formulae --> formulaetools: "beta version of"
73
74 'server -- 80
75 'server -- 443
76
77 'user ..> 80 : use
78 'user ..> 443 : use
79
80 nginx -- 443
81 nginx -- 80
82
83 supervisor --> gunicorn : controls
84 'externaladmin --> supervisor : manages
85
86 gunicorn -- 8000
87 nginx ..> 8000 : forwards to
88
89 gunicorn --> formulae : serves
90 formulae --> corpora: uses
91
92 @enduml