Skip to content

feat(loadweaver): command line interface basics - #575

Draft
me-marcel wants to merge 1 commit into
mainfrom
feat/loadweaver_command_line_interface_basics
Draft

feat(loadweaver): command line interface basics#575
me-marcel wants to merge 1 commit into
mainfrom
feat/loadweaver_command_line_interface_basics

Conversation

@me-marcel

@me-marcel me-marcel commented Aug 19, 2026

Copy link
Copy Markdown
Member

This PR contains the command line tool Loadweaver (maybe even a web or desktop app depending on the state it is in). The tool converges multi-node Linux clusters from an operator workstation over SSH, using a declarative loadweaver.yml and idempotent commands. Loadweaver targets self-hosted and homelab/production environments where you want Docker Swarm, private networking, shared storage, and ingress without Kubernetes.


Draft disclaimer: Since this is still a draft, it means the integration is in no way deemed production-ready as of now. We are still heavily experimenting with it. Feel free to try it on your own risk!


Limitation warning: Whilst Loadweaver already supports setting up clusters and their base services as well as routing between them through a single declarative file, it does not yet support deploying applications onto the clusters that are not part of the base-services. We are currently evaluating multiple solutions that would allow for FluxCD / ArgoCD style deployments into Docker Stack environments.

@me-marcel me-marcel self-assigned this Aug 19, 2026
@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown

Knowledge graph blast radius

Diff: e398ffe334b0c2eccf010805d99716b45d6c0d1bHEAD
Changed files: 315 · Owning projects: 22 · Unmapped: 18

Touched projects

Project Type Files Deps in Deps out Endpoints Channels Docs
loadweaver-cli-loadweaver app 8 0 5 0 0 3
loadweaver-shared-feature-cli-ceph lib 10 4 2 0 0 0
loadweaver-shared-feature-cli-cluster lib 23 1 11 0 0 0
loadweaver-shared-feature-cli-diag lib 10 1 9 0 0 0
loadweaver-shared-feature-cli-host lib 10 4 2 0 0 0
loadweaver-shared-feature-cli-node lib 10 2 7 0 0 0
loadweaver-shared-feature-cli-routing lib 15 2 2 0 0 0
loadweaver-shared-feature-cli-ssh lib 13 1 2 0 0 0
loadweaver-shared-feature-cli-swarm lib 10 4 2 0 0 0
loadweaver-shared-feature-cli-traefik lib 16 3 2 0 0 0
loadweaver-shared-feature-cli-vip lib 21 3 2 0 0 0
loadweaver-shared-feature-cli-volume lib 10 4 2 0 0 0
loadweaver-shared-feature-cli-wireguard lib 18 4 2 0 0 0
loadweaver-shared-feature-cli lib 21 1 18 0 0 0
loadweaver-shared-util-cli-core lib 48 13 5 0 0 0
shared-shared-util-config-loader lib 13 2 1 0 0 0
shared-shared-util-logger lib 11 3 1 0 0 0
shared-shared-util-shell-executor lib 11 3 2 0 0 0
shared-shared-util-ssh lib 11 2 2 0 0 0
ci tool 1 7 0 0 0 0
code tool 6 1 0 0 0 0
jest tool 1 85 0 0 0 0

Shared dependencies

Dependencies linked to 2+ touched projects:

  • agenstra-backend-agent-controller
  • agenstra-frontend-billing-console
  • decabill-frontend-billing-console
  • forepath-frontend-billing-console
  • decabill-backend-billing-manager
  • agenstra-frontend-agent-console
  • agenstra-backend-agent-manager
  • shared-mcp-devkit

Docs to review

  • docs/loadweaver/README.md
  • docs/loadweaver/deployment/lab-guide.md
  • docs/loadweaver/getting-started.md

Unmapped paths

  • .eslintrc.json
  • .gitignore
  • docs/loadweaver/README.md
  • docs/loadweaver/architecture/system-overview.md
  • docs/loadweaver/cli-reference.md
  • docs/loadweaver/configuration.md
  • docs/loadweaver/deployment/inter-cluster-routing.md
  • docs/loadweaver/deployment/lab-guide.md
  • docs/loadweaver/deployment/production-tls.md
  • docs/loadweaver/deployment/system-requirements.md
  • …and 8 more

Overview from nx run graph:impact.

@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown

Nx coverage

Projects: 86 · Up: 13 · Down: 1

Project summary

