# DAMM Project Site Deployment

The DAMM project site is a thin static publication surface for the repository's operator documentation and selected evidence artifacts.

## Hostname

- intended public hostname: `damm.raindesk.dev`
- fronted by the existing Caddy instance on `hub2`
- published from `/home/uprootiny/damm-site`

## Purpose

This site is deliberately small:

- make the roadmap, runbooks, and validation ledger visible outside the repo
- publish a short evidence catalog without exposing the whole working tree
- keep deployment reversible and low-risk

It is not the source of truth. The repo remains the source of truth.

## Build

Run:

```bash
node scripts/build-site.js
```

That generates:

- `site-dist/index.html`
- `site-dist/manifest.json`
- copied documentation under `site-dist/docs/`
- copied evidence files under `site-dist/data/` when present locally

`manifest.json` records file digests for the published payload.

## Deploy

Run:

```bash
bash scripts/deploy-site.sh
```

The deploy script:

1. rebuilds `site-dist`
2. syncs it to `hub2:/home/uprootiny/damm-site`
3. appends a `damm.raindesk.dev` Caddy site block if it is not already present
4. validates the Caddy config
5. reloads Caddy

Environment overrides:

- `DAMM_SITE_DOMAIN`
- `DAMM_SITE_HOST`
- `DAMM_SITE_ROOT`

## Validation

Minimum validation:

```bash
node scripts/build-site.js
bash scripts/deploy-site.sh
curl -I https://damm.raindesk.dev/
curl -s https://damm.raindesk.dev/ | head
```

## Safety Notes

- wildcard DNS for `*.raindesk.dev` already resolves to `hub2`
- deployment is static-only and does not introduce a new backend process
- Caddy changes are idempotent for the configured hostname
- the published evidence set is intentionally curated rather than mirroring all local artifacts
