Skip to content

fix(install.sh): make the installer work on a real server - #12

Merged
pipozzz merged 1 commit into
mainfrom
fix/installer-live
Sep 2, 2026
Merged

pipozzz merged 1 commit into
mainfrom
fix/installer-live

Conversation

@pipozzz

@pipozzz pipozzz commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Fixes found by a live run on a fresh Ubuntu 26.04 VPS — the installer now brings up the full nomploy stack end-to-end (verified: Nomad node ready + docker healthy, Postgres/Redis/Traefik up, app health 200, register UI renders).

Four fixes:

  1. Bind to 127.0.0.1 (single-node) instead of {{ GetPrivateIP }}, which picked the docker bridge on a multi-IP host; add explicit Nomad advertise.
  2. systemctl restart --no-block + poll the APIs — packaged units are Type=notify and didn't signal systemd, so a blocking restart hung and aborted the install under set -e.
  3. REDIS_HOST (what the app reads) instead of REDIS_URL — app was failing to resolve nomploy-redis on host networking.
  4. Generate/persist BETTER_AUTH_SECRET so the app doesn't use the insecure default.

Also ignores install.sh in the Docker publish paths (doesn't affect the image).

🤖 Generated with Claude Code

Found by a live run on a fresh Ubuntu 26.04 VPS. Four fixes:
- Bind Consul/Nomad to 127.0.0.1 (single-node all-in-one) instead of
  {{ GetPrivateIP }}, which picked the docker bridge (172.17.0.1) on a host with
  multiple private IPs; add an explicit Nomad advertise block (it refuses to
  default a server's advertise to localhost).
- Start services with 'systemctl restart --no-block' + poll the HTTP APIs. The
  packaged units are Type=notify and the agents don't always signal systemd, so
  a blocking restart hung and (under set -e) aborted the whole install.
- Pass REDIS_HOST (what the app reads) instead of REDIS_URL — the app was
  resolving the container name 'nomploy-redis' and failing on host networking.
- Generate and persist a BETTER_AUTH_SECRET so the app doesn't fall back to the
  insecure hardcoded default and sessions survive restarts.

Also ignore install.sh in the Docker publish paths (it doesn't affect the image).

Verified: fresh install now brings up Consul+Nomad (node ready, docker driver
healthy), Postgres, Redis, Traefik, and the app (health 200, UI renders).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@pipozzz
pipozzz merged commit 455ef3a into main Sep 2, 2026
@pipozzz
pipozzz deleted the fix/installer-live branch September 2, 2026 08:20
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Thank you for your contribution! Please sign our Contributor License Agreement by posting the following comment:


I have read the CLA Document and I hereby sign the CLA


Peter Gonda seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@github-actions github-actions Bot locked and limited conversation to collaborators Sep 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant