underpost 3.2.5 → 3.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/.github/workflows/release.cd.yml +1 -2
  2. package/CHANGELOG.md +351 -1
  3. package/CLI-HELP.md +40 -13
  4. package/Dockerfile +0 -4
  5. package/README.md +4 -4
  6. package/bin/build.js +14 -5
  7. package/bin/deploy.js +570 -1
  8. package/bin/file.js +6 -0
  9. package/conf.js +11 -2
  10. package/jsconfig.json +1 -1
  11. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
  12. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
  13. package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
  14. package/manifests/deployment/dd-test-development/deployment.yaml +136 -66
  15. package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
  16. package/package.json +24 -15
  17. package/scripts/k3s-node-setup.sh +2 -2
  18. package/scripts/nat-iptables.sh +103 -18
  19. package/src/api/core/core.controller.js +10 -10
  20. package/src/api/core/core.service.js +10 -10
  21. package/src/api/default/default.controller.js +10 -10
  22. package/src/api/default/default.service.js +10 -10
  23. package/src/api/document/document.controller.js +12 -12
  24. package/src/api/document/document.model.js +10 -16
  25. package/src/api/file/file.controller.js +8 -8
  26. package/src/api/file/file.model.js +10 -10
  27. package/src/api/file/file.service.js +36 -36
  28. package/src/api/test/test.controller.js +8 -8
  29. package/src/api/test/test.service.js +8 -8
  30. package/src/api/user/guest.service.js +99 -0
  31. package/src/api/user/user.controller.js +6 -6
  32. package/src/api/user/user.model.js +8 -13
  33. package/src/api/user/user.service.js +3 -20
  34. package/src/cli/cluster.js +61 -14
  35. package/src/cli/db.js +47 -2
  36. package/src/cli/deploy.js +67 -35
  37. package/src/cli/fs.js +79 -8
  38. package/src/cli/image.js +43 -1
  39. package/src/cli/index.js +26 -1
  40. package/src/cli/release.js +57 -1
  41. package/src/cli/repository.js +69 -31
  42. package/src/cli/run.js +415 -36
  43. package/src/cli/ssh.js +1 -1
  44. package/src/cli/static.js +43 -115
  45. package/src/client/Default.index.js +21 -33
  46. package/src/client/components/core/404.js +4 -4
  47. package/src/client/components/core/500.js +4 -4
  48. package/src/client/components/core/Account.js +73 -60
  49. package/src/client/components/core/AgGrid.js +23 -33
  50. package/src/client/components/core/Alert.js +12 -13
  51. package/src/client/components/core/AppStore.js +1 -1
  52. package/src/client/components/core/Auth.js +35 -37
  53. package/src/client/components/core/Badge.js +7 -13
  54. package/src/client/components/core/BtnIcon.js +15 -17
  55. package/src/client/components/core/CalendarCore.js +42 -63
  56. package/src/client/components/core/Chat.js +13 -15
  57. package/src/client/components/core/ClientEvents.js +87 -0
  58. package/src/client/components/core/ColorPaletteElement.js +309 -0
  59. package/src/client/components/core/Content.js +17 -14
  60. package/src/client/components/core/Css.js +15 -71
  61. package/src/client/components/core/CssCore.js +12 -16
  62. package/src/client/components/core/D3Chart.js +4 -4
  63. package/src/client/components/core/Docs.js +64 -91
  64. package/src/client/components/core/DropDown.js +69 -91
  65. package/src/client/components/core/EventBus.js +92 -0
  66. package/src/client/components/core/EventsUI.js +14 -17
  67. package/src/client/components/core/FileExplorer.js +96 -228
  68. package/src/client/components/core/FullScreen.js +47 -75
  69. package/src/client/components/core/Input.js +24 -69
  70. package/src/client/components/core/Keyboard.js +25 -18
  71. package/src/client/components/core/KeyboardAvoidance.js +145 -0
  72. package/src/client/components/core/LoadingAnimation.js +25 -31
  73. package/src/client/components/core/LogIn.js +41 -41
  74. package/src/client/components/core/LogOut.js +23 -14
  75. package/src/client/components/core/Modal.js +462 -178
  76. package/src/client/components/core/NotificationManager.js +14 -18
  77. package/src/client/components/core/Panel.js +54 -50
  78. package/src/client/components/core/PanelForm.js +25 -125
  79. package/src/client/components/core/Polyhedron.js +110 -214
  80. package/src/client/components/core/PublicProfile.js +39 -32
  81. package/src/client/components/core/Recover.js +48 -44
  82. package/src/client/components/core/Responsive.js +88 -32
  83. package/src/client/components/core/RichText.js +9 -18
  84. package/src/client/components/core/Router.js +24 -3
  85. package/src/client/components/core/SearchBox.js +37 -37
  86. package/src/client/components/core/SignUp.js +39 -30
  87. package/src/client/components/core/SocketIo.js +31 -2
  88. package/src/client/components/core/SocketIoHandler.js +6 -6
  89. package/src/client/components/core/ToggleSwitch.js +8 -20
  90. package/src/client/components/core/ToolTip.js +5 -17
  91. package/src/client/components/core/Translate.js +56 -59
  92. package/src/client/components/core/Validator.js +26 -16
  93. package/src/client/components/core/Wallet.js +15 -26
  94. package/src/client/components/core/Worker.js +163 -27
  95. package/src/client/components/core/windowGetDimensions.js +7 -7
  96. package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
  97. package/src/client/components/default/CssDefault.js +12 -12
  98. package/src/client/components/default/LogInDefault.js +6 -4
  99. package/src/client/components/default/LogOutDefault.js +6 -4
  100. package/src/client/components/default/RouterDefault.js +47 -0
  101. package/src/client/components/default/SettingsDefault.js +4 -4
  102. package/src/client/components/default/SignUpDefault.js +6 -4
  103. package/src/client/components/default/TranslateDefault.js +3 -3
  104. package/src/client/services/core/core.service.js +17 -49
  105. package/src/client/services/default/default.management.js +159 -267
  106. package/src/client/services/default/default.service.js +10 -16
  107. package/src/client/services/document/document.service.js +14 -19
  108. package/src/client/services/file/file.service.js +8 -13
  109. package/src/client/services/test/test.service.js +8 -13
  110. package/src/client/services/user/guest.service.js +86 -0
  111. package/src/client/services/user/user.management.js +5 -5
  112. package/src/client/services/user/user.service.js +14 -20
  113. package/src/client/ssr/body/404.js +3 -3
  114. package/src/client/ssr/body/500.js +3 -3
  115. package/src/client/ssr/body/CacheControl.js +5 -2
  116. package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
  117. package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
  118. package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
  119. package/src/client/ssr/offline/Maintenance.js +12 -11
  120. package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
  121. package/src/client/ssr/pages/Test.js +2 -2
  122. package/src/client/sw/core.sw.js +212 -0
  123. package/src/index.js +1 -1
  124. package/src/runtime/express/Dockerfile +4 -4
  125. package/src/runtime/lampp/Dockerfile +8 -7
  126. package/src/runtime/wp/Dockerfile +11 -17
  127. package/src/server/client-build-docs.js +45 -46
  128. package/src/server/client-build.js +334 -60
  129. package/src/server/client-formatted.js +47 -16
  130. package/src/server/conf.js +5 -4
  131. package/src/server/data-query.js +32 -20
  132. package/src/server/dns.js +22 -0
  133. package/src/server/ipfs-client.js +232 -91
  134. package/src/server/process.js +13 -27
  135. package/src/server/start.js +17 -3
  136. package/src/server/valkey.js +141 -235
  137. package/tsconfig.docs.json +15 -0
  138. package/typedoc.json +29 -0
  139. package/jsdoc.json +0 -52
  140. package/src/client/components/core/ColorPalette.js +0 -5267
  141. package/src/client/components/core/JoyStick.js +0 -80
  142. package/src/client/components/default/RoutesDefault.js +0 -49
  143. package/src/client/sw/default.sw.js +0 -127
  144. package/src/client/sw/template.sw.js +0 -84
