Files
cms-plugins/docker/entrypoint.sh
T
Oleks 87eb6a0f84
ci/woodpecker/push/container Pipeline was canceled
fix(seed): add required id to seed entries + make seed non-fatal
emdash seed validates that every content entry has an id (validate.ts),
but seed/seed.json entries only had slug — so seed aborted with 'id is
required' and, under set -e, crash-looped the pod (502). Set id=slug for
all 42 entries (conflict-detection keys off slug, so id is just the
seed-local ref key). Also move the seed step out from under set -e: a bad
content seed should log loudly but not take the whole site down (init
migrations stay fatal).
2026-06-14 14:06:41 +03:00

31 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
set -eu
# Ensure persistent state dirs exist (volume may be empty on first boot).
mkdir -p /app/state/uploads
# Run emdash init + seed on EVERY boot, before exec'ing the server. Both are
# idempotent: `init` runs only pending migrations (no-op when all applied) and
# `seed` applies seed/seed.json with onConflict=skip (no-op once rows exist).
# `init` does NOT load JSON seeds — that moved to the separate `emdash seed`
# command — so without this seed step the catalog boots empty. Under `set -e` a
# non-zero exit aborts before `exec "$@"`, so a failed/partial init or seed
# surfaces as a crash-loop with logs instead of a silently half-set-up boot.
# (Gating on the mere presence of data.db would skip pending migrations on image
# upgrades against an existing PVC and never recover a partial first-run init.)
echo "[entrypoint] running emdash init (applies pending migrations)"
node_modules/.bin/emdash init
# Seed is best-effort: unlike migrations, a content-seed failure (e.g. a bad
# seed.json entry) must NOT crash-loop the whole site, so it is NOT under the
# `set -e` abort. We still surface a non-zero rc loudly in the logs rather than
# swallowing it silently.
echo "[entrypoint] running emdash seed (applies seed/seed.json, onConflict=skip)"
if node_modules/.bin/emdash seed; then
echo "[entrypoint] emdash seed ok"
else
echo "[entrypoint] WARNING: emdash seed failed (rc=$?) — serving without full seed" >&2
fi
exec "$@"