blockmine 1.20.0 → 1.22.0

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 (434) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +55 -0
  55. package/.claude/settings.local.json +28 -3
  56. package/.claude/skills/README.md +507 -0
  57. package/.claude/skills/api-engineering/SKILL.md +63 -0
  58. package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
  59. package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
  60. package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
  61. package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
  62. package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
  63. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  64. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  65. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  66. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  67. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  68. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  69. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  70. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  71. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  72. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  73. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  74. package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
  75. package/.claude/skills/build-engineering/SKILL.md +431 -0
  76. package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
  77. package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
  78. package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
  79. package/.claude/skills/build-engineering/resources/build-security.md +95 -0
  80. package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
  81. package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
  82. package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
  83. package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
  84. package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
  85. package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
  86. package/.claude/skills/cloud-engineering/SKILL.md +675 -0
  87. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
  88. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
  89. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
  90. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
  91. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
  92. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
  93. package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
  94. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
  95. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
  96. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
  97. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
  98. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
  99. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
  100. package/.claude/skills/cybersecurity/SKILL.md +409 -0
  101. package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
  102. package/.claude/skills/database-engineering/SKILL.md +61 -0
  103. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
  104. package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
  105. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
  106. package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
  107. package/.claude/skills/devsecops/SKILL.md +374 -0
  108. package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
  109. package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
  110. package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
  111. package/.claude/skills/devsecops/resources/container-security.md +915 -0
  112. package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
  113. package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
  114. package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
  115. package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
  116. package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
  117. package/.claude/skills/devsecops/resources/security-testing.md +203 -0
  118. package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
  119. package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
  120. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
  121. package/.claude/skills/documentation-as-code/SKILL.md +323 -0
  122. package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
  123. package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
  124. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
  125. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
  126. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
  127. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
  128. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
  129. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
  130. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
  131. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
  132. package/.claude/skills/engineering-management/SKILL.md +356 -0
  133. package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
  134. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
  135. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
  136. package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
  137. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
  138. package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
  139. package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
  140. package/.claude/skills/error-tracking/SKILL.md +379 -0
  141. package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
  142. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  143. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  144. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  145. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  146. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  147. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  148. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  149. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  150. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  151. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  152. package/.claude/skills/general-it-engineering/SKILL.md +393 -0
  153. package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
  154. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
  155. package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
  156. package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
  157. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
  158. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
  159. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
  160. package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
  161. package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
  162. package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
  163. package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
  164. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
  165. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
  166. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
  167. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
  168. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
  169. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
  170. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
  171. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
  172. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
  173. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
  174. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
  175. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
  176. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
  177. package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
  178. package/.claude/skills/network-engineering/SKILL.md +385 -0
  179. package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
  180. package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
  181. package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
  182. package/.claude/skills/network-engineering/resources/network-security.md +921 -0
  183. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
  184. package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
  185. package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
  186. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
  187. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
  188. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
  189. package/.claude/skills/observability-engineering/SKILL.md +101 -0
  190. package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
  191. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
  192. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
  193. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
  194. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
  195. package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
  196. package/.claude/skills/platform-engineering/SKILL.md +555 -0
  197. package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
  198. package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
  199. package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
  200. package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
  201. package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
  202. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
  203. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
  204. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
  205. package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
  206. package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
  207. package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
  208. package/.claude/skills/release-engineering/SKILL.md +393 -0
  209. package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
  210. package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
  211. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
  212. package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
  213. package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
  214. package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
  215. package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
  216. package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
  217. package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
  218. package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
  219. package/.claude/skills/route-tester/SKILL.md +392 -0
  220. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  221. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  222. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  223. package/.claude/skills/skill-developer/SKILL.md +430 -0
  224. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  225. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  226. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  227. package/.claude/skills/skill-rules.json +2940 -0
  228. package/.claude/skills/sre/SKILL.md +464 -0
  229. package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
  230. package/.claude/skills/sre/resources/capacity-planning.md +226 -0
  231. package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
  232. package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
  233. package/.claude/skills/sre/resources/incident-management.md +436 -0
  234. package/.claude/skills/sre/resources/observability-stack.md +240 -0
  235. package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
  236. package/.claude/skills/sre/resources/performance-optimization.md +108 -0
  237. package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
  238. package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
  239. package/.claude/skills/sre/resources/toil-reduction.md +145 -0
  240. package/.claude/skills/systems-engineering/SKILL.md +648 -0
  241. package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
  242. package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
  243. package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
  244. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
  245. package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
  246. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
  247. package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
  248. package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
  249. package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
  250. package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
  251. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
  252. package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
  253. package/.claude/skills/technical-leadership/SKILL.md +728 -0
  254. package/CHANGELOG.md +90 -39
  255. package/README.md +94 -0
  256. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  257. package/backend/jest.config.js +59 -0
  258. package/backend/package-lock.json +6129 -0
  259. package/backend/package.json +16 -4
  260. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  261. package/backend/prisma/schema.prisma +33 -0
  262. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  263. package/backend/src/__tests__/core/UserService.test.js +875 -0
  264. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  265. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  266. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  267. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  268. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  269. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  270. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  271. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  272. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  273. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  274. package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
  275. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  276. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  277. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  278. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  279. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  280. package/backend/src/__tests__/setup.js +25 -0
  281. package/backend/src/api/routes/apiKeys.js +181 -0
  282. package/backend/src/api/routes/bots.js +49 -7
  283. package/backend/src/api/routes/plugins.js +2 -1
  284. package/backend/src/api/routes/system.js +174 -0
  285. package/backend/src/container.js +82 -0
  286. package/backend/src/core/BotManager.js +142 -871
  287. package/backend/src/core/BotManager.old.js +1093 -0
  288. package/backend/src/core/BotProcess.js +1092 -850
  289. package/backend/src/core/BreakLoopSignal.js +8 -0
  290. package/backend/src/core/EventGraphManager.js +280 -193
  291. package/backend/src/core/GraphExecutionEngine.js +321 -928
  292. package/backend/src/core/MessageQueue.js +27 -6
  293. package/backend/src/core/NodeRegistry.js +37 -991
  294. package/backend/src/core/PluginManager.js +62 -12
  295. package/backend/src/core/PrismaService.js +32 -0
  296. package/backend/src/core/UserService.js +3 -3
  297. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  298. package/backend/src/core/commands/README.md +305 -0
  299. package/backend/src/core/commands/dev.js +13 -7
  300. package/backend/src/core/commands/ping.js +10 -4
  301. package/backend/src/core/commands/whois.js +63 -0
  302. package/backend/src/core/config/validation.js +27 -0
  303. package/backend/src/core/constants/graphTypes.js +21 -0
  304. package/backend/src/core/node-registries/actions.js +132 -0
  305. package/backend/src/core/node-registries/arrays.js +137 -0
  306. package/backend/src/core/node-registries/bot.js +23 -0
  307. package/backend/src/core/node-registries/data.js +290 -0
  308. package/backend/src/core/node-registries/debug.js +26 -0
  309. package/backend/src/core/node-registries/events.js +187 -0
  310. package/backend/src/core/node-registries/flow.js +139 -0
  311. package/backend/src/core/node-registries/logic.js +45 -0
  312. package/backend/src/core/node-registries/math.js +42 -0
  313. package/backend/src/core/node-registries/objects.js +98 -0
  314. package/backend/src/core/node-registries/strings.js +153 -0
  315. package/backend/src/core/node-registries/time.js +113 -0
  316. package/backend/src/core/node-registries/users.js +79 -0
  317. package/backend/src/core/nodes/actions/bot_look_at.js +36 -0
  318. package/backend/src/core/nodes/actions/bot_set_variable.js +32 -0
  319. package/backend/src/core/nodes/actions/http_request.js +98 -0
  320. package/backend/src/core/nodes/actions/send_log.js +28 -0
  321. package/backend/src/core/nodes/actions/send_message.js +32 -0
  322. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  323. package/backend/src/core/nodes/arrays/add_element.js +23 -0
  324. package/backend/src/core/nodes/arrays/contains.js +40 -0
  325. package/backend/src/core/nodes/arrays/find_index.js +23 -0
  326. package/backend/src/core/nodes/arrays/get_by_index.js +23 -0
  327. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  328. package/backend/src/core/nodes/arrays/get_random_element.js +32 -0
  329. package/backend/src/core/nodes/arrays/remove_by_index.js +30 -0
  330. package/backend/src/core/nodes/bot/get_position.js +20 -0
  331. package/backend/src/core/nodes/data/array_literal.js +31 -0
  332. package/backend/src/core/nodes/data/boolean_literal.js +21 -0
  333. package/backend/src/core/nodes/data/cast.js +42 -0
  334. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  335. package/backend/src/core/nodes/data/entity_info.js +69 -0
  336. package/backend/src/core/nodes/data/get_argument.js +23 -0
  337. package/backend/src/core/nodes/data/get_bot_look.js +14 -0
  338. package/backend/src/core/nodes/data/get_entity_field.js +18 -0
  339. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  340. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  341. package/backend/src/core/nodes/data/get_server_players.js +18 -0
  342. package/backend/src/core/nodes/data/get_user_field.js +40 -0
  343. package/backend/src/core/nodes/data/get_variable.js +23 -0
  344. package/backend/src/core/nodes/data/length.js +25 -0
  345. package/backend/src/core/nodes/data/make_object.js +31 -0
  346. package/backend/src/core/nodes/data/number_literal.js +21 -0
  347. package/backend/src/core/nodes/data/string_literal.js +34 -0
  348. package/backend/src/core/nodes/data/type_check.js +53 -0
  349. package/backend/src/core/nodes/debug/log.js +16 -0
  350. package/backend/src/core/nodes/flow/branch.js +15 -0
  351. package/backend/src/core/nodes/flow/break.js +14 -0
  352. package/backend/src/core/nodes/flow/delay.js +43 -0
  353. package/backend/src/core/nodes/flow/for_each.js +39 -0
  354. package/backend/src/core/nodes/flow/sequence.js +16 -0
  355. package/backend/src/core/nodes/flow/switch.js +47 -0
  356. package/backend/src/core/nodes/flow/while.js +64 -0
  357. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  358. package/backend/src/core/nodes/logic/compare.js +33 -0
  359. package/backend/src/core/nodes/logic/operation.js +35 -0
  360. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  361. package/backend/src/core/nodes/math/operation.js +31 -0
  362. package/backend/src/core/nodes/math/random_number.js +43 -0
  363. package/backend/src/core/nodes/objects/create.js +40 -0
  364. package/backend/src/core/nodes/objects/delete.js +26 -0
  365. package/backend/src/core/nodes/objects/get.js +23 -0
  366. package/backend/src/core/nodes/objects/has_key.js +30 -0
  367. package/backend/src/core/nodes/objects/set.js +27 -0
  368. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  369. package/backend/src/core/nodes/strings/concat.js +27 -0
  370. package/backend/src/core/nodes/strings/contains.js +41 -0
  371. package/backend/src/core/nodes/strings/ends_with.js +43 -0
  372. package/backend/src/core/nodes/strings/equals.js +36 -0
  373. package/backend/src/core/nodes/strings/length.js +36 -0
  374. package/backend/src/core/nodes/strings/matches.js +39 -0
  375. package/backend/src/core/nodes/strings/split.js +37 -0
  376. package/backend/src/core/nodes/strings/starts_with.js +43 -0
  377. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  378. package/backend/src/core/nodes/time/add.js +33 -0
  379. package/backend/src/core/nodes/time/compare.js +35 -0
  380. package/backend/src/core/nodes/time/diff.js +29 -0
  381. package/backend/src/core/nodes/time/format.js +32 -0
  382. package/backend/src/core/nodes/time/now.js +18 -0
  383. package/backend/src/core/nodes/users/check_blacklist.js +37 -0
  384. package/backend/src/core/nodes/users/get_groups.js +36 -0
  385. package/backend/src/core/nodes/users/get_permissions.js +36 -0
  386. package/backend/src/core/nodes/users/set_blacklist.js +37 -0
  387. package/backend/src/core/services/BotLifecycleService.js +596 -0
  388. package/backend/src/core/services/BotProcessManager.js +163 -0
  389. package/backend/src/core/services/CacheManager.js +111 -0
  390. package/backend/src/core/services/CommandExecutionService.js +351 -0
  391. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  392. package/backend/src/core/services/TelemetryService.js +124 -0
  393. package/backend/src/core/services/ValidationService.js +132 -0
  394. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  395. package/backend/src/core/services.js +20 -5
  396. package/backend/src/core/system/CommandContext.js +84 -0
  397. package/backend/src/core/system/Transport.js +78 -0
  398. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  399. package/backend/src/core/utils/jsonParser.js +18 -0
  400. package/backend/src/core/utils/secretsFilter.js +262 -0
  401. package/backend/src/core/utils/variableParser.js +89 -0
  402. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  403. package/backend/src/core/validation/nodeSchemas.js +112 -0
  404. package/backend/src/lib/prisma.js +2 -4
  405. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  406. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  407. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  408. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  409. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  410. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  411. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  412. package/backend/src/real-time/botApi/index.js +40 -0
  413. package/backend/src/real-time/botApi/middleware.js +79 -0
  414. package/backend/src/real-time/botApi/utils.js +54 -0
  415. package/backend/src/real-time/socketHandler.js +6 -2
  416. package/backend/src/repositories/BaseRepository.js +43 -0
  417. package/backend/src/repositories/BotRepository.js +42 -0
  418. package/backend/src/repositories/CommandRepository.js +53 -0
  419. package/backend/src/repositories/EventGraphRepository.js +40 -0
  420. package/backend/src/repositories/GroupRepository.js +69 -0
  421. package/backend/src/repositories/PermissionRepository.js +48 -0
  422. package/backend/src/repositories/PluginRepository.js +42 -0
  423. package/backend/src/repositories/ServerRepository.js +27 -0
  424. package/backend/src/repositories/UserRepository.js +48 -0
  425. package/backend/src/server.js +3 -0
  426. package/backend/src/test-refactor.js +85 -0
  427. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  428. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  429. package/frontend/dist/index.html +2 -2
  430. package/frontend/package.json +1 -5
  431. package/package.json +2 -1
  432. package/frontend/dist/assets/index-BFd7YoAj.css +0 -1
  433. package/frontend/dist/assets/index-CMMutadc.js +0 -8352
  434. package/nul +0 -0