@@ -23,7 +23,7 @@ spec:
23
23
  spec:
24
24
  containers:
25
25
  - name: dd-cron-dns
26
- image: underpost/underpost-engine:v3.2.5
26
+ image: underpost/underpost-engine:v3.2.9
27
27
  command:
28
28
  - /bin/sh
29
29
  - -c
@@ -42,7 +42,7 @@ spec:
42
42
  type: Directory
43
43
  name: underpost-cron-container-volume
44
44
  - hostPath:
45
- path: /root/.nvm/versions/node/v24.10.0/lib/node_modules/underpost
45
+ path: /root/.nvm/versions/node/v24.15.0/lib/node_modules/underpost
46
46
  type: DirectoryOrCreate
47
47
  name: underpost-share-env
48
48
  restartPolicy: OnFailure
@@ -17,7 +17,7 @@ spec:
17
17
  spec:
18
18
  containers:
19
19
  - name: dd-default-development-blue
20
- image: localhost/rockylinux9-underpost:v3.2.5
20
+ image: underpost/underpost-engine:v3.2.9
21
21
  # resources:
22
22
  # requests:
23
23
  # memory: "124Ki"
@@ -29,8 +29,6 @@ spec:
29
29
  - /bin/sh
30
30
  - -c
31
31
  - >