Project Statements Branches Functions Lines Δ statements
libs/domains/shared/shared/util-config-loader 87.71% 83.63% 100.00% 87.71% +87.71%
libs/domains/loadweaver/shared/feature-cli-routing 87.69% 69.31% 100.00% 87.30% +87.69%
libs/domains/loadweaver/shared/feature-cli-vip 87.27% 72.30% 73.91% 88.46% +87.27%
libs/domains/loadweaver/shared/feature-cli-ssh 85.71% 60.00% 100.00% 85.71% +85.71%
libs/domains/loadweaver/shared/util-cli-core 78.04% 66.14% 83.33% 77.92% +78.04%
libs/domains/loadweaver/shared/feature-cli 76.92% 100.00% 33.33% 76.92% +76.92%
libs/domains/shared/shared/util-logger 66.66% 57.89% 71.42% 66.66% +66.66%
libs/domains/loadweaver/shared/feature-cli-wireguard 58.62% 45.94% 65.78% 58.69% +58.62%
libs/domains/loadweaver/shared/feature-cli-host 55.10% 49.33% 72.72% 55.20% +55.10%
libs/domains/loadweaver/shared/feature-cli-traefik 48.53% 32.20% 73.07% 48.52% +48.53%
libs/domains/loadweaver/shared/feature-cli-cluster 43.07% 45.72% 24.79% 44.84% +43.07%
libs/domains/shared/shared/util-shell-executor 33.33% 13.55% 42.85% 33.33% +33.33%
libs/domains/shared/shared/util-ssh 25.86% 26.31% 30.76% 25.86% +25.86%
tools/code 92.94% 81.95% 95.45% 92.30% -7.06%
apps/agenstra/backend-agent-controller 66.66% 23.33% 33.33% 66.66% 0.00%
apps/agenstra/backend-agent-manager 0.00% 0.00% 0.00% 0.00% 0.00%
apps/agenstra/frontend-agent-console 100.00% 100.00% 100.00% 100.00% 0.00%
apps/agenstra/frontend-landingpage 100.00% 100.00% 100.00% 100.00% 0.00%
apps/decabill/backend-billing-manager 26.88% 36.90% 11.49% 26.84% 0.00%
apps/decabill/frontend-billing-console 100.00% 100.00% 100.00% 100.00% 0.00%
apps/decabill/frontend-landingpage 100.00% 100.00% 100.00% 100.00% 0.00%
apps/forepath/backend-communication 0.00% 0.00% 0.00% 0.00% 0.00%
apps/forepath/frontend-landingpage 100.00% 100.00% 100.00% 100.00% 0.00%
apps/loadweaver/cli-loadweaver 0.00% 0.00% 0.00% 0.00% 0.00%
apps/shared/frontend-docs 100.00% 100.00% 100.00% 100.00% 0.00%
apps/shared/mcp-devkit 0.00% 0.00% 0.00% 0.00% 0.00%
apps/shared/mcp-proxy 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/agenstra/backend/feature-agent-controller 67.99% 46.93% 57.94% 68.30% 0.00%
libs/domains/agenstra/backend/feature-agent-manager 75.52% 59.81% 77.89% 75.18% 0.00%
libs/domains/agenstra/frontend/data-access-agent-console 84.10% 57.22% 73.80% 84.51% 0.00%
libs/domains/agenstra/frontend/data-access-portal 100.00% 87.23% 100.00% 100.00% 0.00%
libs/domains/agenstra/frontend/feature-agent-console 77.89% 60.58% 91.26% 77.65% 0.00%
libs/domains/agenstra/frontend/feature-landingpage 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/decabill/backend/feature-billing-manager 82.22% 66.86% 72.01% 81.82% 0.00%
libs/domains/decabill/frontend/data-access-billing-console 88.52% 59.93% 84.47% 89.23% 0.00%
libs/domains/decabill/frontend/data-access-portal 100.00% 88.46% 100.00% 100.00% 0.00%
libs/domains/decabill/frontend/feature-billing-console 30.43% 28.57% 34.16% 31.23% 0.00%
libs/domains/decabill/frontend/feature-landingpage 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/forepath/backend/feature-communication-manager 82.79% 70.74% 86.20% 82.48% 0.00%
libs/domains/forepath/frontend/data-access-project-estimator 83.12% 65.72% 76.68% 84.08% 0.00%
libs/domains/forepath/frontend/feature-landingpage 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/identity/backend/feature-auth 68.06% 48.68% 34.42% 66.66% 0.00%
libs/domains/identity/backend/util-auth 97.69% 89.10% 91.11% 97.81% 0.00%
libs/domains/identity/frontend/data-access-auth 85.56% 67.05% 74.81% 84.82% 0.00%
libs/domains/identity/frontend/feature-auth 47.93% 20.73% 16.17% 45.22% 0.00%
libs/domains/identity/frontend/util-auth 93.22% 90.00% 70.00% 94.64% 0.00%
libs/domains/loadweaver/shared/feature-cli-ceph 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/loadweaver/shared/feature-cli-diag 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/loadweaver/shared/feature-cli-node 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/loadweaver/shared/feature-cli-swarm 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/loadweaver/shared/feature-cli-volume 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/backend/feature-monitoring 100.00% 100.00% 100.00% 100.00% 0.00%
libs/domains/shared/backend/feature-notifications 79.51% 64.42% 44.36% 79.17% 0.00%
libs/domains/shared/backend/feature-updates 65.93% 62.01% 55.17% 65.06% 0.00%
libs/domains/shared/backend/util-crypto 94.11% 91.17% 100.00% 95.08% 0.00%
libs/domains/shared/backend/util-dynamic-provider-registry 82.05% 63.55% 92.85% 81.79% 0.00%
libs/domains/shared/backend/util-email 100.00% 97.59% 100.00% 100.00% 0.00%
libs/domains/shared/backend/util-http-context 99.47% 89.92% 100.00% 99.46% 0.00%
libs/domains/shared/backend/util-network-address 80.95% 73.80% 80.00% 80.95% 0.00%
libs/domains/shared/backend/util-opensearch 44.36% 33.52% 50.00% 43.84% 0.00%
libs/domains/shared/backend/util-otel 91.59% 77.77% 90.90% 91.22% 0.00%
libs/domains/shared/backend/util-provisioning-geography 96.92% 87.67% 100.00% 96.82% 0.00%
libs/domains/shared/backend/util-queue 97.60% 88.82% 100.00% 97.59% 0.00%
libs/domains/shared/backend/util-redis-cache 85.93% 76.59% 90.00% 85.48% 0.00%
libs/domains/shared/backend/util-webhook 73.74% 61.17% 70.37% 73.86% 0.00%
libs/domains/shared/frontend/data-access-communication 92.50% 45.45% 100.00% 91.66% 0.00%
libs/domains/shared/frontend/data-access-notifications 72.93% 38.04% 52.57% 72.46% 0.00%
libs/domains/shared/frontend/data-access-updates 89.18% 26.08% 82.60% 92.23% 0.00%
libs/domains/shared/frontend/feature-docs 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/frontend/feature-landingpage 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/frontend/feature-notifications 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/frontend/feature-updates 94.11% 75.00% 100.00% 94.11% 0.00%
libs/domains/shared/frontend/ui-lists 8.57% 0.00% 0.00% 6.06% 0.00%
libs/domains/shared/frontend/util-configuration 95.00% 61.53% 100.00% 95.00% 0.00%
libs/domains/shared/frontend/util-cookie-consent 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/frontend/util-docs-parser 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/frontend/util-express-server 100.00% 86.18% 100.00% 100.00% 0.00%
libs/domains/shared/frontend/util-loading-indicator 0.00% 0.00% 0.00% 0.00% 0.00%
libs/domains/shared/frontend/util-meta 82.97% 69.33% 86.66% 82.79% 0.00%
libs/domains/shared/frontend/util-provisioning-geography 90.00% 81.81% 75.00% 93.10% 0.00%
libs/domains/shared/frontend/util-runtime-config-server 86.36% 84.82% 90.90% 87.03% 0.00%
libs/domains/shared/shared/util-network-address 80.95% 73.80% 80.00% 80.95% 0.00%
tools/ai 74.54% 56.16% 75.58% 77.38% 0.00%
tools/graph 89.73% 76.22% 91.69% 90.22% 0.00%
tools/release-integrity 79.87% 63.63% 90.00% 80.53% 0.00%
tools/sbom 93.50% 78.04% 100.00% 93.50% 0.00%

