cyberia 2.8.885

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 (525) hide show
  1. package/.dockerignore +15 -0
  2. package/.env.development +45 -0
  3. package/.env.production +50 -0
  4. package/.env.test +45 -0
  5. package/.github/workflows/engine-cyberia.cd.yml +31 -0
  6. package/.github/workflows/engine-cyberia.ci.yml +60 -0
  7. package/.github/workflows/ghpkg.ci.yml +87 -0
  8. package/.github/workflows/npmpkg.ci.yml +72 -0
  9. package/.github/workflows/publish.ci.yml +84 -0
  10. package/.github/workflows/publish.cyberia.ci.yml +84 -0
  11. package/.github/workflows/pwa-microservices-template-page.cd.yml +72 -0
  12. package/.github/workflows/pwa-microservices-template-test.ci.yml +33 -0
  13. package/.github/workflows/release.cd.yml +37 -0
  14. package/.nycrc +9 -0
  15. package/.prettierignore +13 -0
  16. package/.prettierrc +9 -0
  17. package/.vscode/extensions.json +51 -0
  18. package/.vscode/settings.json +87 -0
  19. package/AUTHORS.md +21 -0
  20. package/CHANGELOG.md +205 -0
  21. package/Dockerfile +28 -0
  22. package/LICENSE +21 -0
  23. package/README.md +85 -0
  24. package/bin/build.js +209 -0
  25. package/bin/cron.js +47 -0
  26. package/bin/cyberia.js +145 -0
  27. package/bin/db.js +199 -0
  28. package/bin/deploy.js +1293 -0
  29. package/bin/file.js +197 -0
  30. package/bin/hwt.js +49 -0
  31. package/bin/index.js +145 -0
  32. package/bin/ssl.js +63 -0
  33. package/bin/util.js +80 -0
  34. package/bin/vs.js +74 -0
  35. package/cli.md +714 -0
  36. package/conf.js +204 -0
  37. package/deployment.yaml +138 -0
  38. package/jsconfig.json +7 -0
  39. package/jsdoc.json +32 -0
  40. package/manifests/deployment/adminer/deployment.yaml +32 -0
  41. package/manifests/deployment/adminer/kustomization.yaml +7 -0
  42. package/manifests/deployment/adminer/service.yaml +13 -0
  43. package/manifests/deployment/dd-default-development/deployment.yaml +167 -0
  44. package/manifests/deployment/dd-default-development/proxy.yaml +46 -0
  45. package/manifests/deployment/dd-test-development/deployment.yaml +174 -0
  46. package/manifests/deployment/dd-test-development/proxy.yaml +51 -0
  47. package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
  48. package/manifests/deployment/fastapi/backend-service.yml +19 -0
  49. package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
  50. package/manifests/deployment/fastapi/frontend-service.yml +15 -0
  51. package/manifests/deployment/fastapi/initial_data.sh +56 -0
  52. package/manifests/deployment/kafka/deployment.yaml +69 -0
  53. package/manifests/deployment/mongo-express/deployment.yaml +60 -0
  54. package/manifests/deployment/phpmyadmin/deployment.yaml +54 -0
  55. package/manifests/deployment/spark/spark-pi-py.yaml +21 -0
  56. package/manifests/deployment/tensorflow/tf-gpu-test.yaml +65 -0
  57. package/manifests/envoy-service-nodeport.yaml +23 -0
  58. package/manifests/grafana/deployment.yaml +57 -0
  59. package/manifests/grafana/kustomization.yaml +7 -0
  60. package/manifests/grafana/pvc.yaml +12 -0
  61. package/manifests/grafana/service.yaml +14 -0
  62. package/manifests/kind-config-dev.yaml +12 -0
  63. package/manifests/kind-config.yaml +12 -0
  64. package/manifests/kubeadm-calico-config.yaml +119 -0
  65. package/manifests/kubelet-config.yaml +65 -0
  66. package/manifests/letsencrypt-prod.yaml +15 -0
  67. package/manifests/lxd/lxd-admin-profile.yaml +17 -0
  68. package/manifests/lxd/lxd-preseed.yaml +30 -0
  69. package/manifests/lxd/underpost-setup.sh +163 -0
  70. package/manifests/mariadb/config.yaml +10 -0
  71. package/manifests/mariadb/kustomization.yaml +9 -0
  72. package/manifests/mariadb/pv.yaml +12 -0
  73. package/manifests/mariadb/pvc.yaml +10 -0
  74. package/manifests/mariadb/secret.yaml +8 -0
  75. package/manifests/mariadb/service.yaml +10 -0
  76. package/manifests/mariadb/statefulset.yaml +56 -0
  77. package/manifests/mariadb/storage-class.yaml +10 -0
  78. package/manifests/mongodb/backup-access.yaml +16 -0
  79. package/manifests/mongodb/backup-cronjob.yaml +42 -0
  80. package/manifests/mongodb/backup-pv-pvc.yaml +22 -0
  81. package/manifests/mongodb/configmap.yaml +26 -0
  82. package/manifests/mongodb/headless-service.yaml +10 -0
  83. package/manifests/mongodb/kustomization.yaml +11 -0
  84. package/manifests/mongodb/pv-pvc.yaml +23 -0
  85. package/manifests/mongodb/statefulset.yaml +126 -0
  86. package/manifests/mongodb/storage-class.yaml +9 -0
  87. package/manifests/mongodb-4.4/kustomization.yaml +7 -0
  88. package/manifests/mongodb-4.4/pv-pvc.yaml +23 -0
  89. package/manifests/mongodb-4.4/service-deployment.yaml +63 -0
  90. package/manifests/mysql/kustomization.yaml +7 -0
  91. package/manifests/mysql/pv-pvc.yaml +27 -0
  92. package/manifests/mysql/statefulset.yaml +55 -0
  93. package/manifests/postgresql/configmap.yaml +9 -0
  94. package/manifests/postgresql/kustomization.yaml +10 -0
  95. package/manifests/postgresql/pv.yaml +15 -0
  96. package/manifests/postgresql/pvc.yaml +13 -0
  97. package/manifests/postgresql/service.yaml +10 -0
  98. package/manifests/postgresql/statefulset.yaml +37 -0
  99. package/manifests/prometheus/deployment.yaml +82 -0
  100. package/manifests/valkey/kustomization.yaml +7 -0
  101. package/manifests/valkey/service.yaml +11 -0
  102. package/manifests/valkey/statefulset.yaml +38 -0
  103. package/nodemon.json +6 -0
  104. package/package.json +118 -0
  105. package/proxy.yaml +35 -0
  106. package/scripts/device-scan.sh +43 -0
  107. package/scripts/gpu-diag.sh +19 -0
  108. package/scripts/maas-setup.sh +120 -0
  109. package/scripts/nat-iptables.sh +26 -0
  110. package/scripts/nvim.sh +91 -0
  111. package/scripts/snap-clean.sh +26 -0
  112. package/scripts/ssh-cluster-info.sh +14 -0
  113. package/scripts/ssl.sh +164 -0
  114. package/src/api/blockchain/blockchain.controller.js +51 -0
  115. package/src/api/blockchain/blockchain.model.js +90 -0
  116. package/src/api/blockchain/blockchain.router.js +21 -0
  117. package/src/api/blockchain/blockchain.service.js +24 -0
  118. package/src/api/core/core.controller.js +69 -0
  119. package/src/api/core/core.model.js +11 -0
  120. package/src/api/core/core.router.js +24 -0
  121. package/src/api/core/core.service.js +35 -0
  122. package/src/api/crypto/crypto.controller.js +51 -0
  123. package/src/api/crypto/crypto.model.js +23 -0
  124. package/src/api/crypto/crypto.router.js +20 -0
  125. package/src/api/crypto/crypto.service.js +64 -0
  126. package/src/api/default/default.controller.js +74 -0
  127. package/src/api/default/default.model.js +20 -0
  128. package/src/api/default/default.router.js +27 -0
  129. package/src/api/default/default.service.js +40 -0
  130. package/src/api/document/document.controller.js +66 -0
  131. package/src/api/document/document.model.js +51 -0
  132. package/src/api/document/document.router.js +24 -0
  133. package/src/api/document/document.service.js +133 -0
  134. package/src/api/file/file.controller.js +67 -0
  135. package/src/api/file/file.model.js +19 -0
  136. package/src/api/file/file.router.js +22 -0
  137. package/src/api/file/file.service.js +100 -0
  138. package/src/api/instance/instance.controller.js +69 -0
  139. package/src/api/instance/instance.model.js +40 -0
  140. package/src/api/instance/instance.router.js +34 -0
  141. package/src/api/instance/instance.service.js +70 -0
  142. package/src/api/ipfs/ipfs.controller.js +51 -0
  143. package/src/api/ipfs/ipfs.model.js +17 -0
  144. package/src/api/ipfs/ipfs.router.js +20 -0
  145. package/src/api/ipfs/ipfs.service.js +25 -0
  146. package/src/api/object-layer/README.md +85 -0
  147. package/src/api/object-layer/object-layer.controller.js +69 -0
  148. package/src/api/object-layer/object-layer.model.js +181 -0
  149. package/src/api/object-layer/object-layer.router.js +29 -0
  150. package/src/api/object-layer/object-layer.service.js +49 -0
  151. package/src/api/test/test.controller.js +59 -0
  152. package/src/api/test/test.model.js +14 -0
  153. package/src/api/test/test.router.js +21 -0
  154. package/src/api/test/test.service.js +35 -0
  155. package/src/api/user/postman_collection.json +216 -0
  156. package/src/api/user/user.build.js +16 -0
  157. package/src/api/user/user.controller.js +35 -0
  158. package/src/api/user/user.model.js +100 -0
  159. package/src/api/user/user.router.js +400 -0
  160. package/src/api/user/user.service.js +500 -0
  161. package/src/api.js +23 -0
  162. package/src/cli/baremetal.js +1310 -0
  163. package/src/cli/cloud-init.js +548 -0
  164. package/src/cli/cluster.js +834 -0
  165. package/src/cli/cron.js +95 -0
  166. package/src/cli/db.js +414 -0
  167. package/src/cli/deploy.js +661 -0
  168. package/src/cli/env.js +101 -0
  169. package/src/cli/fs.js +256 -0
  170. package/src/cli/image.js +156 -0
  171. package/src/cli/index.js +436 -0
  172. package/src/cli/lxd.js +402 -0
  173. package/src/cli/monitor.js +260 -0
  174. package/src/cli/repository.js +274 -0
  175. package/src/cli/run.js +728 -0
  176. package/src/cli/script.js +85 -0
  177. package/src/cli/secrets.js +71 -0
  178. package/src/cli/ssh.js +46 -0
  179. package/src/cli/test.js +159 -0
  180. package/src/client/Cyberia.index.js +50 -0
  181. package/src/client/CyberiaAdmin.index.js +34 -0
  182. package/src/client/CyberiaPortal.index.js +36 -0
  183. package/src/client/Default.index.js +84 -0
  184. package/src/client/components/core/404.js +20 -0
  185. package/src/client/components/core/500.js +20 -0
  186. package/src/client/components/core/Account.js +326 -0
  187. package/src/client/components/core/AgGrid.js +191 -0
  188. package/src/client/components/core/Alert.js +77 -0
  189. package/src/client/components/core/Auth.js +342 -0
  190. package/src/client/components/core/Badge.js +32 -0
  191. package/src/client/components/core/Blockchain.js +41 -0
  192. package/src/client/components/core/Blog.js +9 -0
  193. package/src/client/components/core/BtnIcon.js +111 -0
  194. package/src/client/components/core/CalendarCore.js +464 -0
  195. package/src/client/components/core/Chat.js +64 -0
  196. package/src/client/components/core/ColorPalette.js +5267 -0
  197. package/src/client/components/core/CommonJs.js +1010 -0
  198. package/src/client/components/core/Content.js +196 -0
  199. package/src/client/components/core/Css.js +1099 -0
  200. package/src/client/components/core/CssCore.js +882 -0
  201. package/src/client/components/core/D3Chart.js +44 -0
  202. package/src/client/components/core/Docs.js +376 -0
  203. package/src/client/components/core/DropDown.js +223 -0
  204. package/src/client/components/core/EventsUI.js +133 -0
  205. package/src/client/components/core/FileExplorer.js +707 -0
  206. package/src/client/components/core/FullScreen.js +36 -0
  207. package/src/client/components/core/Input.js +383 -0
  208. package/src/client/components/core/JoyStick.js +80 -0
  209. package/src/client/components/core/Keyboard.js +73 -0
  210. package/src/client/components/core/LoadingAnimation.js +159 -0
  211. package/src/client/components/core/LogIn.js +190 -0
  212. package/src/client/components/core/LogOut.js +63 -0
  213. package/src/client/components/core/Logger.js +29 -0
  214. package/src/client/components/core/Modal.js +2494 -0
  215. package/src/client/components/core/NotificationManager.js +84 -0
  216. package/src/client/components/core/ObjectLayerEngine.js +1229 -0
  217. package/src/client/components/core/ObjectLayerEngineModal.js +443 -0
  218. package/src/client/components/core/Pagination.js +207 -0
  219. package/src/client/components/core/Panel.js +772 -0
  220. package/src/client/components/core/PanelForm.js +627 -0
  221. package/src/client/components/core/Polyhedron.js +162 -0
  222. package/src/client/components/core/Recover.js +207 -0
  223. package/src/client/components/core/Responsive.js +82 -0
  224. package/src/client/components/core/RichText.js +43 -0
  225. package/src/client/components/core/Router.js +317 -0
  226. package/src/client/components/core/Scroll.js +76 -0
  227. package/src/client/components/core/SignUp.js +125 -0
  228. package/src/client/components/core/SocketIo.js +74 -0
  229. package/src/client/components/core/Stream.js +113 -0
  230. package/src/client/components/core/ToggleSwitch.js +101 -0
  231. package/src/client/components/core/ToolTip.js +90 -0
  232. package/src/client/components/core/Translate.js +522 -0
  233. package/src/client/components/core/Validator.js +115 -0
  234. package/src/client/components/core/VanillaJs.js +423 -0
  235. package/src/client/components/core/Wallet.js +106 -0
  236. package/src/client/components/core/WebComponent.js +44 -0
  237. package/src/client/components/core/Webhook.js +25 -0
  238. package/src/client/components/core/Worker.js +371 -0
  239. package/src/client/components/core/windowGetDimensions.js +269 -0
  240. package/src/client/components/cyberia/BagCyberia.js +1253 -0
  241. package/src/client/components/cyberia/BiomeCyberia.js +130 -0
  242. package/src/client/components/cyberia/CharacterCyberia.js +321 -0
  243. package/src/client/components/cyberia/CommonCyberia.js +1834 -0
  244. package/src/client/components/cyberia/CssCyberia.js +816 -0
  245. package/src/client/components/cyberia/ElementPreviewCyberia.js +183 -0
  246. package/src/client/components/cyberia/ElementsCyberia.js +146 -0
  247. package/src/client/components/cyberia/InteractionPanelCyberia.js +1043 -0
  248. package/src/client/components/cyberia/JoyStickCyberia.js +53 -0
  249. package/src/client/components/cyberia/LogInCyberia.js +68 -0
  250. package/src/client/components/cyberia/LogOutCyberia.js +24 -0
  251. package/src/client/components/cyberia/MainUserCyberia.js +424 -0
  252. package/src/client/components/cyberia/MapCyberia.js +160 -0
  253. package/src/client/components/cyberia/MatrixCyberia.js +147 -0
  254. package/src/client/components/cyberia/MenuCyberia.js +575 -0
  255. package/src/client/components/cyberia/PixiCyberia.js +1639 -0
  256. package/src/client/components/cyberia/PointAndClickMovementCyberia.js +146 -0
  257. package/src/client/components/cyberia/QuestCyberia.js +1420 -0
  258. package/src/client/components/cyberia/RoutesCyberia.js +47 -0
  259. package/src/client/components/cyberia/SettingsCyberia.js +16 -0
  260. package/src/client/components/cyberia/SignUpCyberia.js +14 -0
  261. package/src/client/components/cyberia/SkillCyberia.js +124 -0
  262. package/src/client/components/cyberia/SocketIoCyberia.js +211 -0
  263. package/src/client/components/cyberia/TileCyberia.js +685 -0
  264. package/src/client/components/cyberia/TranslateCyberia.js +96 -0
  265. package/src/client/components/cyberia/UniverseCyberia.js +14 -0
  266. package/src/client/components/cyberia/WebhookCyberia.js +13 -0
  267. package/src/client/components/cyberia/WikiCyberia.js +144 -0
  268. package/src/client/components/cyberia/WorldCyberia.js +680 -0
  269. package/src/client/components/cyberia-admin/BiomeCyberiaAdmin.js +978 -0
  270. package/src/client/components/cyberia-admin/CommonCyberiaAdmin.js +29 -0
  271. package/src/client/components/cyberia-admin/CssCyberiaAdmin.js +15 -0
  272. package/src/client/components/cyberia-admin/ElementsCyberiaAdmin.js +38 -0
  273. package/src/client/components/cyberia-admin/InstanceEngineCyberiaAdmin.js +180 -0
  274. package/src/client/components/cyberia-admin/LogInCyberiaAdmin.js +34 -0
  275. package/src/client/components/cyberia-admin/LogOutCyberiaAdmin.js +24 -0
  276. package/src/client/components/cyberia-admin/MenuCyberiaAdmin.js +660 -0
  277. package/src/client/components/cyberia-admin/RoutesCyberiaAdmin.js +57 -0
  278. package/src/client/components/cyberia-admin/ServerCyberiaAdmin.js +129 -0
  279. package/src/client/components/cyberia-admin/SettingsCyberiaAdmin.js +16 -0
  280. package/src/client/components/cyberia-admin/SignUpCyberiaAdmin.js +11 -0
  281. package/src/client/components/cyberia-admin/SocketIoCyberiaAdmin.js +53 -0
  282. package/src/client/components/cyberia-admin/TranslateCyberiaAdmin.js +7 -0
  283. package/src/client/components/cyberia-biome/CityCyberiaBiome.js +209 -0
  284. package/src/client/components/cyberia-biome/CityInteriorCyberiaBiome.js +253 -0
  285. package/src/client/components/cyberia-biome/ColorChaosCyberiaBiome.js +26 -0
  286. package/src/client/components/cyberia-biome/ForestCyberiaBiome.js +191 -0
  287. package/src/client/components/cyberia-biome/GridBaseCyberiaBiome.js +364 -0
  288. package/src/client/components/cyberia-biome/SeedCityCyberiaBiome.js +347 -0
  289. package/src/client/components/cyberia-biome/ShopCyberiaBiome.js +12 -0
  290. package/src/client/components/cyberia-biome/SpaceCyberiaBiome.js +58 -0
  291. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +29 -0
  292. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +132 -0
  293. package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +38 -0
  294. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +18 -0
  295. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +12 -0
  296. package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +487 -0
  297. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +45 -0
  298. package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +136 -0
  299. package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +16 -0
  300. package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +11 -0
  301. package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +52 -0
  302. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +12 -0
  303. package/src/client/components/default/CommonDefault.js +29 -0
  304. package/src/client/components/default/CssDefault.js +27 -0
  305. package/src/client/components/default/ElementsDefault.js +38 -0
  306. package/src/client/components/default/LogInDefault.js +14 -0
  307. package/src/client/components/default/LogOutDefault.js +10 -0
  308. package/src/client/components/default/MenuDefault.js +743 -0
  309. package/src/client/components/default/RoutesDefault.js +48 -0
  310. package/src/client/components/default/SettingsDefault.js +16 -0
  311. package/src/client/components/default/SignUpDefault.js +9 -0
  312. package/src/client/components/default/SocketIoDefault.js +54 -0
  313. package/src/client/components/default/TranslateDefault.js +7 -0
  314. package/src/client/public/default/android-chrome-144x144.png +0 -0
  315. package/src/client/public/default/android-chrome-192x192.png +0 -0
  316. package/src/client/public/default/android-chrome-256x256.png +0 -0
  317. package/src/client/public/default/android-chrome-36x36.png +0 -0
  318. package/src/client/public/default/android-chrome-384x384.png +0 -0
  319. package/src/client/public/default/android-chrome-48x48.png +0 -0
  320. package/src/client/public/default/android-chrome-512x512.png +0 -0
  321. package/src/client/public/default/android-chrome-72x72.png +0 -0
  322. package/src/client/public/default/android-chrome-96x96.png +0 -0
  323. package/src/client/public/default/apple-touch-icon-1024x1024.png +0 -0
  324. package/src/client/public/default/apple-touch-icon-114x114-precomposed.png +0 -0
  325. package/src/client/public/default/apple-touch-icon-114x114.png +0 -0
  326. package/src/client/public/default/apple-touch-icon-120x120-precomposed.png +0 -0
  327. package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
  328. package/src/client/public/default/apple-touch-icon-144x144-precomposed.png +0 -0
  329. package/src/client/public/default/apple-touch-icon-144x144.png +0 -0
  330. package/src/client/public/default/apple-touch-icon-152x152-precomposed.png +0 -0
  331. package/src/client/public/default/apple-touch-icon-152x152.png +0 -0
  332. package/src/client/public/default/apple-touch-icon-167x167.png +0 -0
  333. package/src/client/public/default/apple-touch-icon-180x180-precomposed.png +0 -0
  334. package/src/client/public/default/apple-touch-icon-180x180.png +0 -0
  335. package/src/client/public/default/apple-touch-icon-57x57-precomposed.png +0 -0
  336. package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
  337. package/src/client/public/default/apple-touch-icon-60x60-precomposed.png +0 -0
  338. package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
  339. package/src/client/public/default/apple-touch-icon-72x72-precomposed.png +0 -0
  340. package/src/client/public/default/apple-touch-icon-72x72.png +0 -0
  341. package/src/client/public/default/apple-touch-icon-76x76-precomposed.png +0 -0
  342. package/src/client/public/default/apple-touch-icon-76x76.png +0 -0
  343. package/src/client/public/default/apple-touch-icon-precomposed.png +0 -0
  344. package/src/client/public/default/apple-touch-icon.png +0 -0
  345. package/src/client/public/default/apple-touch-startup-image-1125x2436.png +0 -0
  346. package/src/client/public/default/apple-touch-startup-image-1136x640.png +0 -0
  347. package/src/client/public/default/apple-touch-startup-image-1170x2532.png +0 -0
  348. package/src/client/public/default/apple-touch-startup-image-1179x2556.png +0 -0
  349. package/src/client/public/default/apple-touch-startup-image-1242x2208.png +0 -0
  350. package/src/client/public/default/apple-touch-startup-image-1242x2688.png +0 -0
  351. package/src/client/public/default/apple-touch-startup-image-1284x2778.png +0 -0
  352. package/src/client/public/default/apple-touch-startup-image-1290x2796.png +0 -0
  353. package/src/client/public/default/apple-touch-startup-image-1334x750.png +0 -0
  354. package/src/client/public/default/apple-touch-startup-image-1488x2266.png +0 -0
  355. package/src/client/public/default/apple-touch-startup-image-1536x2048.png +0 -0
  356. package/src/client/public/default/apple-touch-startup-image-1620x2160.png +0 -0
  357. package/src/client/public/default/apple-touch-startup-image-1640x2160.png +0 -0
  358. package/src/client/public/default/apple-touch-startup-image-1668x2224.png +0 -0
  359. package/src/client/public/default/apple-touch-startup-image-1668x2388.png +0 -0
  360. package/src/client/public/default/apple-touch-startup-image-1792x828.png +0 -0
  361. package/src/client/public/default/apple-touch-startup-image-2048x1536.png +0 -0
  362. package/src/client/public/default/apple-touch-startup-image-2048x2732.png +0 -0
  363. package/src/client/public/default/apple-touch-startup-image-2160x1620.png +0 -0
  364. package/src/client/public/default/apple-touch-startup-image-2160x1640.png +0 -0
  365. package/src/client/public/default/apple-touch-startup-image-2208x1242.png +0 -0
  366. package/src/client/public/default/apple-touch-startup-image-2224x1668.png +0 -0
  367. package/src/client/public/default/apple-touch-startup-image-2266x1488.png +0 -0
  368. package/src/client/public/default/apple-touch-startup-image-2388x1668.png +0 -0
  369. package/src/client/public/default/apple-touch-startup-image-2436x1125.png +0 -0
  370. package/src/client/public/default/apple-touch-startup-image-2532x1170.png +0 -0
  371. package/src/client/public/default/apple-touch-startup-image-2556x1179.png +0 -0
  372. package/src/client/public/default/apple-touch-startup-image-2688x1242.png +0 -0
  373. package/src/client/public/default/apple-touch-startup-image-2732x2048.png +0 -0
  374. package/src/client/public/default/apple-touch-startup-image-2778x1284.png +0 -0
  375. package/src/client/public/default/apple-touch-startup-image-2796x1290.png +0 -0
  376. package/src/client/public/default/apple-touch-startup-image-640x1136.png +0 -0
  377. package/src/client/public/default/apple-touch-startup-image-750x1334.png +0 -0
  378. package/src/client/public/default/apple-touch-startup-image-828x1792.png +0 -0
  379. package/src/client/public/default/assets/background/dark.jpg +0 -0
  380. package/src/client/public/default/assets/background/dark.svg +557 -0
  381. package/src/client/public/default/assets/background/white.jpg +0 -0
  382. package/src/client/public/default/assets/background/white0-min.jpg +0 -0
  383. package/src/client/public/default/assets/background/white0.jpg +0 -0
  384. package/src/client/public/default/assets/logo/base-icon.png +0 -0
  385. package/src/client/public/default/assets/logo/underpost.gif +0 -0
  386. package/src/client/public/default/assets/mailer/api-user-check.png +0 -0
  387. package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
  388. package/src/client/public/default/assets/mailer/api-user-invalid-token.png +0 -0
  389. package/src/client/public/default/assets/mailer/api-user-recover.png +0 -0
  390. package/src/client/public/default/browserconfig.xml +12 -0
  391. package/src/client/public/default/favicon-16x16.png +0 -0
  392. package/src/client/public/default/favicon-32x32.png +0 -0
  393. package/src/client/public/default/favicon-48x48.png +0 -0
  394. package/src/client/public/default/favicon.ico +0 -0
  395. package/src/client/public/default/manifest.webmanifest +69 -0
  396. package/src/client/public/default/mstile-144x144.png +0 -0
  397. package/src/client/public/default/mstile-150x150.png +0 -0
  398. package/src/client/public/default/mstile-310x150.png +0 -0
  399. package/src/client/public/default/mstile-310x310.png +0 -0
  400. package/src/client/public/default/mstile-70x70.png +0 -0
  401. package/src/client/public/default/plantuml/client-conf.svg +1 -0
  402. package/src/client/public/default/plantuml/client-schema.svg +1 -0
  403. package/src/client/public/default/plantuml/cron-conf.svg +1 -0
  404. package/src/client/public/default/plantuml/cron-schema.svg +1 -0
  405. package/src/client/public/default/plantuml/server-conf.svg +1 -0
  406. package/src/client/public/default/plantuml/server-schema.svg +1 -0
  407. package/src/client/public/default/plantuml/ssr-conf.svg +1 -0
  408. package/src/client/public/default/plantuml/ssr-schema.svg +1 -0
  409. package/src/client/public/default/safari-pinned-tab.svg +24 -0
  410. package/src/client/public/default/site.webmanifest +69 -0
  411. package/src/client/public/default/sitemap +148 -0
  412. package/src/client/public/default/yandex-browser-50x50.png +0 -0
  413. package/src/client/public/default/yandex-browser-manifest.json +9 -0
  414. package/src/client/public/doc/favicon.ico +0 -0
  415. package/src/client/public/doc/sitemap +148 -0
  416. package/src/client/public/test/favicon.ico +0 -0
  417. package/src/client/public/test/sitemap +148 -0
  418. package/src/client/services/blockchain/blockchain.service.js +73 -0
  419. package/src/client/services/core/core.service.js +165 -0
  420. package/src/client/services/crypto/crypto.service.js +73 -0
  421. package/src/client/services/default/default.management.js +450 -0
  422. package/src/client/services/default/default.service.js +98 -0
  423. package/src/client/services/document/document.service.js +97 -0
  424. package/src/client/services/file/file.service.js +72 -0
  425. package/src/client/services/instance/instance.management.js +78 -0
  426. package/src/client/services/instance/instance.service.js +97 -0
  427. package/src/client/services/ipfs/ipfs.service.js +73 -0
  428. package/src/client/services/object-layer/object-layer.service.js +93 -0
  429. package/src/client/services/test/test.service.js +73 -0
  430. package/src/client/services/user/user.management.js +56 -0
  431. package/src/client/services/user/user.service.js +108 -0
  432. package/src/client/ssr/Render.js +237 -0
  433. package/src/client/ssr/body/404.js +73 -0
  434. package/src/client/ssr/body/500.js +72 -0
  435. package/src/client/ssr/body/CacheControl.js +114 -0
  436. package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +90 -0
  437. package/src/client/ssr/body/CyberiaSplashScreenLore.js +424 -0
  438. package/src/client/ssr/body/DefaultSplashScreen.js +90 -0
  439. package/src/client/ssr/email/DefaultRecoverEmail.js +21 -0
  440. package/src/client/ssr/email/DefaultVerifyEmail.js +17 -0
  441. package/src/client/ssr/head/Css.js +241 -0
  442. package/src/client/ssr/head/CyberiaAdminScripts.js +6 -0
  443. package/src/client/ssr/head/CyberiaPortalScripts.js +6 -0
  444. package/src/client/ssr/head/CyberiaScripts.js +6 -0
  445. package/src/client/ssr/head/DefaultScripts.js +6 -0
  446. package/src/client/ssr/head/Microdata.js +11 -0
  447. package/src/client/ssr/head/Production.js +1 -0
  448. package/src/client/ssr/head/Pwa.js +146 -0
  449. package/src/client/ssr/head/Seo.js +15 -0
  450. package/src/client/ssr/mailer/DefaultRecoverEmail.js +21 -0
  451. package/src/client/ssr/mailer/DefaultVerifyEmail.js +17 -0
  452. package/src/client/ssr/offline/Maintenance.js +63 -0
  453. package/src/client/ssr/offline/NoNetworkConnection.js +67 -0
  454. package/src/client/ssr/pages/404.js +12 -0
  455. package/src/client/ssr/pages/500.js +12 -0
  456. package/src/client/ssr/pages/Test.js +198 -0
  457. package/src/client/ssr/pages/maintenance.js +14 -0
  458. package/src/client/ssr/pages/offline.js +21 -0
  459. package/src/client/sw/default.sw.js +108 -0
  460. package/src/client/sw/template.sw.js +84 -0
  461. package/src/client.build.js +22 -0
  462. package/src/client.dev.js +24 -0
  463. package/src/db/DataBaseProvider.js +98 -0
  464. package/src/db/mariadb/MariaDB.js +66 -0
  465. package/src/db/mongo/MongooseDB.js +70 -0
  466. package/src/index.js +198 -0
  467. package/src/mailer/EmailRender.js +116 -0
  468. package/src/mailer/MailerProvider.js +213 -0
  469. package/src/monitor.js +24 -0
  470. package/src/proxy.js +22 -0
  471. package/src/runtime/express/Express.js +256 -0
  472. package/src/runtime/lampp/Dockerfile +50 -0
  473. package/src/runtime/lampp/Lampp.js +343 -0
  474. package/src/server/auth.js +689 -0
  475. package/src/server/backup.js +96 -0
  476. package/src/server/client-build-docs.js +205 -0
  477. package/src/server/client-build-live.js +109 -0
  478. package/src/server/client-build.js +690 -0
  479. package/src/server/client-dev-server.js +87 -0
  480. package/src/server/client-formatted.js +87 -0
  481. package/src/server/client-icons.js +108 -0
  482. package/src/server/conf.js +1071 -0
  483. package/src/server/crypto.js +210 -0
  484. package/src/server/dns.js +276 -0
  485. package/src/server/downloader.js +74 -0
  486. package/src/server/json-schema.js +77 -0
  487. package/src/server/logger.js +197 -0
  488. package/src/server/network.js +72 -0
  489. package/src/server/object-layer.js +294 -0
  490. package/src/server/peer.js +69 -0
  491. package/src/server/process.js +171 -0
  492. package/src/server/proxy.js +110 -0
  493. package/src/server/runtime.js +170 -0
  494. package/src/server/ssr.js +127 -0
  495. package/src/server/start.js +161 -0
  496. package/src/server/tls.js +251 -0
  497. package/src/server/valkey.js +293 -0
  498. package/src/server.js +25 -0
  499. package/src/ws/IoInterface.js +139 -0
  500. package/src/ws/IoServer.js +88 -0
  501. package/src/ws/core/channels/core.ws.chat.js +23 -0
  502. package/src/ws/core/channels/core.ws.mailer.js +35 -0
  503. package/src/ws/core/channels/core.ws.stream.js +31 -0
  504. package/src/ws/core/core.ws.connection.js +62 -0
  505. package/src/ws/core/core.ws.emit.js +53 -0
  506. package/src/ws/core/core.ws.server.js +76 -0
  507. package/src/ws/core/management/core.ws.chat.js +8 -0
  508. package/src/ws/core/management/core.ws.mailer.js +16 -0
  509. package/src/ws/core/management/core.ws.stream.js +8 -0
  510. package/src/ws/cyberia/channels/cyberia.ws.bot.js +56 -0
  511. package/src/ws/cyberia/channels/cyberia.ws.skill.js +51 -0
  512. package/src/ws/cyberia/channels/cyberia.ws.user.js +437 -0
  513. package/src/ws/cyberia/cyberia.ws.connection.js +36 -0
  514. package/src/ws/cyberia/cyberia.ws.emit.js +14 -0
  515. package/src/ws/cyberia/cyberia.ws.server.js +67 -0
  516. package/src/ws/cyberia/management/cyberia.ws.bot.js +669 -0
  517. package/src/ws/cyberia/management/cyberia.ws.skill.js +441 -0
  518. package/src/ws/cyberia/management/cyberia.ws.user.js +188 -0
  519. package/src/ws/default/channels/default.ws.main.js +16 -0
  520. package/src/ws/default/default.ws.connection.js +22 -0
  521. package/src/ws/default/default.ws.emit.js +14 -0
  522. package/src/ws/default/default.ws.server.js +20 -0
  523. package/src/ws/default/management/default.ws.main.js +8 -0
  524. package/test/api.test.js +53 -0
  525. package/test/crypto.test.js +117 -0
