diff --git a/AGENTS.md b/AGENTS.md index 929b65c..978d1f1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -113,7 +113,7 @@ Inspect live data with `bun llm-code-assistant/query-db.ts ""` - a read-onl ### Installer and release -`install.sh` is the only supported install and update path: `curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash`. It is idempotent, so the same script is the updater, and `--uninstall [--purge]` is the way back out. It installs Docker when missing (Linux), creates the `cobble` network, writes `$COBBLE_HOME/install.conf` and a generated `.env` (mode 600), and starts one `cobble` container. Existing secrets are never regenerated; the database is backed up to `$COBBLE_HOME/backups` before a container is replaced. The default home is `/opt/cobble`, configurable with `--home`, and everything that must survive an update lives in its `data/` directory (`db`, `media`, `computers`). +`install.sh` is the only supported install and update path: `curl -fsSL https://url.moduletrace.com/cobble | sudo bash`. It is idempotent, so the same script is the updater, and `--uninstall [--purge]` is the way back out. It installs Docker when missing (Linux), creates the `cobble` network, writes `$COBBLE_HOME/install.conf` and a generated `.env` (mode 600), and starts one `cobble` container. Existing secrets are never regenerated; the database is backed up to `$COBBLE_HOME/backups` before a container is replaced. The default home is `/opt/cobble`, configurable with `--home`, and everything that must survive an update lives in its `data/` directory (`db`, `media`, `computers`). The container runs with `--network cobble`, `-p BIND:PORT`, `.env` at `/app/.env` read only, the host data directory at `/data`, the docker socket at `/var/run/docker.sock`, `MAIN_SERVER=1` and `PORT`, `--init`, a `unless-stopped` restart policy and bounded json-file logs. `/data` must stay a bind mount: `resolveHostPath` turns paths under the app's own mounts into host paths for computer containers, and a named volume would break them. `DATA_DIR=/data` and `DB_DIR=/data/db` come from the Dockerfile; `entrypoint.sh` keeps bun-sqlite's schema record on the same volume. diff --git a/README.md b/README.md index 972ff17..97a4cc7 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ On a Linux machine with Docker (the installer adds Docker when it is missing): ```bash -curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash +curl -fsSL https://url.moduletrace.com/cobble | sudo bash ``` Open the address it prints, usually `http://:7227`, and create the @@ -58,15 +58,15 @@ home directories and generated secrets, backs up the database before replacing the container, and does nothing when the image has not changed. ```bash -curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash +curl -fsSL https://url.moduletrace.com/cobble | sudo bash ``` ```bash # Stop the app and keep the data -curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash -s -- --uninstall +curl -fsSL https://url.moduletrace.com/cobble | sudo bash -s -- --uninstall # Stop the app and delete the data -curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash -s -- --uninstall --purge +curl -fsSL https://url.moduletrace.com/cobble | sudo bash -s -- --uninstall --purge ``` ### Options diff --git a/RELEASING.md b/RELEASING.md index 4361449..b2463b9 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -48,7 +48,7 @@ The repository starts private and is made public at the launch gate below. 11. [ ] Update every install with the one-liner: - curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash + curl -fsSL https://url.moduletrace.com/cobble | sudo bash ## Launch gate diff --git a/install.sh b/install.sh index f47ac21..7a8f51a 100644 --- a/install.sh +++ b/install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Cobble installer and updater. # -# curl -fsSL https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh | sudo bash +# curl -fsSL https://url.moduletrace.com/cobble | sudo bash # # The script is idempotent: running it again updates Cobble in place and # keeps the data, the database and the generated secrets. It installs @@ -16,7 +16,7 @@ DEFAULT_PORT="7227" DEFAULT_BIND="0.0.0.0" DEFAULT_IMAGE="ghcr.io/moduletrace/cobble" DEFAULT_VERSION="latest" -INSTALL_URL="https://raw.githubusercontent.com/moduletrace/cobble/main/install.sh" +INSTALL_URL="https://url.moduletrace.com/cobble" HEALTH_TIMEOUT_SECONDS="${COBBLE_HEALTH_TIMEOUT:-900}" BACKUPS_KEPT=5