Generated from Jest coverage-summary.json (head vs base when available).

@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown

Nx tests

Projects: 90 · Passed projects: 89 · Failed projects: 1
Tests: 8123 passed · 1 failed · 0 pending

Project summary

Project Result Passed Failed Pending Total
code fail 23 1 0 24
agenstra-backend-agent-controller pass 6 0 0 6
agenstra-backend-agent-manager pass 0 0 0 0
agenstra-backend-feature-agent-controller pass 876 0 0 876
agenstra-backend-feature-agent-manager pass 983 0 0 983
agenstra-frontend-agent-console pass 1 0 0 1
agenstra-frontend-billing-console pass 1 0 0 1
agenstra-frontend-data-access-agent-console pass 1462 0 0 1462
agenstra-frontend-data-access-portal pass 58 0 0 58
agenstra-frontend-docs pass 1 0 0 1
agenstra-frontend-feature-agent-console pass 75 0 0 75
agenstra-frontend-feature-landingpage pass 0 0 0 0
agenstra-frontend-landingpage pass 1 0 0 1
ai pass 28 0 0 28
decabill-backend-billing-manager pass 17 0 0 17
decabill-backend-feature-billing-manager pass 1801 0 0 1801
decabill-frontend-billing-console pass 1 0 0 1
decabill-frontend-data-access-billing-console pass 1277 0 0 1277
decabill-frontend-data-access-portal pass 61 0 0 61
decabill-frontend-docs pass 1 0 0 1
decabill-frontend-feature-billing-console pass 66 0 0 66
decabill-frontend-feature-landingpage pass 0 0 0 0
decabill-frontend-landingpage pass 1 0 0 1
forepath-backend-communication pass 0 0 0 0
forepath-backend-feature-communication-manager pass 18 0 0 18
forepath-frontend-billing-console pass 1 0 0 1
forepath-frontend-data-access-project-estimator pass 87 0 0 87
forepath-frontend-feature-landingpage pass 0 0 0 0
forepath-frontend-landingpage pass 1 0 0 1
graph pass 74 0 0 74
identity-backend-feature-auth pass 100 0 0 100
identity-backend-util-auth pass 107 0 0 107
identity-frontend-data-access-auth pass 151 0 0 151
identity-frontend-feature-auth pass 40 0 0 40
identity-frontend-util-auth pass 21 0 0 21
loadweaver-cli-loadweaver pass 0 0 0 0
loadweaver-shared-feature-cli pass 2 0 0 2
loadweaver-shared-feature-cli-ceph pass 0 0 0 0
loadweaver-shared-feature-cli-cluster pass 29 0 0 29
loadweaver-shared-feature-cli-diag pass 0 0 0 0
loadweaver-shared-feature-cli-host pass 5 0 0 5
loadweaver-shared-feature-cli-node pass 0 0 0 0
loadweaver-shared-feature-cli-routing pass 2 0 0 2
loadweaver-shared-feature-cli-ssh pass 6 0 0 6
loadweaver-shared-feature-cli-swarm pass 0 0 0 0
loadweaver-shared-feature-cli-traefik pass 6 0 0 6
loadweaver-shared-feature-cli-vip pass 7 0 0 7
loadweaver-shared-feature-cli-volume pass 0 0 0 0
loadweaver-shared-feature-cli-wireguard pass 14 0 0 14
loadweaver-shared-util-cli-core pass 53 0 0 53
release-integrity pass 17 0 0 17
sbom pass 10 0 0 10
shared-backend-feature-monitoring pass 5 0 0 5
shared-backend-feature-notifications pass 57 0 0 57
shared-backend-feature-updates pass 26 0 0 26
shared-backend-util-crypto pass 14 0 0 14
shared-backend-util-dynamic-provider-registry pass 41 0 0 41
shared-backend-util-email pass 29 0 0 29
shared-backend-util-http-context pass 95 0 0 95
shared-backend-util-network-address pass 4 0 0 4
shared-backend-util-opensearch pass 7 0 0 7
shared-backend-util-otel pass 14 0 0 14
shared-backend-util-provisioning-geography pass 14 0 0 14
shared-backend-util-queue pass 51 0 0 51
shared-backend-util-redis-cache pass 5 0 0 5
shared-backend-util-webhook pass 18 0 0 18
shared-frontend-data-access-communication pass 24 0 0 24
shared-frontend-data-access-notifications pass 29 0 0 29
shared-frontend-data-access-updates pass 19 0 0 19
shared-frontend-docs pass 1 0 0 1
shared-frontend-feature-docs pass 0 0 0 0
shared-frontend-feature-landingpage pass 0 0 0 0
shared-frontend-feature-notifications pass 0 0 0 0
shared-frontend-feature-updates pass 4 0 0 4
shared-frontend-ui-lists pass 1 0 0 1
shared-frontend-util-configuration pass 37 0 0 37
shared-frontend-util-cookie-consent pass 0 0 0 0
shared-frontend-util-docs-parser pass 0 0 0 0
shared-frontend-util-express-server pass 69 0 0 69
shared-frontend-util-loading-indicator pass 0 0 0 0
shared-frontend-util-meta pass 18 0 0 18
shared-frontend-util-provisioning-geography pass 3 0 0 3
shared-frontend-util-runtime-config-server pass 27 0 0 27
shared-mcp-devkit pass 0 0 0 0
shared-mcp-proxy pass 0 0 0 0
shared-shared-util-config-loader pass 10 0 0 10
shared-shared-util-logger pass 1 0 0 1
shared-shared-util-network-address pass 4 0 0 4
shared-shared-util-shell-executor pass 1 0 0 1
shared-shared-util-ssh pass 4 0 0 4

Failures

code

  • cliGenerator scaffolds a CLI app under the selected domain
    • Error: thrown: "Exceeded timeout of 5000 ms for a test.

Generated from per-project Jest summaries under test-results/.

@me-marcel
me-marcel force-pushed the feat/loadweaver_command_line_interface_basics branch 6 times, most recently from 3f38db8 to 89bea61 Compare August 20, 2026 16:16
@me-marcel
me-marcel force-pushed the feat/loadweaver_command_line_interface_basics branch from 89bea61 to 0c9cf60 Compare August 27, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant