Files
Aknaproff/docker-entrypoint.sh
Deploy Bot 64403d6fd6 v4.1.21: Реструктуризация проекта для Synology ARM
- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены)
- Добавлен src/original-html.ts — полный HTML с reportModal
- Добавлен src/index.tsx.backup — React-компонент с reportModal
- Миграции переименованы (0001_initial_schema.sql)
- Добавлена миграция 0018 (удалена позже)
- Docker: multi-stage build, wrangler.toml
- Frontend: public/static/app.js + style.css
- seed.sql добавлен
- Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
2026-01-14 18:37:00 +02:00

62 lines
1.7 KiB
Bash
Executable File

#!/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"
SKIP_MIGRATIONS="${SKIP_MIGRATIONS:-true}" # ⚠️ По умолчанию пропускаем миграции!
mkdir -p "${PERSIST_PATH}"
export WRANGLER_SEND_METRICS="${WRANGLER_SEND_METRICS:-false}"
apply_migrations() {
if [[ "${SKIP_MIGRATIONS,,}" == "true" ]]; then
echo "[entrypoint] Skipping migrations (SKIP_MIGRATIONS=true)"
echo "[entrypoint] Using existing database from ${PERSIST_PATH}"
return
fi
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