Skip to content

feat(docker): one-line installer and release Compose file - #384

Merged
chriswritescode-dev merged 1 commit into
mainfrom
feat/one-line-installer
Oct 5, 2026
Merged

chriswritescode-dev merged 1 commit into
mainfrom
feat/one-line-installer

Conversation

@chriswritescode-dev

@chriswritescode-dev chriswritescode-dev commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds a one-line installer and a release Compose file so getting started is one command instead of a clone plus a hand-written .env.

  • scripts/install.sh — checks Docker and Compose v2, installs into ~/opencode-manager (override with OCM_DIR), and prompts for the optional extras (OpenCode config import, repos folder mount, LAN sign-in). Re-running it updates the install.
  • docker-compose.release.yml — runs the published ghcr.io image under the Compose project name ocm. The installer saves it as docker-compose.yml.
  • docker-compose.yml in a checkout keeps building from source, so git pull + ./scripts/docker-upgrade.sh is unchanged.
  • AUTH_SECRET is generated on first container start and persisted to /app/data/.auth-secret (mode 0600) when unset, so Compose installs need no .env.

Safety

The installer refuses to install when the target is a source checkout, or when another OpenCode Manager container is already running. It never overwrites a tracked docker-compose.yml or silently swaps the auth secret / volumes.

Tests

  • vitest run test/scripts/ — 170 pass, including new installer, entrypoint, and compose-parity tests
  • tsc --noEmit, eslint, shellcheck clean

The website quick start and docs for this flow live in the web repo.

Summary by CodeRabbit

  • New Features
    • Added an installer that sets up or updates OpenCode Manager with Docker Compose. During a new setup, you can choose whether to import local configuration and chat history, share a repositories folder, or enable phone sign-in on the same network.
    • Added a release configuration for running the published Docker image.
    • Docker now generates and persists an authentication secret when one isn’t provided.
  • Documentation
    • Updated setup instructions with installation options and requirements. Documented that production deployments outside Docker must provide an authentication secret, and that changing it invalidates sessions and stored encrypted credentials.

Add scripts/install.sh, a one-line installer that checks Docker and
Compose v2, installs into ~/opencode-manager (override with OCM_DIR),
prompts for an optional OpenCode config import, a repos folder mount and
LAN sign-in, then pulls and starts the published image.

- Add docker-compose.release.yml, which runs the published image under
  the Compose project name ocm; a checkout's docker-compose.yml keeps
  building from source
- Generate AUTH_SECRET on first container start and persist it to the
  data volume when unset, so Compose installs need no .env
- Refuse to install over a source checkout or beside an existing
  install, so volumes and the auth secret are not silently replaced
- Test the installer, entrypoint secret handling, and the two Compose
  files staying in step
@coderabbitai

coderabbitai Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 27d0593e-dee2-4c45-a1a5-979c7a79cb8c
📥 Commits

Reviewing files that changed from the base of the PR and between 87636bf and 27996ed.

📒 Files selected for processing (10)
  • .env.example
  • README.md
  • backend/test/helpers/shell-function.ts
  • backend/test/scripts/docker-config.test.ts
  • backend/test/scripts/docker-entrypoint.test.ts
  • backend/test/scripts/install.test.ts
  • docker-compose.release.yml
  • docker-compose.yml
  • scripts/docker-entrypoint.sh
  • scripts/install.sh
 _________________________________________________________
< Your config has more knobs than a 2004 Honda dashboard. >
 ---------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chriswritescode-dev
chriswritescode-dev merged commit 7ccf1df into main Oct 5, 2026
1 of 2 checks passed
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