@@ -0,0 +1,628 @@
1
+ # Storage Management
2
+
3
+ Comprehensive guide to Linux storage management covering LVM operations, RAID configurations, filesystem selection, backup strategies, and capacity planning.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Storage Architecture](#storage-architecture)
8
+ - [LVM Operations](#lvm-operations)
9
+ - [RAID Configurations](#raid-configurations)
10
+ - [Filesystem Selection](#filesystem-selection)
11
+ - [Backup Strategies](#backup-strategies)
12
+ - [Snapshot Management](#snapshot-management)
13
+ - [Performance Monitoring](#performance-monitoring)
14
+ - [Capacity Planning](#capacity-planning)
15
+
16
+ ## Storage Architecture
17
+
18
+ ### Storage Stack
19
+
20
+ ```
21
+ Applications
22
+
23
+ Filesystem (ext4, xfs, btrfs)
24
+
25
+ Logical Volume (LVM)
26
+
27
+ RAID (mdadm)
28
+
29
+ Physical Devices (SSD, HDD)
30
+ ```
31
+
32
+ ### Disk Information
33
+
34
+ ```bash
35
+ # List block devices
36
+ lsblk
37
+ lsblk -f # With filesystem info
38
+
39
+ # Disk details
40
+ sudo fdisk -l
41
+ sudo parted -l
42
+
43
+ # Disk usage
44
+ df -h
45
+ df -i # Inode usage
46
+
47
+ # SMART info (disk health)
48
+ sudo apt install smartmontools
49
+ sudo smartctl -a /dev/sda
50
+ sudo smartctl -H /dev/sda # Health summary
51
+ ```
52
+
53
+ ## LVM Operations
54
+
55
+ ### LVM Concepts
56
+
57
+ ```
58
+ Physical Volumes (PV) → Volume Groups (VG) → Logical Volumes (LV)
59
+ /dev/sda1, /dev/sdb1 → vg_data → lv_data, lv_logs
60
+ ```
61
+
62
+ ### Creating LVM
63
+
64
+ ```bash
65
+ # 1. Create physical volume
66
+ sudo pvcreate /dev/sdb
67
+ sudo pvcreate /dev/sdc
68
+
69
+ # View PVs
70
+ sudo pvdisplay
71
+ sudo pvs
72
+
73
+ # 2. Create volume group
74
+ sudo vgcreate vg_data /dev/sdb /dev/sdc
75
+
76
+ # View VGs
77
+ sudo vgdisplay
78
+ sudo vgs
79
+
80
+ # 3. Create logical volume
81
+ sudo lvcreate -L 100G -n lv_data vg_data
82
+ # Or use percentage
83
+ sudo lvcreate -l 100%FREE -n lv_data vg_data
84
+
85
+ # View LVs
86
+ sudo lvdisplay
87
+ sudo lvs
88
+
89
+ # 4. Create filesystem
90
+ sudo mkfs.ext4 /dev/vg_data/lv_data
91
+
92
+ # 5. Mount
93
+ sudo mkdir -p /mnt/data
94
+ sudo mount /dev/vg_data/lv_data /mnt/data
95
+
96
+ # 6. Add to fstab
97
+ echo '/dev/vg_data/lv_data /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab
98
+ ```
99
+
100
+ ### Extending LVM
101
+
102
+ ```bash
103
+ # Add new disk to VG
104
+ sudo pvcreate /dev/sdd
105
+ sudo vgextend vg_data /dev/sdd
106
+
107
+ # Extend logical volume
108
+ sudo lvextend -L +50G /dev/vg_data/lv_data
109
+ # Or use all free space
110
+ sudo lvextend -l +100%FREE /dev/vg_data/lv_data
111
+
112
+ # Resize filesystem
113
+ # ext4
114
+ sudo resize2fs /dev/vg_data/lv_data
115
+
116
+ # xfs
117
+ sudo xfs_growfs /mnt/data
118
+
119
+ # All in one (extend LV and resize FS)
120
+ sudo lvextend -L +50G -r /dev/vg_data/lv_data
121
+ ```
122
+
123
+ ### Reducing LVM (ext4 only, not xfs)
124
+
125
+ ```bash
126
+ # CAUTION: Back up data first!
127
+ # Cannot shrink mounted filesystem
128
+
129
+ # 1. Unmount
130
+ sudo umount /mnt/data
131
+
132
+ # 2. Check filesystem
133
+ sudo e2fsck -f /dev/vg_data/lv_data
134
+
135
+ # 3. Resize filesystem first
136
+ sudo resize2fs /dev/vg_data/lv_data 50G
137
+
138
+ # 4. Reduce LV
139
+ sudo lvreduce -L 50G /dev/vg_data/lv_data
140
+
141
+ # 5. Remount
142
+ sudo mount /dev/vg_data/lv_data /mnt/data
143
+ ```
144
+
145
+ ### LVM Snapshots
146
+
147
+ ```bash
148
+ # Create snapshot (10G for changes)
149
+ sudo lvcreate -L 10G -s -n lv_data_snap /dev/vg_data/lv_data
150
+
151
+ # Mount snapshot
152
+ sudo mkdir -p /mnt/snap
153
+ sudo mount /dev/vg_data/lv_data_snap /mnt/snap
154
+
155
+ # Use for backup
156
+ tar -czf /backup/data-$(date +%Y%m%d).tar.gz -C /mnt/snap .
157
+
158
+ # Remove snapshot
159
+ sudo umount /mnt/snap
160
+ sudo lvremove /dev/vg_data/lv_data_snap
161
+
162
+ # Revert to snapshot (restore)
163
+ sudo umount /mnt/data
164
+ sudo lvconvert --merge /dev/vg_data/lv_data_snap
165
+ # Reboot to complete merge
166
+ sudo reboot
167
+ ```
168
+
169
+ ### Removing LVM
170
+
171
+ ```bash
172
+ # 1. Unmount
173
+ sudo umount /mnt/data
174
+
175
+ # 2. Remove LV
176
+ sudo lvremove /dev/vg_data/lv_data
177
+
178
+ # 3. Remove VG
179
+ sudo vgremove vg_data
180
+
181
+ # 4. Remove PV
182
+ sudo pvremove /dev/sdb /dev/sdc
183
+ ```
184
+
185
+ ## RAID Configurations
186
+
187
+ ### RAID Levels
188
+
189
+ ```
190
+ RAID 0 (Striping)
191
+ - Min disks: 2
192
+ - Capacity: Sum of all disks
193
+ - Performance: Excellent (read/write)
194
+ - Redundancy: None
195
+ - Use: Non-critical data, temp storage
196
+
197
+ RAID 1 (Mirroring)
198
+ - Min disks: 2
199
+ - Capacity: Size of smallest disk
200
+ - Performance: Good read, normal write
201
+ - Redundancy: Can lose N-1 disks
202
+ - Use: Critical data, boot drives
203
+
204
+ RAID 5 (Striping + Parity)
205
+ - Min disks: 3
206
+ - Capacity: (N-1) × disk size
207
+ - Performance: Good read, moderate write
208
+ - Redundancy: Can lose 1 disk
209
+ - Use: File servers, general storage
210
+
211
+ RAID 6 (Striping + Double Parity)
212
+ - Min disks: 4
213
+ - Capacity: (N-2) × disk size
214
+ - Performance: Good read, slower write
215
+ - Redundancy: Can lose 2 disks
216
+ - Use: Large arrays, critical data
217
+
218
+ RAID 10 (Mirror + Stripe)
219
+ - Min disks: 4
220
+ - Capacity: (N/2) × disk size
221
+ - Performance: Excellent
222
+ - Redundancy: Can lose 1 disk per mirror
223
+ - Use: Databases, high performance
224
+ ```
225
+
226
+ ### Creating RAID with mdadm
227
+
228
+ ```bash
229
+ # Install mdadm
230
+ sudo apt install mdadm
231
+
232
+ # RAID 1 (mirror)
233
+ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
234
+
235
+ # RAID 5
236
+ sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
237
+
238
+ # RAID 10
239
+ sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
240
+
241
+ # Check status
242
+ cat /proc/mdstat
243
+ sudo mdadm --detail /dev/md0
244
+
245
+ # Create filesystem
246
+ sudo mkfs.ext4 /dev/md0
247
+
248
+ # Mount
249
+ sudo mkdir -p /mnt/raid
250
+ sudo mount /dev/md0 /mnt/raid
251
+
252
+ # Save configuration
253
+ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
254
+ sudo update-initramfs -u
255
+
256
+ # Add to fstab
257
+ echo '/dev/md0 /mnt/raid ext4 defaults 0 2' | sudo tee -a /etc/fstab
258
+ ```
259
+
260
+ ### RAID Maintenance
261
+
262
+ ```bash
263
+ # Monitor RAID
264
+ cat /proc/mdstat
265
+ sudo mdadm --detail /dev/md0
266
+
267
+ # Check for errors
268
+ sudo mdadm --examine /dev/sdb
269
+ dmesg | grep md
270
+
271
+ # Replace failed disk
272
+ # 1. Mark disk as failed (if not auto-detected)
273
+ sudo mdadm /dev/md0 --fail /dev/sdb
274
+
275
+ # 2. Remove failed disk
276
+ sudo mdadm /dev/md0 --remove /dev/sdb
277
+
278
+ # 3. Physically replace disk
279
+
280
+ # 4. Add new disk
281
+ sudo mdadm /dev/md0 --add /dev/sdb
282
+
283
+ # 5. Monitor rebuild
284
+ watch cat /proc/mdstat
285
+
286
+ # Stop RAID
287
+ sudo umount /mnt/raid
288
+ sudo mdadm --stop /dev/md0
289
+
290
+ # Remove RAID
291
+ sudo mdadm --remove /dev/md0
292
+ sudo mdadm --zero-superblock /dev/sdb /dev/sdc
293
+ ```
294
+
295
+ ## Filesystem Selection
296
+
297
+ ### Filesystem Comparison
298
+
299
+ ```
300
+ ext4
301
+ - Mature, stable
302
+ - Max file: 16TB
303
+ - Max volume: 1EB
304
+ - Good general performance
305
+ - No built-in compression
306
+ - Use: General purpose, boot drives
307
+
308
+ xfs
309
+ - High performance
310
+ - Max file: 8EB
311
+ - Max volume: 8EB
312
+ - Excellent for large files
313
+ - Cannot shrink
314
+ - Use: Large files, databases, NFS
315
+
316
+ btrfs
317
+ - Modern features
318
+ - Snapshots, compression
319
+ - Self-healing with redundancy
320
+ - CoW (Copy-on-Write)
321
+ - Still maturing
322
+ - Use: Advanced features needed
323
+
324
+ ZFS
325
+ - Enterprise features
326
+ - Built-in RAID
327
+ - Compression, deduplication
328
+ - High memory usage
329
+ - Licensing concerns
330
+ - Use: Enterprise storage
331
+ ```
332
+
333
+ ### Creating Filesystems
334
+
335
+ ```bash
336
+ # ext4
337
+ sudo mkfs.ext4 /dev/sdb1
338
+ sudo mkfs.ext4 -L "data_volume" /dev/sdb1 # With label
339
+
340
+ # xfs
341
+ sudo mkfs.xfs /dev/sdb1
342
+ sudo mkfs.xfs -L "data_volume" /dev/sdb1
343
+
344
+ # btrfs
345
+ sudo mkfs.btrfs /dev/sdb1
346
+ sudo mkfs.btrfs -L "data_volume" /dev/sdb1
347
+
348
+ # Check filesystem
349
+ sudo fsck.ext4 /dev/sdb1
350
+ sudo xfs_repair /dev/sdb1
351
+ sudo btrfs check /dev/sdb1
352
+ ```
353
+
354
+ ### Filesystem Tuning
355
+
356
+ ```bash
357
+ # ext4 optimization
358
+ # Reserve less space for root (default 5%)
359
+ sudo tune2fs -m 1 /dev/sdb1
360
+
361
+ # Disable access time updates
362
+ # Add to /etc/fstab
363
+ /dev/sdb1 /data ext4 noatime,nodiratime 0 2
364
+
365
+ # xfs optimization
366
+ # Mount options in /etc/fstab
367
+ /dev/sdb1 /data xfs noatime,nodiratime,logbufs=8,logbsize=256k 0 2
368
+
369
+ # View filesystem info
370
+ sudo tune2fs -l /dev/sdb1 # ext4
371
+ sudo xfs_info /dev/sdb1 # xfs
372
+ ```
373
+
374
+ ## Backup Strategies
375
+
376
+ ### Backup Methods
377
+
378
+ #### 1. rsync Backups
379
+
380
+ ```bash
381
+ # Basic rsync backup
382
+ rsync -avz --delete /source/ /backup/
383
+
384
+ # Remote backup
385
+ rsync -avz -e ssh /source/ user@backup-server:/backup/
386
+
387
+ # Exclude files
388
+ rsync -avz --exclude='*.tmp' --exclude='cache/' /source/ /backup/
389
+
390
+ # Incremental backup with hard links
391
+ rsync -avz --link-dest=/backup/2024-01-01/ /source/ /backup/2024-01-02/
392
+
393
+ # Backup script with rotation
394
+ #!/bin/bash
395
+ SOURCE="/data"
396
+ BACKUP_DIR="/backup"
397
+ DATE=$(date +%Y-%m-%d)
398
+ LATEST="$BACKUP_DIR/latest"
399
+
400
+ # Create backup with hard links to previous
401
+ rsync -avz --delete --link-dest="$LATEST" "$SOURCE/" "$BACKUP_DIR/$DATE/"
402
+
403
+ # Update latest link
404
+ rm -f "$LATEST"
405
+ ln -s "$DATE" "$LATEST"
406
+
407
+ # Delete backups older than 30 days
408
+ find "$BACKUP_DIR" -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
409
+ ```
410
+
411
+ #### 2. tar Backups
412
+
413
+ ```bash
414
+ # Create archive
415
+ tar -czf backup-$(date +%Y%m%d).tar.gz /data
416
+
417
+ # Incremental backup
418
+ tar -czf full-backup.tar.gz -g snapshot.file /data
419
+ # Later incremental
420
+ tar -czf inc-backup.tar.gz -g snapshot.file /data
421
+
422
+ # Extract
423
+ tar -xzf backup.tar.gz -C /restore/
424
+
425
+ # Verify
426
+ tar -tzf backup.tar.gz
427
+ ```
428
+
429
+ #### 3. restic (Modern Backup Tool)
430
+
431
+ ```bash
432
+ # Install restic
433
+ sudo apt install restic
434
+
435
+ # Initialize repository
436
+ restic init --repo /backup/restic
437
+
438
+ # Backup
439
+ restic backup /data --repo /backup/restic
440
+
441
+ # List snapshots
442
+ restic snapshots --repo /backup/restic
443
+
444
+ # Restore
445
+ restic restore latest --target /restore --repo /backup/restic
446
+
447
+ # Forget old backups
448
+ restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --repo /backup/restic
449
+ restic prune --repo /backup/restic
450
+ ```
451
+
452
+ #### 4. Borg Backup
453
+
454
+ ```bash
455
+ # Install
456
+ sudo apt install borgbackup
457
+
458
+ # Initialize
459
+ borg init --encryption=repokey /backup/borg
460
+
461
+ # Create backup
462
+ borg create /backup/borg::$(date +%Y-%m-%d) /data
463
+
464
+ # List archives
465
+ borg list /backup/borg
466
+
467
+ # Restore
468
+ borg extract /backup/borg::2024-01-01
469
+
470
+ # Prune old backups
471
+ borg prune /backup/borg --keep-daily=7 --keep-weekly=4 --keep-monthly=6
472
+ ```
473
+
474
+ ### Backup Strategy (3-2-1 Rule)
475
+
476
+ ```
477
+ 3 copies of data
478
+ 2 different media types
479
+ 1 offsite copy
480
+
481
+ Example:
482
+ - Original data on server
483
+ - Local backup on NAS
484
+ - Cloud backup (AWS S3, Backblaze B2)
485
+ ```
486
+
487
+ ## Snapshot Management
488
+
489
+ ### LVM Snapshots (covered above)
490
+
491
+ ### btrfs Snapshots
492
+
493
+ ```bash
494
+ # Create snapshot
495
+ sudo btrfs subvolume snapshot /mnt/data /mnt/data/.snapshots/$(date +%Y-%m-%d)
496
+
497
+ # List snapshots
498
+ sudo btrfs subvolume list /mnt/data
499
+
500
+ # Delete snapshot
501
+ sudo btrfs subvolume delete /mnt/data/.snapshots/2024-01-01
502
+
503
+ # Automated snapshots
504
+ #!/bin/bash
505
+ SUBVOL="/mnt/data"
506
+ SNAP_DIR="$SUBVOL/.snapshots"
507
+
508
+ mkdir -p "$SNAP_DIR"
509
+
510
+ # Create snapshot
511
+ sudo btrfs subvolume snapshot -r "$SUBVOL" "$SNAP_DIR/$(date +%Y-%m-%d-%H%M%S)"
512
+
513
+ # Keep only last 7 days
514
+ find "$SNAP_DIR" -maxdepth 1 -type d -mtime +7 | while read snap; do
515
+ sudo btrfs subvolume delete "$snap"
516
+ done
517
+ ```
518
+
519
+ ## Performance Monitoring
520
+
521
+ ### Disk Performance
522
+
523
+ ```bash
524
+ # I/O statistics
525
+ iostat -x 1 5
526
+
527
+ # Key metrics:
528
+ # - %util: Disk utilization
529
+ # - await: Average wait time
530
+ # - r/s, w/s: Read/write per second
531
+ # - rkB/s, wkB/s: Throughput
532
+
533
+ # Per-process I/O
534
+ sudo iotop
535
+ sudo iotop -oPa # Accumulated I/O
536
+
537
+ # Disk latency
538
+ sudo ioping /dev/sda
539
+
540
+ # Benchmark disk
541
+ # Write test
542
+ dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
543
+
544
+ # Read test
545
+ dd if=/tmp/testfile of=/dev/null bs=1G count=1 iflag=direct
546
+
547
+ # Better benchmarking with fio
548
+ sudo apt install fio
549
+ fio --name=random-read --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
550
+ ```
551
+
552
+ ## Capacity Planning
553
+
554
+ ### Monitoring Disk Usage
555
+
556
+ ```bash
557
+ # Disk usage
558
+ df -h
559
+ du -sh /*
560
+ du -sh /var/* | sort -h
561
+
562
+ # Find large files
563
+ find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null
564
+
565
+ # Disk usage trends
566
+ # Use monitoring tools (Prometheus + Grafana)
567
+ # Or cron job
568
+ cat > /usr/local/bin/disk-usage-log.sh <<'EOF'
569
+ #!/bin/bash
570
+ echo "$(date +%Y-%m-%d,%H:%M:%S),$(df / | tail -1 | awk '{print $5}')" >> /var/log/disk-usage.csv
571
+ EOF
572
+
573
+ chmod +x /usr/local/bin/disk-usage-log.sh
574
+
575
+ # Add to cron (hourly)
576
+ 0 * * * * /usr/local/bin/disk-usage-log.sh
577
+ ```
578
+
579
+ ### Capacity Planning
580
+
581
+ ```bash
582
+ # Calculate growth rate
583
+ # Analyze disk-usage.csv
584
+ awk -F, '{print $1,$3}' /var/log/disk-usage.csv | \
585
+ awk 'NR>1 {print ($2-prev)/(NR-1); prev=$2}'
586
+
587
+ # Predict when disk will be full
588
+ # Based on growth rate and current usage
589
+ # Alert when > 80% full
590
+ ```
591
+
592
+ ### Cleanup Strategies
593
+
594
+ ```bash
595
+ # Log rotation (automatic)
596
+ # /etc/logrotate.d/myapp
597
+ /var/log/myapp/*.log {
598
+ daily
599
+ rotate 14
600
+ compress
601
+ delaycompress
602
+ notifempty
603
+ create 0640 myapp myapp
604
+ }
605
+
606
+ # Clean package cache
607
+ sudo apt clean
608
+ sudo yum clean all
609
+
610
+ # Clean systemd journal
611
+ sudo journalctl --vacuum-time=30d
612
+ sudo journalctl --vacuum-size=1G
613
+
614
+ # Remove old kernels
615
+ sudo apt autoremove --purge
616
+
617
+ # Clean temp files
618
+ sudo find /tmp -type f -atime +7 -delete
619
+ sudo find /var/tmp -type f -atime +30 -delete
620
+ ```
621
+
622
+ ---
623
+
624
+ **Related Topics:**
625
+ - See [linux-administration.md](linux-administration.md) for filesystem basics
626
+ - See [performance-tuning.md](performance-tuning.md) for I/O optimization
627
+ - See [troubleshooting-guide.md](troubleshooting-guide.md) for disk issues
628
+ - See [automation-patterns.md](automation-patterns.md) for backup automation