32
- npm install -g npm@11.2.0 &&
33
- npm install -g underpost &&
34
32
  cd $(underpost root)/underpost &&
35
33
  node bin new --default-conf --conf-workflow-id template &&
36
34
  mkdir -p /home/dd &&
@@ -100,7 +98,7 @@ spec:
100
98
  spec:
101
99
  containers:
102
100
  - name: dd-default-development-green
103
- image: localhost/rockylinux9-underpost:v3.2.5
101
+ image: underpost/underpost-engine:v3.2.9
104
102
  # resources:
105
103
  # requests:
106
104
  # memory: "124Ki"
@@ -112,8 +110,6 @@ spec:
112
110
  - /bin/sh
113
111
  - -c
114
112
  - >
115
- npm install -g npm@11.2.0 &&
116
- npm install -g underpost &&
117
113
  cd $(underpost root)/underpost &&
118
114
  node bin new --default-conf --conf-workflow-id template &&
119
115
  mkdir -p /home/dd &&
@@ -20,7 +20,8 @@ spec:
20
20
  spec:
21
21
  containers:
22
22
  - name: dd-test-development-blue
23
- image: localhost/rockylinux9-underpost:v3.2.5
23
+ image: underpost/underpost-engine:v3.2.9
24
+ imagePullPolicy: IfNotPresent
24
25
  envFrom:
25
26
  - secretRef:
26
27
  name: underpost-config
@@ -29,8 +30,6 @@ spec:
29
30
  - /bin/sh
30
31
  - -c
31
32
  - >
32
- npm install -g npm@11.2.0 &&
33
- npm install -g underpost &&
34
33
  underpost secret underpost --create-from-env &&
35
34
  underpost start --build --run dd-test development
36
35
 
@@ -45,50 +44,86 @@ spec:
45
44
  selector:
46
45
  app: dd-test-development-blue
47
46
  ports:
48
- - name: 'tcp-4046'
47
+ - name: 'tcp-4033'
49
48
  protocol: TCP
50
- port: 4046
51
- targetPort: 4046
52
- - name: 'udp-4046'
49
+ port: 4033
50
+ targetPort: 4033
51
+ - name: 'udp-4033'
53
52
  protocol: UDP
54
- port: 4046
55
- targetPort: 4046
53
+ port: 4033
54
+ targetPort: 4033
56
55
 
57
- - name: 'tcp-4047'
56
+ - name: 'tcp-4034'
58
57
  protocol: TCP
59
- port: 4047
60
- targetPort: 4047
61
- - name: 'udp-4047'
58
+ port: 4034
59
+ targetPort: 4034
60
+ - name: 'udp-4034'
62
61
  protocol: UDP
63
- port: 4047
64
- targetPort: 4047
62
+ port: 4034
63
+ targetPort: 4034
65
64
 
66
- - name: 'tcp-4048'
65
+ - name: 'tcp-4035'
67
66
  protocol: TCP
68
- port: 4048
69
- targetPort: 4048
70
- - name: 'udp-4048'
67
+ port: 4035
68
+ targetPort: 4035
69
+ - name: 'udp-4035'
71
70
  protocol: UDP
72
- port: 4048
73
- targetPort: 4048
71
+ port: 4035
72
+ targetPort: 4035
74
73
 
75
- - name: 'tcp-4049'
74
+ - name: 'tcp-4036'
76
75
  protocol: TCP
