-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharchitecture.plantuml
99 lines (76 loc) · 1.58 KB
/
architecture.plantuml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
@startuml architecture
node nginx
rectangle "Build Pipeline" {
node make [
**make**
]
node make_pull [
**make-pull**
..
//pulls git repo//
//using ssh//
]
node make_build [
**make-build**
..
//builds site using//
//static site generator//
]
node make_publish [
**make-publish**
..
//publishes assets//
//on the IPFS node//
..
//publishes hash of//
//new assets under//
//node's address//
]
database shared [
**shared**
..
//keeps repository data//
//and built assets//
]
database ssh_data [
**ssh-data**
..
//keeps SSH key//
//for authentication//
]
make_pull .. shared
make_build .. shared
make_publish .. shared
make_pull .left. ssh_data
}
node scheduler [
publish
scheduler
]
node ipfs [
IPFS
node
]
cloud ipfs_network [
IPFS network
]
ipfs <==> ipfs_network
database ipfs_data [
ipfs-data
]
ipfs .. ipfs_data
cloud web
cloud github [
GitHub blog
repository
]
nginx <=> web: web traffic
ipfs <=> nginx: proxy requests for\nfiles to IPFS
github -down-> make: trigger on push to repo
make_pull -up-> github: pull new changes
make -left-> make_pull: trigger\nstage 1
make --> make_build: trigger\nstage 2
make --> make_publish: trigger\nstage 3
make_publish -right-> ipfs: publish files +\npublish name
scheduler -down--> make_publish: trigger\nevery 6 hours\nbecause IPNS\nentries expire
@enduml