matthew 574376aa75 basement install.sh: preserve admin user + password hash across re-runs
Re-running install.sh was wiping BASEMENT_ADMIN_USER and _PASSWORD_HASH
back to empty in my-basement.xml — the user then had to re-enter them
in the Unraid UI every time. Annoying.

Template now declares those two fields as __PLACEHOLDER__ tokens.
install.sh, before fetching the new template, sed-extracts whatever's
currently in the existing my-basement.xml and feeds those values back
into the substitution. First-time installs sub to empty (user fills
via UI); subsequent runs preserve what's there.

Bcrypt's $-heavy chars survive sed because `|` is the delimiter and
sed only interprets $ in regex/match, not replacement.
2026-05-19 08:35:11 -07:00

pq/scripts

Public bootstrap scripts. Only public repo on git.docker.pq.io — everything else is private. This one is public so machines on the internal network can curl raw URLs anonymously, without embedding tokens.

Distribution is over the LAN (gitea is not internet-reachable); "public" here just means anonymous access from the internal network.

Layout

unraid-1/
  install.sh                     # bootstrap entrypoint
  garage.toml                    # garage S3 config (single-node, lmdb, rf=1)
  garage.template.xml            # unraid CA template — garage container
  basement.template.xml          # unraid CA template — basement-ui (garage admin UI)
  watchtower.template.xml        # unraid CA template — image auto-updater
  host-agent.template.xml        # unraid CA template — per-host metrics + fan ctrl

Usage

On the unraid-1 console:

bash <(curl -sL https://git.docker.pq.io/pq/scripts/raw/branch/main/unraid-1/install.sh)

The installer is idempotent. Re-run any time to re-fetch templates or pick up new ones. FORCE=1 rotates garage's secrets.

After install: Unraid UI → Docker → Add Container → Template dropdown → Apply each of my-garage, my-basement, my-watchtower, my-host-agent.

S
Description
Public bootstrap scripts (unraid-1, etc.) — fetched anonymously from the LAN
Readme
48 KiB
Languages
Shell 100%