77
- port: 4049
78
- targetPort: 4049
79
- - name: 'udp-4049'
76
+ port: 4036
77
+ targetPort: 4036
78
+ - name: 'udp-4036'
80
79
  protocol: UDP
81
- port: 4049
82
- targetPort: 4049
80
+ port: 4036
81
+ targetPort: 4036
83
82
 
84
- - name: 'tcp-4050'
83
+ - name: 'tcp-4037'
85
84
  protocol: TCP
86
- port: 4050
87
- targetPort: 4050
88
- - name: 'udp-4050'
85
+ port: 4037
86
+ targetPort: 4037
87
+ - name: 'udp-4037'
89
88
  protocol: UDP
90
- port: 4050
91
- targetPort: 4050
89
+ port: 4037
90
+ targetPort: 4037
91
+
92
+ - name: 'tcp-4038'
93
+ protocol: TCP
94
+ port: 4038
95
+ targetPort: 4038
96
+ - name: 'udp-4038'
97
+ protocol: UDP
98
+ port: 4038
99
+ targetPort: 4038
100
+
101
+ - name: 'tcp-4039'
102
+ protocol: TCP
103
+ port: 4039
104
+ targetPort: 4039
105
+ - name: 'udp-4039'
106
+ protocol: UDP
107
+ port: 4039
108
+ targetPort: 4039
109
+
110
+ - name: 'tcp-4040'
111
+ protocol: TCP
112
+ port: 4040
113
+ targetPort: 4040
114
+ - name: 'udp-4040'
115
+ protocol: UDP
116
+ port: 4040
117
+ targetPort: 4040
118
+
119
+ - name: 'tcp-4041'
120
+ protocol: TCP
121
+ port: 4041
122
+ targetPort: 4041
123
+ - name: 'udp-4041'
124
+ protocol: UDP
125
+ port: 4041
126
+ targetPort: 4041
92
127
  type: LoadBalancer
93
128
  ---
94
129
  apiVersion: apps/v1
@@ -112,7 +147,8 @@ spec:
112
147
  spec:
113
148
  containers:
114
149
  - name: dd-test-development-green
115
- image: localhost/rockylinux9-underpost:v3.2.5
150
+ image: underpost/underpost-engine:v3.2.9
151
+ imagePullPolicy: IfNotPresent
116
152
  envFrom:
117
153
  - secretRef:
118
154
  name: underpost-config
@@ -121,8 +157,6 @@ spec:
121
157
  - /bin/sh
122
158
  - -c
123
159
  - >
124
- npm install -g npm@11.2.0 &&
125
- npm install -g underpost &&
126
160
  underpost secret underpost --create-from-env &&
127
161
  underpost start --build --run dd-test development
128
162
 
@@ -137,48 +171,84 @@ spec:
137
171
  selector:
138
172
  app: dd-test-development-green
139
173
  ports:
140
- - name: 'tcp-4046'
174
+ - name: 'tcp-4033'
175
+ protocol: TCP
176
+ port: 4033
177
+ targetPort: 4033
178
+ - name: 'udp-4033'
179
+ protocol: UDP
180
+ port: 4033
181
+ targetPort: 4033
182
+
183
+ - name: 'tcp-4034'
184
+ protocol: TCP
185
+ port: 4034
186
+ targetPort: 4034
187
+ - name: 'udp-4034'
188
+ protocol: UDP
189
+ port: 4034
190
+ targetPort: 4034
191
+
192
+ - name: 'tcp-4035'
193
+ protocol: TCP
194
+ port: 4035
195
+ targetPort: 4035
196
+ - name: 'udp-4035'
197
+ protocol: UDP
198
+ port: 4035
199
+ targetPort: 4035
200
+
201
+ - name: 'tcp-4036'
202
+ protocol: TCP
203
+ port: 4036
204
+ targetPort: 4036
205
+ - name: 'udp-4036'
206
+ protocol: UDP
207
+ port: 4036
208
+ targetPort: 4036
209
+
210
+ - name: 'tcp-4037'
141
211
  protocol: TCP
142
- port: 4046
143
- targetPort: 4046
144
- - name: 'udp-4046'
212
+ port: 4037
213
+ targetPort: 4037
214
+ - name: 'udp-4037'
145
215
  protocol: UDP
