feat(nomad): per-server config + one-click bootstrap + installer - #1
Merged
Merged
Conversation
- Nomad dashboard router resolves per-server address/token/namespace from the server's DB columns (127.0.0.1 fallback for the local cluster), with an org-ownership auth check; transport isolated in nomadClient() so an SSH tunnel can drop in later. Dashboard gains a cluster selector. - nomad.bootstrapServer streams a Docker+Consul+Nomad+CNI install over SSH and auto-saves the server's Nomad address on success. Surfaced as a 'Bootstrap Nomad' button in per-server Nomad settings (wired into the server dropdown). - install.sh: one-line control-plane installer for a fresh server. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
pipozzz
added a commit
that referenced
this pull request
Sep 4, 2026
… health) - Join now runs a pre-flight SSH+sudo check before allocating an IP or installing anything. The #1 join failure is a node that doesn't trust the panel's SSH key yet; on an auth failure we print the exact public key plus a one-line authorized_keys command so it's a copy-paste fix instead of a cryptic late error. Non-auth failures fall through to the firewall hint. - Members table gains a per-row Remove action (with the same quorum-safe confirm + force-below-3 guard), so any node can be removed from one place without opening its own settings. Leave-cluster now drives the same shared dialog. - getClusterMembers returns a `leader` flag; the table shows a leader badge and a "N servers · fault tolerance N" summary so cluster health is obvious. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
pipozzz
added a commit
that referenced
this pull request
Sep 29, 2026
…d; add release preflight #1 Pack deploys re-cloned the whole registry every time via `nomad-pack registry add`. Now that deploys are pinned to an immutable ref, skip the add when that ref's pack cache dir already exists ($HOME/.cache/nomad/packs/<registry>/<ref>) — much faster deploys for a large registry, safe because the ref can't change. Unpinned (fallback) still re-adds to pull latest. #3 scripts/check.sh runs the CI-equivalent prod build (switch:prod + cold tsc -p tsconfig.server.json) — the only reliable way to catch CI-only type failures (bit us on v0.30.133/.135; dev `tsc --noEmit` + its .tsbuildinfo cache hide them). release.sh now runs it as a pre-flight gate (SKIP_CHECK=1 to override). App tsc is informational only — Next has ignoreBuildErrors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the two remaining functional pieces for nomploy's Nomad orchestration plus a fresh-server installer.
Per-server Nomad config
nomadAddress/nomadToken/nomadNamespacefrom the DB (127.0.0.1 fallback for the control-plane-local cluster), with an org-ownership auth check.serverId; namespaced endpoints scope by namespace.nomadClient()so an SSH-tunnel path can drop in later.serverIdinto all components.One-click Nomad bootstrap
getNomadBootstrapCommand()generates an SSH install script (Docker + Consul + Nomad + CNI as systemd, single-node server+client, docker plugin with private-registry auth).nomad.bootstrapServerstreams the install over SSH and auto-saves the server's Nomad address on success.Installer
install.sh: one-line control-plane installer for a fresh Linux server.Both packages typecheck clean and the server bundle builds.
🤖 Generated with Claude Code