Skip to content

Add one-command installer and dual-registry image publishing - #33

Merged
fengren merged 8 commits into
mainfrom
feat/issue-32-one-command-installer
Aug 5, 2026
Merged

Add one-command installer and dual-registry image publishing#33
fengren merged 8 commits into
mainfrom
feat/issue-32-one-command-installer

Conversation

@fengren

@fengren fengren commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add install.sh as a Docker Compose based one-command installer that downloads versioned release artifacts without cloning the repository
  • Support github and cn distribution channels, idempotent reruns, configuration preservation, preflight checks, port selection, TLS setup, and health verification
  • Support Linux, macOS, and Windows via Git Bash, including platform-specific host detection, Docker Desktop guidance, path conversion, and network/port handling
  • Add an installer smoke-test workflow for Ubuntu, macOS, and Windows
  • Build the backend with a Debian-based multi-stage Dockerfile, install agentcore from checked-out submodules, and keep compilers, headers, pip, and uv out of the runtime image
  • Push backend and UI release images to both the configured registry and the oneprolabs ACR namespace with matching tags

Closes #32

Test plan

  • bash -n install.sh
  • bash scripts/test-install.sh on macOS arm64
  • Production and development Docker Compose configuration validation
  • Production Dockerfile build (DEV_MODE=0)
  • Development Dockerfile build (DEV_MODE=1)
  • GitHub Actions installer matrix on Ubuntu, macOS, and Windows
  • Clean-host end-to-end install through the cn channel
  • github channel fallback and dual-registry release publishing

fengren added 8 commits August 4, 2026 14:48
Add install.sh implementing INSTALL_SPEC RFC v1.0: curl|bash
installer, Docker Compose based, github/cn channels, idempotent
re-runs with config/data preservation. Extend release workflow to
push devify and devify-ui images to both the primary REGISTRY and
registry.cn-beijing.aliyuncs.com/oneprolabs with identical tags.
Use registry.cn-beijing.aliyuncs.com/oneprolabs for nginx, mariadb,
redis and haraka in both docker-compose.yml and docker-compose.dev.yml
so CN-channel installs don't depend on Docker Hub availability.
Use a Debian multi-stage build, install agentcore from checked-out submodules, and keep build-only tooling out of the runtime image.
Support macOS and Windows Git Bash installation paths and run portable smoke tests across Linux, macOS, and Windows in GitHub Actions.
Wait for the background test server to become ready instead of assuming it listens within one second on every CI runner.
Report server and socket state when port detection fails, and avoid duplicate feature-branch runs by reserving push-triggered checks for main.
Use a minimal bound socket instead of Python HTTPServer so macOS hosted runners do not block on FQDN resolution before listening.
@fengren
fengren merged commit a418f60 into main Aug 5, 2026
3 checks passed
@fengren
fengren deleted the feat/issue-32-one-command-installer branch August 5, 2026 12:12
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.

Add one-command installer and dual-registry image publishing

1 participant