146
- port: 4046
147
- targetPort: 4046
216
+ port: 4037
217
+ targetPort: 4037
148
218
 
149
- - name: 'tcp-4047'
219
+ - name: 'tcp-4038'
150
220
  protocol: TCP
151
- port: 4047
152
- targetPort: 4047
153
- - name: 'udp-4047'
221
+ port: 4038
222
+ targetPort: 4038
223
+ - name: 'udp-4038'
154
224
  protocol: UDP
155
- port: 4047
156
- targetPort: 4047
225
+ port: 4038
226
+ targetPort: 4038
157
227
 
158
- - name: 'tcp-4048'
228
+ - name: 'tcp-4039'
159
229
  protocol: TCP
160
- port: 4048
161
- targetPort: 4048
162
- - name: 'udp-4048'
230
+ port: 4039
231
+ targetPort: 4039
232
+ - name: 'udp-4039'
163
233
  protocol: UDP
164
- port: 4048
165
- targetPort: 4048
234
+ port: 4039
235
+ targetPort: 4039
166
236
 
167
- - name: 'tcp-4049'
237
+ - name: 'tcp-4040'
168
238
  protocol: TCP
169
- port: 4049
170
- targetPort: 4049
171
- - name: 'udp-4049'
239
+ port: 4040
240
+ targetPort: 4040
241
+ - name: 'udp-4040'
172
242
  protocol: UDP
173
- port: 4049
174
- targetPort: 4049
243
+ port: 4040
244
+ targetPort: 4040
175
245
 
176
- - name: 'tcp-4050'
246
+ - name: 'tcp-4041'
177
247
  protocol: TCP
178
- port: 4050
179
- targetPort: 4050
180
- - name: 'udp-4050'
248
+ port: 4041
249
+ targetPort: 4041
250
+ - name: 'udp-4041'
181
251
  protocol: UDP
182
- port: 4050
183
- targetPort: 4050
252
+ port: 4041
253
+ targetPort: 4041
184
254
  type: LoadBalancer
@@ -15,7 +15,7 @@ spec:
15
15
  enableWebsockets: true
16
16
  services:
17
17
  - name: dd-test-development-blue-service
18
- port: 4046
18
+ port: 4033
19
19
  weight: 100
20
20
 
21
21
  - conditions:
@@ -24,7 +24,7 @@ spec:
24
24
  enableWebsockets: true
25
25
  services:
26
26
  - name: dd-test-development-blue-service
27
- port: 4047
27
+ port: 4034
28
28
  weight: 100
29
29
 
30
30
  - conditions:
@@ -33,7 +33,43 @@ spec:
33
33
  enableWebsockets: true
34
34
  services:
35
35
  - name: dd-test-development-blue-service
36
- port: 4048
36
+ port: 4035
37
+ weight: 100
38
+
39
+ - conditions:
40
+ - prefix: /r1
41
+
42
+ enableWebsockets: true
43
+ services:
44
+ - name: dd-test-development-blue-service
45
+ port: 4036
46
+ weight: 100
47
+
48
+ - conditions:
49
+ - prefix: /r1/peer
50
+
51
+ enableWebsockets: true
52
+ services:
53
+ - name: dd-test-development-blue-service
54
+ port: 4037
55
+ weight: 100
56
+
57
+ - conditions:
58
+ - prefix: /r2
59
+
60
+ enableWebsockets: true
61
+ services:
62
+ - name: dd-test-development-blue-service
63
+ port: 4038
64
+ weight: 100
65
+
66
+ - conditions:
67
+ - prefix: /r2/peer
68
+
69
+ enableWebsockets: true
70
+ services:
71
+ - name: dd-test-development-blue-service
72
+ port: 4039
37
73
  weight: 100
38
74
 
39
75
  ---
@@ -52,7 +88,7 @@ spec:
52
88
  enableWebsockets: true
53
89
  services:
54
90
  - name: dd-test-development-blue-service
55
- port: 4049
91
+ port: 4040
56
92
  weight: 100
57
93
 
58
94
  - conditions:
@@ -61,6 +97,6 @@ spec:
61
97
  enableWebsockets: true
62
98
  services:
63
99
  - name: dd-test-development-blue-service
64
- port: 4050
100
+ port: 4041
65
101
  weight: 100
