Run the whole stack in Docker

- API and web images built with turbo prune; the API image also runs the
  worker and migrations. Non-root, health-checked, Debian slim.
- docker compose up -d --build starts Postgres, Redis (persistent), a
  one-shot migrate job, API, worker and web, in dependency order.
- Fix the API production build (tsup flags moved to a config file) and
  bundle the migration script; silence Postgres NOTICE noise.
- npm run infra:up now starts only Postgres and Redis for hot-reload dev.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MzFywujuH9TiuXbr9vjoX8
This commit is contained in:
2026-10-03 16:02:38 -04:00
co-authored by Claude Opus 5.5
parent ece9c4fd64
commit 6317004004
12 changed files with 214 additions and 8 deletions
+3 -2
View File
@@ -5,7 +5,7 @@
"type": "module",
"scripts": {
"dev": "concurrently -n api,worker -c blue,magenta \"tsx watch src/server.ts\" \"tsx watch src/worker.ts\"",
"build": "tsup src/server.ts src/worker.ts --format esm --target node22 --noExternal @musicshare/shared",
"build": "tsup",
"start": "node dist/server.js",
"start:worker": "node dist/worker.js",
"typecheck": "tsc -p .",
@@ -13,7 +13,8 @@
"db:migrate": "tsx src/db/migrate.ts",
"test": "vitest run",
"test:unit": "vitest run --project unit",
"test:watch": "vitest"
"test:watch": "vitest",
"start:migrate": "node dist/db/migrate.js"
},
"dependencies": {
"@fastify/cookie": "^11.1.2",