Skip to content

fix(build): refactor docker install script#2711

Open
motunrayokoyejo wants to merge 3 commits into
mainfrom
improve-install-script
Open

fix(build): refactor docker install script#2711
motunrayokoyejo wants to merge 3 commits into
mainfrom
improve-install-script

Conversation

@motunrayokoyejo

@motunrayokoyejo motunrayokoyejo commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Added/expanded install-local.sh to provide a smoother first-time local setup flow.
Installer now validates prerequisites (git, curl, docker, docker compose, Docker daemon).
Added robust repo setup handling


Note

Low Risk
Changes are limited to the local install script and generated compose artifacts; no application runtime or auth paths are modified.

Overview
Local Docker install no longer hard-fails when default ports are busy. install-local.sh picks HTTP, Postgres, and PgBouncer host ports (env overrides CONVOY_HTTP_PORT, etc., with fallbacks from 8080/5434/6433), writes configs/local/docker-compose.install.generated.yml from the base compose file, and runs docker compose against that file only.

Convoy’s public URL stays aligned with the chosen HTTP port by patching the first "host" field in configs/local/convoy.json, and health checks / “open this URL” output use the same SELECTED_HOST_URL.

.gitignore now excludes the generated compose file and a legacy override path; the installer deletes the stale override file on upgrade.

Reviewed by Cursor Bugbot for commit ef8f00c. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread install-local.sh
Comment thread configs/local/convoy.json Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ef8f00c. Configure here.

Comment thread install-local.sh
local selected
selected="$(find_available_port "$fallback_start")" || return 1
warn "${label} port ${requested} is unavailable. Using ${selected} instead."
printf "%s" "$selected"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unknown port eighty forced fallback

Medium Severity

When the default HTTP port cannot be probed (Python bind returns permission denied), resolve_host_port treats it as unavailable and picks a fallback such as 8080. Docker can still publish port 80 without that bind test, so installs on Linux without lsof often get the wrong public URL versus the previous installer.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ef8f00c. Configure here.

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