66
102
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "type": "module",
3
3
  "main": "src/index.js",
4
4
  "name": "underpost",
5
- "version": "3.2.5",
5
+ "version": "3.2.9",
6
6
  "description": "pwa api rest template",
7
7
  "scripts": {
8
8
  "start": "node --max-old-space-size=8192 src/server",
@@ -14,8 +14,8 @@
14
14
  "dev:api": "NODE_ENV=development nodemon --watch src --ignore src/client src/api",
15
15
  "dev:client": "NODE_ENV=development node src/client.dev",
16
16
  "dev:proxy": "NODE_ENV=development node src/proxy proxy",
17
- "docs": "jsdoc -c jsdoc.json",
18
- "install:global": "npm install -g jsdoc && npm install -g prettier",
17
+ "docs": "typedoc --options typedoc.json",
18
+ "install:global": "npm install -g prettier",
19
19
  "install:test": "npm install -g mocha && npm install -g c8 && npm install -g coveralls-next",
20
20
  "install": "npm run install:global && npm run install:test",
21
21
  "prettier": "prettier --write .",
@@ -58,42 +58,42 @@
58
58
  "@neodrag/vanilla": "^2.3.1",
59
59
  "adm-zip": "^0.5.17",
60
60
  "ag-grid-community": "^35.2.1",
61
- "axios": "^1.14.0",
61
+ "axios": "^1.16.0",
62
62
  "chai": "^6.2.2",
63
- "clean-jsdoc-theme": "^4.3.0",
64
63
  "clipboardy": "^5.3.1",
65
- "cloudinary": "^2.5.1",
64
+ "cloudinary": "^2.10.0",
66
65
  "colors": "^1.4.0",
67
66
  "commander": "^14.0.3",
68
67
  "compression": "^1.7.4",
69
68
  "cookie-parser": "^1.4.7",
70
69
  "cors": "^2.8.6",
71
70
  "d3": "^7.9.0",
71
+ "dexie": "^4.2.1",
72
72
  "dotenv": "^17.4.2",
73
- "easymde": "^2.18.0",
73
+ "easymde": "^2.21.0",
74
74
  "esbuild": "^0.28.0",
75
75
  "escape-string-regexp": "^5.0.0",
76
76
  "express": "^5.2.1",
77
77
  "express-fileupload": "^1.4.3",
78
- "express-rate-limit": "^8.3.2",
78
+ "express-rate-limit": "^8.4.1",
79
79
  "express-slow-down": "^3.1.0",
80
80
  "fast-json-stable-stringify": "^2.1.0",
81
81
  "favicons": "^7.2.0",
82
- "fs-extra": "^11.3.4",
82
+ "fs-extra": "^11.3.5",
83
83
  "fullcalendar": "^6.1.15",
84
84
  "helmet": "^8.1.0",
85
85
  "html-minifier-terser": "^7.2.0",
86
- "http-proxy-middleware": "^3.0.5",
87
- "ignore-walk": "^8.0.0",
86
+ "http-proxy-middleware": "^4.0.0",
87
+ "ignore-walk": "^9.0.0",
88
88
  "iovalkey": "^0.3.3",
89
89
  "json-colorizer": "^3.0.1",
90
90
  "jsonwebtoken": "^9.0.3",
91
91
  "mariadb": "^3.2.2",
92
- "marked": "^18.0.0",
92
+ "marked": "^18.0.3",
93
93
  "mocha": "^11.3.0",
94
- "mongoose": "^9.4.1",
94
+ "mongoose": "^9.6.2",
95
95
  "morgan": "^1.10.0",
96
- "nodemailer": "^8.0.3",
96
+ "nodemailer": "^8.0.7",
97
97
  "nodemon": "^3.0.1",
98
98
  "peer": "^1.0.2",
99
99
  "peerjs": "^1.5.5",
@@ -107,9 +107,18 @@
107
107
  "split-file": "^2.3.0",
108
108
  "swagger-autogen": "^2.23.7",
109
109
  "swagger-ui-express": "^5.0.0",
110
+ "typedoc": "^0.28.19",
111
+ "typescript": "^6.0.3",
110
112
  "validator": "^13.15.35",
111
113
  "vanilla-jsoneditor": "^3.12.0",
112
- "winston": "^3.19.0"
114
+ "winston": "^3.19.0",
115
+ "workbox-background-sync": "^7.4.1",
116
+ "workbox-cacheable-response": "^7.4.1",
117
+ "workbox-core": "^7.4.1",
118
+ "workbox-expiration": "^7.4.1",
119
+ "workbox-precaching": "^7.4.1",
120
+ "workbox-routing": "^7.4.1",
121
+ "workbox-strategies": "^7.4.1"
113
122
  },
