bootstrap/install.sh is a POSIX-sh script that handles all three ZDDC
deployment patterns plus both target shapes in a single command. The
homepage's "Install on your server" section now prints `sh -c
"$(curl -fsSL https://zddc.varasys.io/install.sh)"` invocations instead
of inlining four separate cURL loops.
Modes / channels / target:
--mode copy (default) fetch actual HTML files locally; site is
self-contained after install.
--mode track install level-2 stubs that fetch the channel
from upstream on every page load. Only valid
with channel names (stable/beta/alpha); for
pinned versions, use --mode copy.
--channel stable (default)
--channel beta | alpha channel mirrors (auto-update upstream)
--channel 0.0.2 exact version
--channel 0.0 latest patch within 0.0.x (symlink-resolved)
--channel 0 latest within 0.x (symlink-resolved)
Optional leading 'v' is accepted.
--target root 5 tool HTMLs (incl. landing as index.html)
plus _template/ directory of level-1 stubs
--target project 4 level-1 stubs that fetch ../<tool>.html
--target auto (default) detect from CWD: 'project' if parent has a
ZDDC-looking index.html, 'root' otherwise
--source URL Override the upstream base URL (default:
https://zddc.varasys.io). Use this to point
at a private dev server during alpha work;
install.sh sed-rewrites the embedded source
inside fetched track-channel stubs so they
use your URL.
Also:
- website/index.html — replaces the four inlined install-card snippets
with four use-case-oriented cards that all invoke the same script
(self-contained / track-channel / pin-to-version / project-subdir).
- website/index.html — fixes the stale "pre-built image at codeberg.org/
varasys/zddc-server (channel-tagged :stable, :beta, :alpha)" reference;
zddc-server is now distributed as Codeberg release-asset binaries with
helm chart examples in the repo.
- website/install.sh — symlink to ../bootstrap/install.sh so the upstream
serves the script at https://zddc.varasys.io/install.sh.
Verified end-to-end against a file:// source: copy:root, copy:project,
track:root with custom --source (rewrite of base URL inside fetched
stub), and auto-detection of project vs root from CWD's parent
index.html all behave correctly.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>