task: improve self-hosting DX for fork-and-clone and clone-and-own

Surface scripts/install.sh local-run detection as three equal-weight install
paths (upstream / fork-and-clone / clone-and-own) in README, installation.md,
and quickstart.md. No script changes — the installer already handled both
self-hosting flows; docs were the only gap.

Closes #331

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ryaneggzandClaude Sonnet 4.6 committed 2026-05-22 04:23:05 +00:00
1 parent 4f0ca99de7
commit 84777e5ee6
4 files changed
+64 -10

No files matched your search

+1
View File
@@ -14,6 +14,7 @@ Update policy and release automation live in [`.claude/rules/git.md`](.claude/ru
### Changed ### Changed
- All 15 skills in `.claude/skills/` now sourced from and version-pinned to `github.com/mifunedev/skills` (commit `c559c100`) via `.mifune/skills.lock`; `interview` and `render-html` contributed upstream and added to the lock ([#327](https://github.com/ryaneggz/open-harness/issues/327)). - All 15 skills in `.claude/skills/` now sourced from and version-pinned to `github.com/mifunedev/skills` (commit `c559c100`) via `.mifune/skills.lock`; `interview` and `render-html` contributed upstream and added to the lock ([#327](https://github.com/ryaneggz/open-harness/issues/327)).
- `README.md`, `docs/installation.md`, and `docs/quickstart.md` restructured to surface fork-and-clone and clone-and-own as first-class install paths alongside the upstream one-liner; `scripts/install.sh` local-run detection is now the documented bootstrap for self-hosters ([#331](https://github.com/ryaneggz/open-harness/issues/331)).
- Skill `LICENSE` files updated to `Copyright (c) 2026 Mifune Dev (mifune.dev)` to match upstream correction. - Skill `LICENSE` files updated to `Copyright (c) 2026 Mifune Dev (mifune.dev)` to match upstream correction.
### Fixed ### Fixed
### Removed ### Removed
+22 -9
View File
@@ -13,28 +13,41 @@
## 📦 Install ## 📦 Install
**Option A — Upstream (try it without any setup):**
```bash ```bash
curl -fsSL https://oh.mifune.dev/install.sh | bash curl -fsSL https://oh.mifune.dev/install.sh | bash
``` ```
The installer clones into `~/.openharness`, offers to share your host Clones into `~/.openharness`, offers to share your host `gh` token, writes `.devcontainer/.env`, and builds the image (~10 min cold, ~30s warm). Only host dependency: [Docker](https://docs.docker.com/get-docker/).
`gh` token, writes `.devcontainer/.env`, and builds the image (~10 min
cold, ~30s warm). Only host dependency: [Docker](https://docs.docker.com/get-docker/).
### 📦 For forks / self-host **Option B — Fork and clone (recommended for self-hosting):**
> **Forking this repo?** The block above pulls upstream code. Use the block below to install your fork instead. ```bash
# 1. Fork on GitHub, then clone YOUR fork:
git clone https://github.com/<your-org>/<your-fork>.git && cd <your-fork>
# 2. Bootstrap — installer auto-detects the local clone, no env vars needed:
bash scripts/install.sh
```
**Option C — Clone upstream, then re-point to your repo:**
```bash
git clone https://github.com/ryaneggz/open-harness.git my-harness && cd my-harness
git remote set-url origin https://github.com/<your-org>/<your-repo>.git
bash scripts/install.sh
```
<details><summary>Advanced: install directly from your fork without cloning first</summary>
```bash ```bash
OH_GITHUB_REPO=<your-org>/<your-fork> curl -fsSL \ OH_GITHUB_REPO=<your-org>/<your-fork> curl -fsSL \
https://raw.githubusercontent.com/<your-org>/<your-fork>/main/scripts/install.sh | bash https://raw.githubusercontent.com/<your-org>/<your-fork>/main/scripts/install.sh | bash
``` ```
If your fork uses a default branch other than `main`, set `OH_GITHUB_REF=<branch>` and replace `main` in the URL. If your fork uses a default branch other than `main`, set `OH_GITHUB_REF=<branch>` and replace `main` in the URL. See [Installation docs](https://oh.mifune.dev/docs/installation) for all environment overrides.
`curl | bash` from a branch HEAD is mutable — pin to a tag/SHA for production installs. </details>
> **Note:** Forks restructuring `.devcontainer/` should also patch the local-run detection in `scripts/install.sh` (the `-f .devcontainer/docker-compose.yml` check near line 173) — update the paths to match the new layout.
## 🚀 Use it ## 🚀 Use it
+39 -1
View File
@@ -16,7 +16,45 @@ Open Harness is a Docker-based sandbox image. Installation is `docker compose` a
That is the entire host requirement. Node.js, pnpm, and any AI CLI live inside the sandbox. That is the entire host requirement. Node.js, pnpm, and any AI CLI live inside the sandbox.
## One-line installer (recommended) ## Self-hosting: I already have a clone
If you've already cloned your fork — or cloned upstream and re-pointed the remote — run the installer from inside the directory. It auto-detects the local repo and skips any network clone:
```bash
cd <your-clone>
bash scripts/install.sh
```
The installer prompts for `SANDBOX_NAME`, writes `.devcontainer/.env`, and starts the sandbox. No `OH_GITHUB_REPO` environment variable required.
### Fork-and-clone
1. Fork `ryaneggz/open-harness` on GitHub.
2. Clone your fork:
```bash
git clone https://github.com/<your-org>/<your-fork>.git && cd <your-fork>
```
3. Run the installer — it detects the local clone automatically:
```bash
bash scripts/install.sh
```
### Clone-and-own (re-point)
1. Clone upstream:
```bash
git clone https://github.com/ryaneggz/open-harness.git my-harness && cd my-harness
```
2. Re-point origin to your repo:
```bash
git remote set-url origin https://github.com/<your-org>/<your-repo>.git
```
3. Run the installer:
```bash
bash scripts/install.sh
```
## One-line installer (upstream only)
```bash ```bash
curl -fsSL https://oh.mifune.dev/install.sh | bash curl -fsSL https://oh.mifune.dev/install.sh | bash
+2
View File
@@ -17,6 +17,8 @@ Install Docker with the Compose plugin: [docs.docker.com/get-docker](https://doc
curl -fsSL https://oh.mifune.dev/install.sh | bash curl -fsSL https://oh.mifune.dev/install.sh | bash
``` ```
> **Self-hosting?** If you've already cloned your fork or re-pointed origin, skip the curl command above and run `bash scripts/install.sh` from inside the directory instead — the installer detects the local clone automatically.
The installer clones into `~/.openharness`, prompts to share your host The installer clones into `~/.openharness`, prompts to share your host
`gh` token, writes `.devcontainer/.env` with safe defaults, and brings `gh` token, writes `.devcontainer/.env` with safe defaults, and brings
the sandbox up via `docker compose`. the sandbox up via `docker compose`.