Files
garden-astro/deploy/build.sh
T
wesandClaude Fable 5 8f48656e91 Build stamp, live listening strip, OG cards, closer shiki ground
- footer: 'built <ts> · <hash> · <n> notes', hash linking to Gitea
  (GARDEN_COMMIT passed in by build.sh; '+' marks dirty-tree builds)
- homepage header: live strip fed by api.c0smere.net/spotify/summary
  (weekly aggregate + monthly top artist/genre), fail-closed like the
  odometer and header quote
- /og/<slug>.png satori+resvg cards for every note + the homepage;
  og:/twitter: meta in Base
- shiki github-dark-default (#0d1117 sits closer to the page ground)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:08:53 -04:00

29 lines
1012 B
Bash
Executable File

#!/bin/sh
# Containerized build for cyrion: mounts the Obsidian vault read-only and
# writes dist/ into the repo checkout. Run from the repo root.
set -eu
VAULT="${VAULT:-/home/nox/docker/obsidian/vaults/weeslahw_coppermind}"
# footer build stamp: the node container has no git, so resolve the
# commit here ("+" = dirty tree, e.g. a local-state build after a failed pull)
COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo '')
if [ -n "$COMMIT" ] && ! git diff --quiet 2>/dev/null; then
COMMIT="${COMMIT}+"
fi
# --user: build artifacts (node_modules, dist, public/assets) must stay
# owned by the invoking user, or the next git pull can't write the tree
docker run --rm \
--user "$(id -u):$(id -g)" \
-v "$(pwd):/app" \
-v "$VAULT:/content:ro" \
-e GARDEN_CONTENT=/content/Digital_Garden \
-e GARDEN_COMMIT="$COMMIT" \
-e ASTRO_TELEMETRY_DISABLED=1 \
-e HOME=/tmp \
-e npm_config_cache=/tmp/.npm \
-w /app \
node:24-slim \
sh -c "npm ci && npm run build"