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,982 @@
1
+ # Networking Fundamentals
2
+
3
+ Comprehensive guide to Linux networking covering TCP/IP stack, DNS, load balancers, firewalls, routing, VPN, and network debugging tools for systems engineers.
4
+
5
+ ## Table of Contents
6
+
7
+ - [TCP/IP Stack Overview](#tcpip-stack-overview)
8
+ - [Network Configuration](#network-configuration)
9
+ - [DNS Configuration](#dns-configuration)
10
+ - [Firewall Management](#firewall-management)
11
+ - [Routing and Bridging](#routing-and-bridging)
12
+ - [Load Balancers](#load-balancers)
13
+ - [VPN Configuration](#vpn-configuration)
14
+ - [Network Debugging Tools](#network-debugging-tools)
15
+ - [Network Performance Tuning](#network-performance-tuning)
16
+ - [Best Practices](#best-practices)
17
+ - [Anti-Patterns](#anti-patterns)
18
+ - [Common Issues](#common-issues)
19
+
20
+ ## TCP/IP Stack Overview
21
+
22
+ ### Understanding the Layers
23
+
24
+ ```
25
+ ┌─────────────────────────────────────────┐
26
+ │ Application Layer (HTTP, SSH, DNS) │
27
+ ├─────────────────────────────────────────┤
28
+ │ Transport Layer (TCP, UDP) │
29
+ ├─────────────────────────────────────────┤
30
+ │ Network Layer (IP, ICMP) │
31
+ ├─────────────────────────────────────────┤
32
+ │ Link Layer (Ethernet, WiFi) │
33
+ └─────────────────────────────────────────┘
34
+ ```
35
+
36
+ ### Network Namespaces
37
+
38
+ ```bash
39
+ # Create network namespace
40
+ sudo ip netns add testns
41
+
42
+ # List namespaces
43
+ sudo ip netns list
44
+
45
+ # Execute command in namespace
46
+ sudo ip netns exec testns ip addr
47
+
48
+ # Create veth pair (virtual ethernet)
49
+ sudo ip link add veth0 type veth peer name veth1
50
+
51
+ # Move one end to namespace
52
+ sudo ip link set veth1 netns testns
53
+
54
+ # Configure interfaces
55
+ sudo ip addr add 10.0.0.1/24 dev veth0
56
+ sudo ip link set veth0 up
57
+
58
+ sudo ip netns exec testns ip addr add 10.0.0.2/24 dev veth1
59
+ sudo ip netns exec testns ip link set veth1 up
60
+
61
+ # Test connectivity
62
+ ping 10.0.0.2
63
+
64
+ # Delete namespace
65
+ sudo ip netns delete testns
66
+ ```
67
+
68
+ ## Network Configuration
69
+
70
+ ### Modern Network Management (ip command)
71
+
72
+ ```bash
73
+ # View all interfaces
74
+ ip addr show
75
+ ip link show
76
+
77
+ # View specific interface
78
+ ip addr show eth0
79
+
80
+ # Add IP address
81
+ sudo ip addr add 192.168.1.100/24 dev eth0
82
+
83
+ # Remove IP address
84
+ sudo ip addr del 192.168.1.100/24 dev eth0
85
+
86
+ # Bring interface up/down
87
+ sudo ip link set eth0 up
88
+ sudo ip link set eth0 down
89
+
90
+ # Set MTU
91
+ sudo ip link set eth0 mtu 9000
92
+
93
+ # View routing table
94
+ ip route show
95
+
96
+ # Add default route
97
+ sudo ip route add default via 192.168.1.1
98
+
99
+ # Add specific route
100
+ sudo ip route add 10.0.0.0/8 via 192.168.1.254
101
+
102
+ # Delete route
103
+ sudo ip route del 10.0.0.0/8
104
+
105
+ # View ARP table
106
+ ip neigh show
107
+
108
+ # Flush ARP cache
109
+ sudo ip neigh flush all
110
+ ```
111
+
112
+ ### Netplan Configuration (Ubuntu 18.04+)
113
+
114
+ ```yaml
115
+ # /etc/netplan/01-network-config.yaml
116
+ network:
117
+ version: 2
118
+ renderer: networkd
119
+
120
+ ethernets:
121
+ eth0:
122
+ dhcp4: false
123
+ addresses:
124
+ - 192.168.1.100/24
125
+ gateway4: 192.168.1.1
126
+ nameservers:
127
+ addresses:
128
+ - 8.8.8.8
129
+ - 8.8.4.4
130
+ search:
131
+ - example.com
132
+ routes:
133
+ - to: 10.0.0.0/8
134
+ via: 192.168.1.254
135
+
136
+ eth1:
137
+ dhcp4: true
138
+
139
+ bonds:
140
+ bond0:
141
+ interfaces:
142
+ - eth2
143
+ - eth3
144
+ parameters:
145
+ mode: 802.3ad
146
+ lacp-rate: fast
147
+ mii-monitor-interval: 100
148
+ addresses:
149
+ - 10.0.1.10/24
150
+
151
+ vlans:
152
+ vlan100:
153
+ id: 100
154
+ link: eth0
155
+ addresses:
156
+ - 192.168.100.10/24
157
+ ```
158
+
159
+ ```bash
160
+ # Apply netplan configuration
161
+ sudo netplan try # Test with 120s rollback
162
+ sudo netplan apply # Apply permanently
163
+
164
+ # Generate configuration
165
+ sudo netplan generate
166
+
167
+ # Debug mode
168
+ sudo netplan --debug apply
169
+ ```
170
+
171
+ ### Legacy Network Configuration (ifupdown)
172
+
173
+ ```bash
174
+ # /etc/network/interfaces
175
+ auto lo
176
+ iface lo inet loopback
177
+
178
+ auto eth0
179
+ iface eth0 inet static
180
+ address 192.168.1.100
181
+ netmask 255.255.255.0
182
+ gateway 192.168.1.1
183
+ dns-nameservers 8.8.8.8 8.8.4.4
184
+ dns-search example.com
185
+
186
+ # On boot commands
187
+ up ip route add 10.0.0.0/8 via 192.168.1.254
188
+ down ip route del 10.0.0.0/8
189
+
190
+ # Restart networking
191
+ sudo systemctl restart networking
192
+ sudo ifdown eth0 && sudo ifup eth0
193
+ ```
194
+
195
+ ## DNS Configuration
196
+
197
+ ### systemd-resolved (Modern)
198
+
199
+ ```bash
200
+ # Check DNS status
201
+ resolvectl status
202
+
203
+ # Query DNS
204
+ resolvectl query example.com
205
+
206
+ # Flush DNS cache
207
+ sudo resolvectl flush-caches
208
+
209
+ # View statistics
210
+ resolvectl statistics
211
+
212
+ # Configuration
213
+ cat /etc/systemd/resolved.conf
214
+ ```
215
+
216
+ **systemd-resolved Configuration:**
217
+ ```ini
218
+ # /etc/systemd/resolved.conf
219
+ [Resolve]
220
+ DNS=8.8.8.8 1.1.1.1
221
+ FallbackDNS=8.8.4.4 1.0.0.1
222
+ Domains=~.
223
+ DNSSEC=allow-downgrade
224
+ DNSOverTLS=opportunistic
225
+ Cache=yes
226
+ CacheFromLocalhost=no
227
+ ```
228
+
229
+ ```bash
230
+ # Restart resolver
231
+ sudo systemctl restart systemd-resolved
232
+ ```
233
+
234
+ ### Traditional DNS Configuration
235
+
236
+ ```bash
237
+ # /etc/resolv.conf
238
+ nameserver 8.8.8.8
239
+ nameserver 8.8.4.4
240
+ search example.com internal.example.com
241
+ options timeout:2 attempts:3 rotate
242
+ ```
243
+
244
+ ### Local DNS with dnsmasq
245
+
246
+ ```bash
247
+ # Install dnsmasq
248
+ sudo apt install dnsmasq
249
+
250
+ # Configuration
251
+ # /etc/dnsmasq.conf
252
+ domain-needed
253
+ bogus-priv
254
+ no-resolv
255
+ no-poll
256
+ server=8.8.8.8
257
+ server=8.8.4.4
258
+ cache-size=1000
259
+
260
+ # Local domain
261
+ local=/home.lan/
262
+ domain=home.lan
263
+
264
+ # Static hosts
265
+ address=/router.home.lan/192.168.1.1
266
+ address=/server.home.lan/192.168.1.10
267
+
268
+ # DHCP (if needed)
269
+ dhcp-range=192.168.1.100,192.168.1.200,12h
270
+ dhcp-option=option:router,192.168.1.1
271
+ dhcp-option=option:dns-server,192.168.1.1
272
+
273
+ # Restart dnsmasq
274
+ sudo systemctl restart dnsmasq
275
+ ```
276
+
277
+ ## Firewall Management
278
+
279
+ ### iptables
280
+
281
+ **Basic Concepts:**
282
+ ```bash
283
+ # Tables: filter (default), nat, mangle, raw
284
+ # Chains: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
285
+ ```
286
+
287
+ **View Rules:**
288
+ ```bash
289
+ # List all rules
290
+ sudo iptables -L -v -n
291
+
292
+ # List with line numbers
293
+ sudo iptables -L -v -n --line-numbers
294
+
295
+ # List specific chain
296
+ sudo iptables -L INPUT -v -n
297
+
298
+ # List NAT rules
299
+ sudo iptables -t nat -L -v -n
300
+ ```
301
+
302
+ **Basic Rules:**
303
+ ```bash
304
+ # Default policies
305
+ sudo iptables -P INPUT DROP
306
+ sudo iptables -P FORWARD DROP
307
+ sudo iptables -P OUTPUT ACCEPT
308
+
309
+ # Allow loopback
310
+ sudo iptables -A INPUT -i lo -j ACCEPT
311
+ sudo iptables -A OUTPUT -o lo -j ACCEPT
312
+
313
+ # Allow established connections
314
+ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
315
+
316
+ # Allow SSH
317
+ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
318
+
319
+ # Allow HTTP/HTTPS
320
+ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
321
+ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
322
+
323
+ # Allow from specific IP
324
+ sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
325
+
326
+ # Rate limiting (prevent brute force)
327
+ sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
328
+ sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
329
+
330
+ # Delete rule by number
331
+ sudo iptables -D INPUT 5
332
+
333
+ # Insert rule at position
334
+ sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
335
+ ```
336
+
337
+ **NAT Configuration:**
338
+ ```bash
339
+ # Enable IP forwarding
340
+ sudo sysctl -w net.ipv4.ip_forward=1
341
+ echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
342
+
343
+ # Source NAT (SNAT) / Masquerade
344
+ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
345
+
346
+ # Destination NAT (DNAT) / Port Forwarding
347
+ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
348
+
349
+ # Save rules
350
+ sudo iptables-save > /etc/iptables/rules.v4
351
+ # Or using iptables-persistent
352
+ sudo apt install iptables-persistent
353
+ sudo netfilter-persistent save
354
+ ```
355
+
356
+ ### firewalld (RHEL/CentOS/Fedora)
357
+
358
+ ```bash
359
+ # Check status
360
+ sudo firewall-cmd --state
361
+ sudo systemctl status firewalld
362
+
363
+ # List zones
364
+ sudo firewall-cmd --get-zones
365
+ sudo firewall-cmd --get-active-zones
366
+ sudo firewall-cmd --get-default-zone
367
+
368
+ # List all configuration
369
+ sudo firewall-cmd --list-all
370
+
371
+ # Add service
372
+ sudo firewall-cmd --add-service=http
373
+ sudo firewall-cmd --add-service=https
374
+ sudo firewall-cmd --runtime-to-permanent # Make persistent
375
+
376
+ # Add port
377
+ sudo firewall-cmd --add-port=8080/tcp
378
+ sudo firewall-cmd --add-port=8080/tcp --permanent
379
+
380
+ # Add rich rule
381
+ sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' --permanent
382
+
383
+ # Port forwarding
384
+ sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100 --permanent
385
+
386
+ # Reload firewall
387
+ sudo firewall-cmd --reload
388
+
389
+ # Create custom zone
390
+ sudo firewall-cmd --permanent --new-zone=custom
391
+ sudo firewall-cmd --reload
392
+ sudo firewall-cmd --zone=custom --add-service=ssh --permanent
393
+ ```
394
+
395
+ ### nftables (Modern Replacement)
396
+
397
+ ```bash
398
+ # Install nftables
399
+ sudo apt install nftables
400
+
401
+ # Basic configuration
402
+ # /etc/nftables.conf
403
+ #!/usr/sbin/nft -f
404
+
405
+ flush ruleset
406
+
407
+ table inet filter {
408
+ chain input {
409
+ type filter hook input priority 0; policy drop;
410
+
411
+ # Allow loopback
412
+ iif lo accept
413
+
414
+ # Allow established connections
415
+ ct state established,related accept
416
+
417
+ # Allow SSH
418
+ tcp dport 22 accept
419
+
420
+ # Allow HTTP/HTTPS
421
+ tcp dport { 80, 443 } accept
422
+
423
+ # Rate limit SSH
424
+ tcp dport 22 ct state new limit rate 4/minute accept
425
+ }
426
+
427
+ chain forward {
428
+ type filter hook forward priority 0; policy drop;
429
+ }
430
+
431
+ chain output {
432
+ type filter hook output priority 0; policy accept;
433
+ }
434
+ }
435
+
436
+ # NAT table
437
+ table inet nat {
438
+ chain postrouting {
439
+ type nat hook postrouting priority 100;
440
+ oifname "eth0" masquerade
441
+ }
442
+ }
443
+
444
+ # Enable nftables
445
+ sudo systemctl enable nftables
446
+ sudo systemctl start nftables
447
+
448
+ # List rules
449
+ sudo nft list ruleset
450
+
451
+ # Reload configuration
452
+ sudo nft -f /etc/nftables.conf
453
+ ```
454
+
455
+ ## Routing and Bridging
456
+
457
+ ### Static Routing
458
+
459
+ ```bash
460
+ # Add persistent route (via netplan on Ubuntu)
461
+ # See netplan configuration above
462
+
463
+ # Temporary route
464
+ sudo ip route add 10.20.0.0/16 via 192.168.1.254
465
+
466
+ # Multiple paths (load balancing)
467
+ sudo ip route add default \
468
+ nexthop via 192.168.1.1 weight 1 \
469
+ nexthop via 192.168.2.1 weight 1
470
+
471
+ # Policy-based routing
472
+ sudo ip rule add from 192.168.1.0/24 table 100
473
+ sudo ip route add default via 192.168.1.1 table 100
474
+ ```
475
+
476
+ ### Network Bridging
477
+
478
+ ```bash
479
+ # Create bridge
480
+ sudo ip link add br0 type bridge
481
+
482
+ # Add interfaces to bridge
483
+ sudo ip link set eth0 master br0
484
+ sudo ip link set eth1 master br0
485
+
486
+ # Configure bridge
487
+ sudo ip addr add 192.168.1.10/24 dev br0
488
+ sudo ip link set br0 up
489
+
490
+ # Using netplan
491
+ network:
492
+ version: 2
493
+ ethernets:
494
+ eth0:
495
+ dhcp4: false
496
+ eth1:
497
+ dhcp4: false
498
+
499
+ bridges:
500
+ br0:
501
+ interfaces:
502
+ - eth0
503
+ - eth1
504
+ dhcp4: false
505
+ addresses:
506
+ - 192.168.1.10/24
507
+ ```
508
+
509
+ ## Load Balancers
510
+
511
+ ### HAProxy
512
+
513
+ **Installation:**
514
+ ```bash
515
+ sudo apt install haproxy
516
+ ```
517
+
518
+ **Configuration:**
519
+ ```bash
520
+ # /etc/haproxy/haproxy.cfg
521
+ global
522
+ log /dev/log local0
523
+ log /dev/log local1 notice
524
+ chroot /var/lib/haproxy
525
+ stats socket /run/haproxy/admin.sock mode 660 level admin
526
+ stats timeout 30s
527
+ user haproxy
528
+ group haproxy
529
+ daemon
530
+ maxconn 4096
531
+
532
+ defaults
533
+ log global
534
+ mode http
535
+ option httplog
536
+ option dontlognull
537
+ option http-server-close
538
+ option redispatch
539
+ retries 3
540
+ timeout connect 5000
541
+ timeout client 50000
542
+ timeout server 50000
543
+ errorfile 400 /etc/haproxy/errors/400.http
544
+ errorfile 403 /etc/haproxy/errors/403.http
545
+ errorfile 408 /etc/haproxy/errors/408.http
546
+ errorfile 500 /etc/haproxy/errors/500.http
547
+ errorfile 502 /etc/haproxy/errors/502.http
548
+ errorfile 503 /etc/haproxy/errors/503.http
549
+ errorfile 504 /etc/haproxy/errors/504.http
550
+
551
+ # Stats interface
552
+ listen stats
553
+ bind *:8404
554
+ stats enable
555
+ stats uri /stats
556
+ stats refresh 30s
557
+ stats auth admin:password
558
+
559
+ # Frontend
560
+ frontend http_front
561
+ bind *:80
562
+ bind *:443 ssl crt /etc/haproxy/certs/
563
+
564
+ # Redirect HTTP to HTTPS
565
+ redirect scheme https code 301 if !{ ssl_fc }
566
+
567
+ # ACLs
568
+ acl is_api path_beg /api
569
+ acl is_static path_beg /static
570
+
571
+ # Use backends
572
+ use_backend api_back if is_api
573
+ use_backend static_back if is_static
574
+ default_backend web_back
575
+
576
+ # Backend - Web servers
577
+ backend web_back
578
+ balance roundrobin
579
+ option httpchk GET /health
580
+ http-check expect status 200
581
+
582
+ server web1 192.168.1.101:8080 check
583
+ server web2 192.168.1.102:8080 check
584
+ server web3 192.168.1.103:8080 check backup
585
+
586
+ # Backend - API servers
587
+ backend api_back
588
+ balance leastconn
589
+ option httpchk GET /api/health
590
+
591
+ server api1 192.168.1.111:3000 check
592
+ server api2 192.168.1.112:3000 check
593
+
594
+ # Backend - Static content
595
+ backend static_back
596
+ balance source
597
+ server static1 192.168.1.121:80 check
598
+ ```
599
+
600
+ ```bash
601
+ # Test configuration
602
+ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
603
+
604
+ # Restart HAProxy
605
+ sudo systemctl restart haproxy
606
+
607
+ # View stats
608
+ curl http://localhost:8404/stats
609
+ ```
610
+
611
+ ### nginx Load Balancer
612
+
613
+ ```nginx
614
+ # /etc/nginx/nginx.conf
615
+ http {
616
+ upstream web_backend {
617
+ least_conn; # or: ip_hash, round_robin (default)
618
+
619
+ server 192.168.1.101:8080 weight=3;
620
+ server 192.168.1.102:8080 weight=2;
621
+ server 192.168.1.103:8080 backup;
622
+
623
+ # Health checks (nginx Plus)
624
+ # health_check interval=5s fails=3 passes=2;
625
+ }
626
+
627
+ upstream api_backend {
628
+ ip_hash; # Session persistence
629
+
630
+ server 192.168.1.111:3000 max_fails=3 fail_timeout=30s;
631
+ server 192.168.1.112:3000 max_fails=3 fail_timeout=30s;
632
+ }
633
+
634
+ server {
635
+ listen 80;
636
+ server_name example.com;
637
+
638
+ location / {
639
+ proxy_pass http://web_backend;
640
+ proxy_set_header Host $host;
641
+ proxy_set_header X-Real-IP $remote_addr;
642
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
643
+ proxy_set_header X-Forwarded-Proto $scheme;
644
+
645
+ # Timeouts
646
+ proxy_connect_timeout 60s;
647
+ proxy_send_timeout 60s;
648
+ proxy_read_timeout 60s;
649
+ }
650
+
651
+ location /api {
652
+ proxy_pass http://api_backend;
653
+ proxy_set_header Host $host;
654
+ proxy_set_header X-Real-IP $remote_addr;
655
+ }
656
+ }
657
+ }
658
+ ```
659
+
660
+ ## VPN Configuration
661
+
662
+ ### WireGuard
663
+
664
+ **Installation:**
665
+ ```bash
666
+ sudo apt install wireguard
667
+ ```
668
+
669
+ **Server Configuration:**
670
+ ```bash
671
+ # Generate keys
672
+ wg genkey | sudo tee /etc/wireguard/private.key
673
+ sudo chmod 600 /etc/wireguard/private.key
674
+ sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
675
+
676
+ # Server config
677
+ # /etc/wireguard/wg0.conf
678
+ [Interface]
679
+ Address = 10.0.0.1/24
680
+ ListenPort = 51820
681
+ PrivateKey = <server_private_key>
682
+ PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
683
+ PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
684
+
685
+ # Client 1
686
+ [Peer]
687
+ PublicKey = <client1_public_key>
688
+ AllowedIPs = 10.0.0.2/32
689
+
690
+ # Client 2
691
+ [Peer]
692
+ PublicKey = <client2_public_key>
693
+ AllowedIPs = 10.0.0.3/32
694
+
695
+ # Enable IP forwarding
696
+ echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
697
+ sudo sysctl -p
698
+
699
+ # Start WireGuard
700
+ sudo systemctl enable wg-quick@wg0
701
+ sudo systemctl start wg-quick@wg0
702
+ ```
703
+
704
+ **Client Configuration:**
705
+ ```bash
706
+ # /etc/wireguard/wg0.conf
707
+ [Interface]
708
+ Address = 10.0.0.2/24
709
+ PrivateKey = <client_private_key>
710
+ DNS = 8.8.8.8
711
+
712
+ [Peer]
713
+ PublicKey = <server_public_key>
714
+ Endpoint = vpn.example.com:51820
715
+ AllowedIPs = 0.0.0.0/0 # Route all traffic through VPN
716
+ # Or: AllowedIPs = 10.0.0.0/24 # Only VPN network
717
+ PersistentKeepalive = 25
718
+
719
+ # Connect
720
+ sudo wg-quick up wg0
721
+ sudo wg-quick down wg0
722
+ ```
723
+
724
+ ## Network Debugging Tools
725
+
726
+ ### tcpdump
727
+
728
+ ```bash
729
+ # Capture on interface
730
+ sudo tcpdump -i eth0
731
+
732
+ # Write to file
733
+ sudo tcpdump -i eth0 -w capture.pcap
734
+
735
+ # Read from file
736
+ tcpdump -r capture.pcap
737
+
738
+ # Filter by host
739
+ sudo tcpdump -i eth0 host 192.168.1.100
740
+
741
+ # Filter by port
742
+ sudo tcpdump -i eth0 port 80
743
+ sudo tcpdump -i eth0 'port 80 or port 443'
744
+
745
+ # Filter by protocol
746
+ sudo tcpdump -i eth0 icmp
747
+ sudo tcpdump -i eth0 tcp
748
+
749
+ # Complex filters
750
+ sudo tcpdump -i eth0 'tcp port 80 and (src 192.168.1.0/24 or dst 192.168.1.0/24)'
751
+
752
+ # Show packet contents
753
+ sudo tcpdump -i eth0 -X # Hex and ASCII
754
+ sudo tcpdump -i eth0 -A # ASCII only
755
+
756
+ # Limit packet count
757
+ sudo tcpdump -i eth0 -c 100
758
+ ```
759
+
760
+ ### ss (Socket Statistics)
761
+
762
+ ```bash
763
+ # Replace netstat with ss
764
+ ss -tuln # TCP/UDP listening ports
765
+
766
+ # All sockets
767
+ ss -a
768
+
769
+ # TCP sockets
770
+ ss -t
771
+
772
+ # Listening sockets
773
+ ss -l
774
+
775
+ # Show process
776
+ ss -p
777
+
778
+ # Show statistics
779
+ ss -s
780
+
781
+ # Filter by state
782
+ ss state established
783
+ ss state time-wait
784
+
785
+ # Filter by port
786
+ ss -t dst :80
787
+ ss -t src :22
788
+
789
+ # Show timer information
790
+ ss -o
791
+ ```
792
+
793
+ ### Other Debugging Tools
794
+
795
+ ```bash
796
+ # Ping
797
+ ping -c 4 example.com
798
+ ping -i 0.2 -c 10 192.168.1.1 # Fast ping
799
+
800
+ # Traceroute
801
+ traceroute example.com
802
+ mtr example.com # Better traceroute
803
+
804
+ # DNS lookup
805
+ nslookup example.com
806
+ dig example.com
807
+ dig +short example.com
808
+ dig @8.8.8.8 example.com # Specific nameserver
809
+
810
+ # Test TCP connection
811
+ telnet example.com 80
812
+ nc -zv example.com 80 # netcat
813
+
814
+ # HTTP testing
815
+ curl -v http://example.com
816
+ curl -I http://example.com # Headers only
817
+
818
+ # Network statistics
819
+ netstat -i # Interface statistics
820
+ ip -s link # Modern alternative
821
+
822
+ # ARP
823
+ arp -a
824
+ ip neigh show
825
+ ```
826
+
827
+ ## Network Performance Tuning
828
+
829
+ ### TCP/IP Tuning
830
+
831
+ ```bash
832
+ # /etc/sysctl.d/99-network-tuning.conf
833
+
834
+ # Increase buffer sizes
835
+ net.core.rmem_max = 134217728
836
+ net.core.wmem_max = 134217728
837
+ net.ipv4.tcp_rmem = 4096 87380 134217728
838
+ net.ipv4.tcp_wmem = 4096 65536 134217728
839
+
840
+ # TCP window scaling
841
+ net.ipv4.tcp_window_scaling = 1
842
+
843
+ # TCP fast open
844
+ net.ipv4.tcp_fastopen = 3
845
+
846
+ # Congestion control (BBR recommended)
847
+ net.core.default_qdisc = fq
848
+ net.ipv4.tcp_congestion_control = bbr
849
+
850
+ # SYN backlog
851
+ net.ipv4.tcp_max_syn_backlog = 8192
852
+ net.core.somaxconn = 4096
853
+
854
+ # Connection tracking
855
+ net.netfilter.nf_conntrack_max = 1000000
856
+ net.nf_conntrack_max = 1000000
857
+
858
+ # TIME_WAIT sockets
859
+ net.ipv4.tcp_tw_reuse = 1
860
+ net.ipv4.tcp_fin_timeout = 15
861
+
862
+ # Apply settings
863
+ sudo sysctl -p /etc/sysctl.d/99-network-tuning.conf
864
+ ```
865
+
866
+ ## Best Practices
867
+
868
+ 1. **Security:**
869
+ - Default deny firewall policy
870
+ - Use SSH keys, disable password authentication
871
+ - Regular security updates
872
+ - Monitor network traffic
873
+
874
+ 2. **DNS:**
875
+ - Use multiple DNS servers
876
+ - Local DNS caching
877
+ - Monitor DNS resolution times
878
+
879
+ 3. **Load Balancing:**
880
+ - Health checks on all backends
881
+ - Graceful degradation (backup servers)
882
+ - Monitor backend performance
883
+ - Use SSL/TLS termination at load balancer
884
+
885
+ 4. **VPN:**
886
+ - Use modern protocols (WireGuard)
887
+ - Rotate keys periodically
888
+ - Monitor VPN connections
889
+ - Use split tunneling when appropriate
890
+
891
+ 5. **Monitoring:**
892
+ - Monitor bandwidth usage
893
+ - Track packet loss
894
+ - Monitor connection states
895
+ - Alert on anomalies
896
+
897
+ ## Anti-Patterns
898
+
899
+ ### ❌ No Firewall
900
+
901
+ ```bash
902
+ # BAD - All ports open
903
+ sudo iptables -F
904
+ sudo iptables -P INPUT ACCEPT
905
+ ```
906
+
907
+ ### ❌ Single Point of Failure
908
+
909
+ ```bash
910
+ # BAD - Only one DNS server
911
+ nameserver 8.8.8.8
912
+
913
+ # GOOD - Multiple DNS servers
914
+ nameserver 8.8.8.8
915
+ nameserver 8.8.4.4
916
+ ```
917
+
918
+ ### ❌ No Connection Tracking
919
+
920
+ ```bash
921
+ # BAD - Stateless rules
922
+ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
923
+
924
+ # GOOD - Stateful firewall
925
+ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
926
+ sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
927
+ ```
928
+
929
+ ### ❌ Hardcoded IP Addresses
930
+
931
+ ```bash
932
+ # BAD - IP addresses in application
933
+ # Use DNS names instead
934
+ ```
935
+
936
+ ## Common Issues
937
+
938
+ **Cannot reach external network:**
939
+ ```bash
940
+ # Check default route
941
+ ip route show
942
+
943
+ # Check DNS
944
+ resolvectl status
945
+ ping 8.8.8.8 # Test by IP
946
+ ping google.com # Test by name
947
+
948
+ # Check firewall
949
+ sudo iptables -L -v -n
950
+ ```
951
+
952
+ **High latency:**
953
+ ```bash
954
+ # Check with mtr
955
+ mtr example.com
956
+
957
+ # Check interface errors
958
+ ip -s link show eth0
959
+
960
+ # Check congestion control
961
+ sysctl net.ipv4.tcp_congestion_control
962
+ ```
963
+
964
+ **Connection timeouts:**
965
+ ```bash
966
+ # Check if port is open
967
+ sudo ss -tuln | grep :80
968
+
969
+ # Check firewall
970
+ sudo iptables -L INPUT -v -n
971
+
972
+ # Test from remote
973
+ nc -zv server.example.com 80
974
+ ```
975
+
976
+ ---
977
+
978
+ **Related Topics:**
979
+ - See [security-hardening.md](security-hardening.md) for firewall security
980
+ - See [performance-tuning.md](performance-tuning.md) for network performance
981
+ - See [troubleshooting-guide.md](troubleshooting-guide.md) for network debugging
982
+ - See [system-monitoring.md](system-monitoring.md) for network monitoring