@@ -0,0 +1,82 @@
1
+ ---
2
+ apiVersion: v1
3
+ kind: ConfigMap
4
+ metadata:
5
+ name: prometheus-config
6
+ labels:
7
+ app: prometheus
8
+ data:
9
+ prometheus.yml: |
10
+ global:
11
+ scrape_interval: 30s
12
+ evaluation_interval: 30s
13
+
14
+ scrape_configs:
15
+ - job_name: 'scraper'
16
+ metrics_path: /metrics
17
+ scheme: https
18
+ static_configs:
19
+ - targets: []
20
+ # tls_config:
21
+ # insecure_skip_verify: true
22
+
23
+ ---
24
+ apiVersion: apps/v1
25
+ kind: Deployment
26
+ metadata:
27
+ name: prometheus
28
+ labels:
29
+ app: prometheus
30
+ spec:
31
+ replicas: 1
32
+ selector:
33
+ matchLabels:
34
+ app: prometheus
35
+ template:
36
+ metadata:
37
+ labels:
38
+ app: prometheus
39
+ spec:
40
+ containers:
41
+ - name: prometheus
42
+ image: prom/prometheus:latest
43
+ args:
44
+ - '--config.file=/etc/prometheus/prometheus.yml'
45
+ - '--storage.tsdb.path=/prometheus'
46
+ - '--web.console.libraries=/usr/share/prometheus/console_libraries'
47
+ - '--web.console.templates=/usr/share/prometheus/consoles'
48
+ ports:
49
+ - containerPort: 9090
50
+ name: web
51
+ volumeMounts:
52
+ - name: prometheus-config
53
+ mountPath: /etc/prometheus/
54
+ - name: prometheus-data
55
+ mountPath: /prometheus
56
+ resources:
57
+ requests:
58
+ memory: '200Mi'
59
+ cpu: '100m'
60
+ volumes:
61
+ - name: prometheus-config
62
+ configMap:
63
+ name: prometheus-config
64
+ - name: prometheus-data
65
+ emptyDir: {}
66
+
67
+ ---
68
+ apiVersion: v1
69
+ kind: Service
70
+ metadata:
71
+ name: prometheus
72
+ labels:
73
+ app: prometheus
74
+ spec:
75
+ ports:
76
+ - port: 9090
77
+ targetPort: 9090
78
+ protocol: TCP
79
+ name: web
80
+ selector:
81
+ app: prometheus
82
+ type: ClusterIP
@@ -0,0 +1,7 @@
1
+ ---
2
+ # kubectl apply -k valkey/.
3
+ apiVersion: kustomize.config.k8s.io/v1beta1
4
+ kind: Kustomization
5
+ resources:
6
+ - service.yaml
7
+ - statefulset.yaml
@@ -0,0 +1,11 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: valkey-service
5
+ namespace: default
6
+ spec:
7
+ selector:
8
+ app: valkey-service
9
+ ports:
10
+ - port: 6379
11
+ targetPort: 6379
@@ -0,0 +1,38 @@
1
+ apiVersion: apps/v1
2
+ kind: StatefulSet
3
+ metadata:
4
+ name: valkey-service
5
+ namespace: default
6
+ spec:
7
+ serviceName: valkey-service
8
+ replicas: 1
9
+ selector:
10
+ matchLabels:
11
+ app: valkey-service
12
+ template:
13
+ metadata:
14
+ labels:
15
+ app: valkey-service
16
+ spec:
17
+ automountServiceAccountToken: false
18
+ containers:
19
+ - name: valkey-service
20
+ image: docker.io/valkey/valkey:latest
21
+ imagePullPolicy: IfNotPresent
22
+ command: ["valkey-server"]
23
+ args: ["--port", "6379"]
24
+ ports:
25
+ - containerPort: 6379
26
+ startupProbe:
27
+ tcpSocket:
28
+ port: 6379
29
+ periodSeconds: 5
30
+ timeoutSeconds: 5
31
+ failureThreshold: 30
32
+ livenessProbe:
33
+ tcpSocket:
34
+ port: 6379
35
+ initialDelaySeconds: 10
36
+ periodSeconds: 30
37
+ timeoutSeconds: 5
38
+ failureThreshold: 2
package/nodemon.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "watch": ["./src"],
3
+ "ext": "js",
4
+ "delay": 0,
5
+ "ignore": []
6
+ }
package/package.json ADDED
@@ -0,0 +1,118 @@
1
+ {
2
+ "type": "module",
3
+ "main": "src/index.js",
4
+ "name": "cyberia",
5
+ "version": "2.8.885",
6
+ "description": "pwa api rest template",
7
+ "scripts": {
8
+ "start": "env-cmd -f .env.production node --max-old-space-size=8192 src/server",
9
+ "build": "node bin/deploy build-full-client",
10
+ "test": "env-cmd -f .env.test c8 mocha",
11
+ "pm2": "env-cmd -f .env.production pm2 start src/server.js --node-args=\"--max-old-space-size=8192\" --name engine -- dd-default",
12
+ "dev": "env-cmd -f .env.development nodemon src/server",
13
+ "dev-img": "env-cmd -f .env.development node src/server",
14
+ "prod-img": "env-cmd -f .env.production node src/server",
15
+ "monitor": "pm2 start src/monitor.js --name monitor -- dd production",
16
+ "dev-api": "env-cmd -f .env.development nodemon --watch src --ignore src/client src/api",
17
+ "dev-client": "env-cmd -f .env.development node src/client.dev",
18
+ "proxy": "node src/proxy proxy",
19
+ "docs": "jsdoc -c jsdoc.json",
20
+ "install-global": "npm install -g pm2 && npm install -g jsdoc && npm install -g prettier && npm install -g env-cmd && npm install -g yarn && npm install -g auto-changelog",
21
+ "install-test": "npm install -g mocha && npm install -g c8 && npm install -g nyc && npm install -g coveralls",
22
+ "install-underpost": "cp -a $(npm root -g)/underpost/node_modules ./node_modules && npm install --only=dev --ignore-scripts",
23
+ "install": "npm run install-global && npm run install-test",
24
+ "prettier": "prettier --write .",
25
+ "fix": "npm audit fix --force && npm audit",
26
+ "changelog": "auto-changelog"
27
+ },
28
+ "bin": {
29
+ "cyberia": "bin/index.js"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/underpostnet/engine-cyberia.git"
34
+ },
35
+ "keywords": [
36
+ "pwa",
37
+ "microservices",
38
+ "template",
39
+ "builder",
40
+ "engine",
41
+ "server",
42
+ "proxy",
43
+ "client"
44
+ ],
45
+ "author": "https://github.com/underpostnet",
46
+ "license": "MIT",
47
+ "bugs": {
48
+ "url": "https://github.com/underpostnet/engine-cyberia/issues"
49
+ },
50
+ "homepage": "https://github.com/underpostnet/engine-cyberia#readme",
51
+ "dependencies": {
52
+ "@fortawesome/fontawesome-free": "^6.4.2",
53
+ "@fullcalendar/rrule": "^6.1.15",
54
+ "@neodrag/vanilla": "^2.0.3",
55
+ "adm-zip": "^0.5.10",
56
+ "ag-grid-community": "^31.3.4",
57
+ "axios": "^1.5.1",
58
+ "chai": "^5.1.0",
59
+ "clean-jsdoc-theme": "^4.3.0",
60
+ "clipboardy": "^4.0.0",
61
+ "cloudinary": "^2.5.1",
62
+ "colors": "^1.4.0",
63
+ "commander": "^12.1.0",
64
+ "compression": "^1.7.4",
65
+ "cookie-parser": "^1.4.7",
66
+ "cors": "^2.8.5",
67
+ "d3": "^7.9.0",
68
+ "dotenv": "^16.3.1",
69
+ "easymde": "^2.18.0",
70
+ "env-cmd": "^10.1.0",
71
+ "express": "^4.18.2",
72
+ "express-fileupload": "^1.4.3",
73
+ "express-rate-limit": "^8.1.0",
74
+ "express-slow-down": "^3.0.0",
75
+ "favicons": "^7.2.0",
76
+ "fs-extra": "^11.1.1",
77
+ "fullcalendar": "^6.1.15",
78
+ "helmet": "^8.1.0",
79
+ "html-minifier-terser": "^7.2.0",
80
+ "http-proxy-middleware": "^2.0.6",
81
+ "ignore-walk": "^6.0.4",
82
+ "iovalkey": "^0.2.1",
83
+ "jimp": "^1.6.0",
84
+ "json-colorizer": "^2.2.2",
85
+ "jsonwebtoken": "^9.0.2",
86
+ "mariadb": "^3.2.2",
87
+ "marked": "^12.0.2",
88
+ "mocha": "^10.8.2",
89
+ "mongoose": "^8.9.5",
90
+ "morgan": "^1.10.0",
91
+ "nodemailer": "^7.0.9",
92
+ "nodemon": "^3.0.1",
93
+ "peer": "^1.0.2",
94
+ "peerjs": "^1.5.2",
95
+ "prom-client": "^15.1.2",
96
+ "public-ip": "^6.0.1",
97
+ "read": "^2.1.0",
98
+ "rrule": "^2.8.1",
99
+ "sharp": "^0.32.5",
100
+ "shelljs": "^0.8.5",
101
+ "sitemap": "^7.1.1",
102
+ "socket.io": "^4.8.0",
103
+ "sortablejs": "^1.15.0",
104
+ "split-file": "^2.3.0",
105
+ "swagger-autogen": "^2.23.7",
106
+ "swagger-ui-express": "^5.0.0",
107
+ "systeminformation": "^5.23.7",
108
+ "uglify-js": "^3.17.4",
109
+ "validator": "^13.11.0",
110
+ "vanilla-jsoneditor": "^2.3.2",
111
+ "winston": "^3.11.0"
112
+ },
113
+ "publishConfig": {
114
+ "provenance": true,
115
+ "access": "public",
116
+ "registry": "https://registry.npmjs.org/"
117
+ }
118
+ }
package/proxy.yaml ADDED
@@ -0,0 +1,35 @@
1
+
2
+ ---
3
+ apiVersion: projectcontour.io/v1
4
+ kind: HTTPProxy
5
+ metadata:
6
+ name: www.cyberiaonline.com
7
+ spec:
8
+ virtualhost:
9
+ fqdn: www.cyberiaonline.com
10
+ routes:
11
+ - conditions:
12
+ - prefix: /
13
+ enableWebsockets: true
14
+ services:
15
+ - name: dd-cyberia-development-blue-service
16
+ port: 4005
17
+ weight: 100
18
+
19
+ ---
20
+ apiVersion: projectcontour.io/v1
21
+ kind: HTTPProxy
22
+ metadata:
23
+ name: cyberiaonline.com
24
+ spec:
25
+ virtualhost:
26
+ fqdn: cyberiaonline.com
27
+ routes:
28
+ - conditions:
29
+ - prefix: /
30
+ enableWebsockets: true
31
+ services:
32
+ - name: dd-cyberia-development-blue-service
33
+ port: 4006
34
+ weight: 100
35
+
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+
3
+ for iface_path in /sys/class/net/*; do
4
+ name=$(basename "$iface_path")
5
+ mac=$(< "$iface_path/address")
6
+ ip=$(ip -4 addr show dev "$name" \
7
+ | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || echo "—")
8
+ operstate=$(< "$iface_path/operstate")
9
+ mtu=$(< "$iface_path/mtu")
10
+
11
+ # Driver
12
+ if [ -L "$iface_path/device/driver" ]; then
13
+ driver=$(basename "$(readlink -f "$iface_path/device/driver")")
14
+ else
15
+ driver="—"
16
+ fi
17
+
18
+ # Vendor device ID PCI
19
+ pci_dev="$iface_path/device"
20
+ if [ -f "$pci_dev/vendor" ] && [ -f "$pci_dev/device" ]; then
21
+ vendor_id=$(< "$pci_dev/vendor")
22
+ device_id=$(< "$pci_dev/device")
23
+ # parse 0x8086 to 8086, etc.
24
+ vendor_id=${vendor_id#0x}
25
+ device_id=${device_id#0x}
26
+ pci="${vendor_id}:${device_id}"
27
+ else
28
+ pci="—"
29
+ fi
30
+
31
+ # Link Speed
32
+ speed=$(cat "$iface_path/speed" 2>/dev/null || echo "—")
33
+
34
+ echo "Interface: $name"
35
+ echo " MAC: $mac"
36
+ echo " IPv4: $ip"
37
+ echo " State: $operstate"
38
+ echo " MTU: $mtu"
39
+ echo " Driver: $driver"
40
+ echo " PCI Vendor:Device ID: $pci"
41
+ echo " Link Speed: ${speed}Mb/s"
42
+ echo
43
+ done
@@ -0,0 +1,19 @@
1
+ # GPUs and drivers in use
2
+ sudo lspci -nnk | egrep -i 'vga|3d' -A3
3
+
4
+ # modules loaded relevant
5
+ lsmod | egrep 'nvidia|nouveau|amdgpu' || true
6
+
7
+ # if exists nvidia tool
8
+ nvidia-smi 2>/dev/null || echo "nvidia-smi not found"
9
+
10
+ # kernel related errors
11
+ sudo dmesg | egrep -i 'nvidia|nouveau|amdgpu' --color=auto
12
+
13
+ # recent system errors / gdm / mutter / X
14
+ sudo journalctl -b -p err --no-pager | head -n 200
15
+ journalctl -b _COMM=gdm --no-pager | tail -n 200
16
+ journalctl -b _COMM=Xorg --no-pager | tail -n 200
17
+
18
+ # X log (if exists)
19
+ sudo grep -E "(EE|WW|NVIDIA|nouveau|amdgpu)" /var/log/Xorg.0.log || true
@@ -0,0 +1,120 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # Install jq for JSON parsing
5
+ sudo snap install jq
6
+
7
+ # Install MAAS
8
+ sudo snap install maas
9
+
10
+ # Get default interface and IP address
11
+ INTERFACE=$(ip route | grep default | awk '{print $5}')
12
+ IP_ADDRESS=$(ip -4 addr show dev "$INTERFACE" | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
13
+
14
+ # Change to the engine directory (assuming this is where your MAAS related configs are)
15
+ cd /home/dd/engine
16
+
17
+ # Load secrets for MAAS database and admin credentials
18
+ underpost secret underpost --create-from-file /home/dd/engine/engine-private/conf/dd-cron/.env.production
19
+
20
+ # Extract configuration values from secrets
21
+ DB_PG_MAAS_USER=$(node bin config get --plain DB_PG_MAAS_USER)
22
+ DB_PG_MAAS_PASS=$(node bin config get --plain DB_PG_MAAS_PASS)
23
+ DB_PG_MAAS_HOST=$(node bin config get --plain DB_PG_MAAS_HOST)
24
+ DB_PG_MAAS_NAME=$(node bin config get --plain DB_PG_MAAS_NAME)
25
+
26
+ MAAS_ADMIN_USERNAME=$(node bin config get --plain MAAS_ADMIN_USERNAME)
27
+ MAAS_ADMIN_EMAIL=$(node bin config get --plain MAAS_ADMIN_EMAIL)
28
+ MAAS_ADMIN_PASS=$(node bin config get --plain MAAS_ADMIN_PASS)
29
+
30
+ # Initialize MAAS region+rack controller
31
+ maas init region+rack \
32
+ --database-uri "postgres://${DB_PG_MAAS_USER}:${DB_PG_MAAS_PASS}@${DB_PG_MAAS_HOST}/${DB_PG_MAAS_NAME}" \
33
+ --maas-url http://${IP_ADDRESS}:5240/MAAS
34
+
35
+ # Allow MAAS to initialize (wait for services to come up)
36
+ echo "Waiting for MAAS to initialize..."
37
+ sleep 30
38
+
39
+ # Create MAAS administrator account
40
+ maas createadmin \
41
+ --username "$MAAS_ADMIN_USERNAME" \
42
+ --password "$MAAS_ADMIN_PASS" \
43
+ --email "$MAAS_ADMIN_EMAIL"
44
+
45
+ # Get the API key for the admin user
46
+ APIKEY=$(maas apikey --username "$MAAS_ADMIN_USERNAME")
47
+
48
+ # Login to MAAS using the admin profile
49
+ echo "Logging into MAAS..."
50
+ maas login "$MAAS_ADMIN_USERNAME" "http://localhost:5240/MAAS/" "$APIKEY"
51
+
52
+ # Set upstream DNS for MAAS
53
+ echo "Setting upstream DNS to 8.8.8.8..."
54
+ maas "$MAAS_ADMIN_USERNAME" maas set-config name=upstream_dns value=8.8.8.8
55
+
56
+ # echo "Downloading Ubuntu Noble amd64/ga-24.04 image..."
57
+ # maas $MAAS_ADMIN_USERNAME boot-source-selections create 1 \
58
+ # os="ubuntu" release="noble" arches="amd64" \
59
+ # subarches="ga-24.04" labels="*"
60
+
61
+ # echo "Downloading Ubuntu Noble arm64/ga-24.04 image..."
62
+ # maas $MAAS_ADMIN_USERNAME boot-source-selections create 1 \
63
+ # os="ubuntu" release="noble" arches="arm64" \
64
+ # subarches="ga-24.04" labels="*"
65
+
66
+ # Import the newly selected boot images
67
+ # echo "Importing boot images (this may take some time)..."
68
+ # maas "$MAAS_ADMIN_USERNAME" boot-resources import
69
+
70
+ # Disable the MAAS HTTP proxy
71
+ echo "Disabling MAAS HTTP proxy..."
72
+ maas "$MAAS_ADMIN_USERNAME" maas set-config name=enable_http_proxy value=false
73
+
74
+ # Disable DNSSEC validation
75
+ echo "Disabling DNSSEC validation..."
76
+ maas "$MAAS_ADMIN_USERNAME" maas set-config name=dnssec_validation value=no
77
+
78
+ # Set network discovery interval to 10 minutes (600 seconds)
79
+ echo "Setting network discovery interval to 10 minutes..."
80
+ maas "$MAAS_ADMIN_USERNAME" maas set-config name=active_discovery_interval value=600
81
+
82
+ SSH_KEY=$(cat ~/.ssh/id_rsa.pub)
83
+ maas $MAAS_ADMIN_USERNAME sshkeys create "key=$SSH_KEY"
84
+
85
+ echo "MAAS setup script completed with new configurations."
86
+
87
+
88
+ # maas $MAAS_ADMIN_USERNAME maas set-config name=default_storage_layout value=lvm
89
+ # maas $MAAS_ADMIN_USERNAME maas set-config name=network_discovery value=disabled
90
+ # maas $MAAS_ADMIN_USERNAME maas set-config name=enable_analytics value=false
91
+ # maas $MAAS_ADMIN_USERNAME maas set-config name=enable_third_party_drivers value=false
92
+ # maas $MAAS_ADMIN_USERNAME maas set-config name=curtin_verbose value=true
93
+
94
+
95
+
96
+ echo "Configuring DHCP for fabric-1 (untagged VLAN)..."
97
+
98
+ # Get the FABRIC_ID for "fabric-1"
99
+ SUBNET_CIDR="192.168.1.0/24"
100
+ SUBNET_ID=$(maas "$MAAS_ADMIN_USERNAME" subnets read | jq -r '.[] | select(.cidr == "'"$SUBNET_CIDR"'") | .id')
101
+ FABRIC_ID=$(maas "$MAAS_ADMIN_USERNAME" fabrics read | jq -r '.[] | select(.name == "fabric-1") | .id')
102
+ RACK_CONTROLLER_ID=$(maas "$MAAS_ADMIN_USERNAME" rack-controllers read | jq -r '.[] | select(.ip_addresses[] == "'"$IP_ADDRESS"'") | .system_id')
103
+ START_IP="192.168.1.191"
104
+ END_IP="192.168.1.254"
105
+
106
+ if [ -z "$FABRIC_ID" ]; then
107
+ echo "Error: Could not find FABRIC_ID for 'fabric-1'. Please ensure 'fabric-1' exists in MAAS."
108
+ exit 1
109
+ fi
110
+
111
+ # Create a Dynamic IP Range for enlistment, commissioning, and deployment
112
+ echo "Creating dynamic IP range from $START_IP to $END_IP..."
113
+ maas "$MAAS_ADMIN_USERNAME" ipranges create type=dynamic start_ip="$START_IP" end_ip="$END_IP"
114
+
115
+ # Enable DHCP on the untagged VLAN (VLAN tag 0)
116
+ echo "Enabling DHCP on VLAN 0 for fabric-1 (ID: $FABRIC_ID)..."
117
+ maas "$MAAS_ADMIN_USERNAME" vlan update "$FABRIC_ID" 0 dhcp_on=true primary_rack="$RACK_CONTROLLER_ID"
118
+
119
+ echo "Setting gateway IP for subnet $SUBNET_CIDR (ID: $SUBNET_ID) to $IP_ADDRESS..."
120
+ maas "$MAAS_ADMIN_USERNAME" subnet update $SUBNET_ID gateway_ip=$IP_ADDRESS
@@ -0,0 +1,26 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # Disable firewalld
5
+ sudo systemctl disable --now iptables
6
+ sudo systemctl disable --now ufw
7
+ sudo systemctl disable --now firewalld
8
+
9
+
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
+ # ---
16
+
17
+ sudo sysctl -p
18
+
19
+ # Accept all traffic
20
+ sudo iptables -P INPUT ACCEPT
21
+ sudo iptables -P FORWARD ACCEPT
22
+ sudo iptables -P OUTPUT ACCEPT
23
+
24
+ # List iptables rules and forwarding flag
25
+ sudo iptables -L -n
26
+ sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding
@@ -0,0 +1,91 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ sudo dnf install -y neovim
5
+
6
+
7
+ sudo rm -rf ~/.config/nvim
8
+ sudo rm -rf ~/.local/share/nvim
9
+
10
+ mkdir -p ~/.config/nvim
11
+ mkdir -p ~/.local/share/nvim/site/autoload
12
+
13
+ # Install vim-plug for Neovim
14
+ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
15
+ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
16
+
17
+ # Create an init.vim with nvim-tree.lua + web-devicons + gruvbox (theme)
18
+ cat > ~/.config/nvim/init.vim <<'EOF'
19
+ " Minimal init.vim to use nvim-tree.lua + gruvbox theme via vim-plug
20
+
21
+ " --- vim-plug manager
22
+ call plug#begin('~/.local/share/nvim/plugged')
23
+
24
+ " file explorer (nvim-tree)
25
+ Plug 'nvim-tree/nvim-tree.lua'
26
+ Plug 'nvim-tree/nvim-web-devicons' " optional: file icons
27
+
28
+ " colorscheme
29
+ Plug 'morhetz/gruvbox'
30
+
31
+ " sensible defaults, optional
32
+ Plug 'tpope/vim-sensible'
33
+
34
+ call plug#end()
35
+
36
+ " --- UI settings
37
+ syntax on
38
+ filetype plugin indent on
39
+ set number
40
+ set relativenumber
41
+ if has('termguicolors')
42
+ set termguicolors
43
+ endif
44
+ set background=dark
45
+
46
+ " gruvbox options (optional)
47
+ let g:gruvbox_contrast_dark = 'soft'
48
+ colorscheme gruvbox
49
+
50
+ " --- nvim-tree configuration (Lua block)
51
+ lua << 'LUA'
52
+ -- safe require
53
+ local ok, tree = pcall(require, "nvim-tree")
54
+ if not ok then
55
+ return
56
+ end
57
+ tree.setup{
58
+ view = {
59
+ width = 30,
60
+ side = "left",
61
+ preserve_window_proportions = true,
62
+ },
63
+ renderer = {
64
+ indent_markers = { enable = true },
65
+ },
66
+ actions = {
67
+ open_file = {
68
+ quit_on_open = false,
69
+ }
70
+ }
71
+ }
72
+ LUA
73
+
74
+ " --- mappings: Ctrl-n toggles nvim-tree
75
+ nnoremap <C-n> :NvimTreeToggle<CR>
76
+
77
+ " Open nvim-tree on startup when opening nvim with no file args
78
+ autocmd StdinReadPre * let s:std_in=1
79
+ autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NvimTreeToggle | wincmd p | endif
80
+ EOF
81
+
82
+ # Fix permissions in case something was left owned by root (happens if you used sudo on these paths before)
83
+ sudo chown -R "$USER":"$USER" ~/.config/nvim ~/.local/share/nvim 2>/dev/null || true
84
+
85
+ # Install plugins automatically (non-interactive)
86
+ nvim +PlugInstall +qall
87
+
88
+ echo
89
+ echo "Done. Plugins installed."
90
+ echo "Run 'nvim' and press Ctrl-n to toggle the file tree."
91
+ echo "If colorscheme is not correct, ensure your terminal supports truecolor and TERM is xterm-256color."
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env bash
2
+ # cleanup-snap.sh
3
+ # Remove all disabled snap revisions to free up disk space.
4
+
5
+ set -euo pipefail
6
+
7
+ # Ensure we’re running as root
8
+ if [[ $EUID -ne 0 ]]; then
9
+ echo "Please run this script with sudo or as root."
10
+ exit 1
11
+ fi
12
+
13
+ echo "Gathering list of snaps with disabled revisions..."
14
+ snap list --all \
15
+ | awk '/disabled/ {print $1, $3}' \
16
+ | while read -r pkg rev; do
17
+ echo " -> Removing $pkg (revision $rev)..."
18
+ snap remove "$pkg" --revision="$rev"
19
+ done
20
+
21
+ echo "Cleanup complete."
22
+ echo
23
+ echo "Tip: Limit how many revisions Snap retains by setting:"
24
+ echo " sudo snap set system refresh.retain=2"
25
+ echo "Then apply with:"
26
+ echo " sudo snap refresh"
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ REMOTE_USER=$(node bin config get --plain DEFAULT_SSH_USER)
5
+ REMOTE_HOST=$(node bin config get --plain DEFAULT_SSH_HOST)
6
+ SSH_KEY=$(node bin config get --plain DEFAULT_SSH_KEY_PATH)
7
+
8
+ chmod 600 "$SSH_KEY"
9
+
10
+ ssh -i "$SSH_KEY" -o BatchMode=yes "${REMOTE_USER}@${REMOTE_HOST}" sh <<EOF
11
+ cd /home/dd/engine
12
+ node bin deploy dd production --info-traffic
13
+ kubectl get pods -A
14
+ EOF