114
123
  "publishConfig": {
115
124
  "provenance": true,
@@ -32,8 +32,8 @@ curl -o- https://cdn.jsdelivr.net/gh/nvm-sh/nvm@v0.40.1/install.sh | bash
32
32
  export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
33
33
  [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
34
34
 
35
- nvm install 24.10.0
36
- nvm use 24.10.0
35
+ nvm install 24.15.0
36
+ nvm use 24.15.0
37
37
 
38
38
  echo "
39
39
  ██╗░░░██╗███╗░░██╗██████╗░███████╗██████╗░██████╗░░█████╗░░██████╗████████╗
@@ -1,26 +1,111 @@
1
1
  #!/bin/bash
2
2
  set -euo pipefail
3
3
 
4
- # Disable firewalld
5
- sudo systemctl disable --now iptables
6
- sudo systemctl disable --now ufw
7
- sudo systemctl disable --now firewalld
4
+ echo "[INFO] Enabling firewalld..."
5
+ sudo systemctl enable --now firewalld
8
6
 
7
+ echo "[INFO] Configuring kernel networking..."
9
8
 
10
- # Remove any existing entries, then append exactly one
11
- sudo sed -i '/^net.ipv4.ip_forward/d' /etc/sysctl.conf
12
- sudo sed -i '/^net.ipv6.conf.all.forwarding/d' /etc/sysctl.conf
13
- echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
14
- echo "net.ipv6.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.conf
15
- # ---
9
+ sudo tee /etc/sysctl.d/99-kubernetes.conf >/dev/null <<'EOF'
10
+ # Kubernetes networking
11
+ net.ipv4.ip_forward = 1
12
+ net.ipv6.conf.all.forwarding = 1
16
13
 
17
- sudo sysctl -p
14
+ # Required for Kubernetes iptables
15
+ net.bridge.bridge-nf-call-iptables = 1
16
+ net.bridge.bridge-nf-call-ip6tables = 1
18
17
 
19
- # Accept all traffic
20
- sudo iptables -P INPUT ACCEPT
21
- sudo iptables -P FORWARD ACCEPT
22
- sudo iptables -P OUTPUT ACCEPT
18
+ # Better conntrack handling
19
+ net.netfilter.nf_conntrack_max = 131072
20
+ EOF
23
21
 
24
- # List iptables rules and forwarding flag
25
- sudo iptables -L -n
26
- sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding
22
+ # Load br_netfilter immediately
23
+ sudo modprobe br_netfilter
24
+
25
+ # Apply sysctl
26
+ sudo sysctl --system
27
+
28
+ echo "[INFO] Opening common WAN/public services..."
29
+
30
+ # Public services
31
+ sudo firewall-cmd --permanent --zone=public --add-service=ssh
32
+ sudo firewall-cmd --permanent --zone=public --add-service=http
33
+ sudo firewall-cmd --permanent --zone=public --add-service=https
34
+
35
+ echo "[INFO] Opening Kubernetes control plane ports..."
36
+
37
+ # Kubernetes API Server
38
+ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp
39
+
40
+ # etcd
41
+ sudo firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp
42
+
43
+ # kubelet API
44
+ sudo firewall-cmd --permanent --zone=public --add-port=10250/tcp
45
+
46
+ # kube-scheduler
47
+ sudo firewall-cmd --permanent --zone=public --add-port=10259/tcp
48
+
49
+ # kube-controller-manager
50
+ sudo firewall-cmd --permanent --zone=public --add-port=10257/tcp
51
+
52
+ echo "[INFO] Opening Kubernetes networking ports..."
53
+
54
+ # CoreDNS
55
+ sudo firewall-cmd --permanent --zone=public --add-port=53/tcp
56
+ sudo firewall-cmd --permanent --zone=public --add-port=53/udp
57
+
58
+ # NodePort Services
59
+ sudo firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
60
+ sudo firewall-cmd --permanent --zone=public --add-port=30000-32767/udp
61
+
62
+ # Calico VXLAN
63
+ sudo firewall-cmd --permanent --zone=public --add-port=4789/udp
64
+
65
+ # Calico BGP
66
+ sudo firewall-cmd --permanent --zone=public --add-port=179/tcp
67
+
68
+ # Calico Typha (required for multi-node Calico deployments)
69
+ sudo firewall-cmd --permanent --zone=public --add-port=5473/tcp
70
+
71
+ # Calico WireGuard (optional encrypted overlay)
72
+ sudo firewall-cmd --permanent --zone=public --add-port=51820/udp
73
+ sudo firewall-cmd --permanent --zone=public --add-port=51821/udp
74
+
75
+ # Flannel VXLAN (UDP, required if using Flannel CNI)
76
+ sudo firewall-cmd --permanent --zone=public --add-port=8472/udp
77
+
78
+ # kube-proxy healthz
79
+ sudo firewall-cmd --permanent --zone=public --add-port=10256/tcp
80
+
81
+ # metrics-server
82
+ sudo firewall-cmd --permanent --zone=public --add-port=4443/tcp
83
+
84
+ echo "[INFO] Configuring trusted zone for inter-node pod/service CIDRs..."
85
+ # Allow all traffic from the default pod CIDR and service CIDR so that
86
+ # cross-node pod-to-pod and service routing works without explicit per-port rules.
87
+ sudo firewall-cmd --permanent --zone=trusted --add-source=192.168.0.0/16
88
+ sudo firewall-cmd --permanent --zone=trusted --add-source=10.96.0.0/12
89
+
90
+ echo "[INFO] Enabling masquerade and forwarding..."
91
+
92
+ sudo firewall-cmd --permanent --zone=public --add-masquerade
93
+
94
+ echo "[INFO] Reloading firewall..."
95
+
96
+ sudo firewall-cmd --reload
97
+
98
+ echo
99
+ echo "[INFO] Sysctl status:"
100
+ sudo sysctl \
101
+ net.ipv4.ip_forward \
102
+ net.ipv6.conf.all.forwarding \
103
+ net.bridge.bridge-nf-call-iptables \
104
+ net.bridge.bridge-nf-call-ip6tables
105
+
106
+ echo
107
+ echo "[INFO] Firewall status:"
108
+ sudo firewall-cmd --zone=public --list-all
109
+
110
+ echo
111
+ echo "[INFO] Kubernetes firewall configuration completed."
@@ -3,8 +3,8 @@ import { CoreService } from './core.service.js';
3
3
 
4
4
  const logger = loggerFactory(import.meta);
5
5
 
6
- const CoreController = {
7
- post: async (req, res, options) => {
6
+ class CoreController {
7
+ static post = async (req, res, options) => {
8
8
  try {
9
9
  const result = await CoreService.post(req, res, options);
10
10
  return res.status(200).json({
@@ -18,8 +18,8 @@ const CoreController = {
18
18
  message: error.message,
19
19
  });
20
20
  }
21
- },
22
- get: async (req, res, options) => {
21
+ };
22
+ static get = async (req, res, options) => {
23
23
  try {
24
24
  const result = await CoreService.put(req, res, options);
25
25
  return res.status(200).json({
@@ -33,8 +33,8 @@ const CoreController = {
33
33
  message: error.message,
34
34
  });
35
35
  }
36
- },
37
- put: async (req, res, options) => {
36
+ };
37
+ static put = async (req, res, options) => {
38
38
  try {
39
39
  const result = await CoreService.get(req, res, options);
40
40
  return res.status(200).json({
@@ -48,8 +48,8 @@ const CoreController = {
48
48
  message: error.message,
49
49
  });
50
50
  }
51
- },
52
- delete: async (req, res, options) => {
51
+ };
52
+ static delete = async (req, res, options) => {
53
53
  try {
54
54
  const result = await CoreService.delete(req, res, options);
55
55
  return res.status(200).json({
@@ -63,7 +63,7 @@ const CoreController = {
63
63
  message: error.message,
64
64
  });
65
65
  }
66
- },
67
- };
66
+ };
67
+ }
68
68
 
69
69
  export { CoreController };