#!/bin/bash set -euo pipefail PORT="${PORT:-3000}" D1_BINDING="${D1_BINDING:-aknaproff-db}" PERSIST_PATH="${PERSIST_PATH:-/data}" SEED_DATA="${SEED_DATA:-false}" SEED_SENTINEL="${PERSIST_PATH}/.seeded" mkdir -p "${PERSIST_PATH}" export WRANGLER_SEND_METRICS="${WRANGLER_SEND_METRICS:-false}" apply_migrations() { echo "[entrypoint] Applying D1 migrations (binding: ${D1_BINDING}, persist: ${PERSIST_PATH})" npx wrangler d1 migrations apply "${D1_BINDING}" \ --local \ --persist-to "${PERSIST_PATH}" } maybe_seed_data() { if [[ "${SEED_DATA,,}" != "true" ]]; then echo "[entrypoint] Seed step disabled (set SEED_DATA=true to enable)" return fi if [[ -f "${SEED_SENTINEL}" ]]; then echo "[entrypoint] Seed data already applied (skipping)" return fi echo "[entrypoint] Seeding local database from seed.sql" if npx wrangler d1 execute "${D1_BINDING}" \ --local \ --persist-to "${PERSIST_PATH}" \ --file ./seed.sql; then touch "${SEED_SENTINEL}" else echo "[entrypoint] Seed step failed but container will continue" >&2 fi } start_server() { echo "[entrypoint] Starting Wrangler dev server on port ${PORT}" exec npx wrangler pages dev dist \ --local \ --d1="${D1_BINDING}" \ --persist-to "${PERSIST_PATH}" \ --ip 0.0.0.0 \ --port "${PORT}" } apply_migrations maybe_seed_data start_server