- 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>
29 lines
1012 B
Bash
Executable File
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"
|