Skip to content

feat: production-ready deploy (supersedes #14)#15

Merged
miraekims merged 1 commit into
mainfrom
feat/deploy-ready
May 13, 2026
Merged

feat: production-ready deploy (supersedes #14)#15
miraekims merged 1 commit into
mainfrom
feat/deploy-ready

Conversation

@kiro-agent

@kiro-agent kiro-agent Bot commented May 12, 2026

Copy link
Copy Markdown

This pull request was generated by @kiro-agent 👻

Comment with /kiro fix to address specific feedback or /kiro all to address everything.
Learn about Kiro autonomous agent


Supersedes #14.

This branch is a single clean commit on top of main with no merge history artifacts and no conflicts. PR #14 can be closed without merging; everything is here.

What's included

API (apps/api/)

  • Postgres stores (pg-identity-store.ts, pg-session-store.ts) with auto-migration
  • Store interfaces async
  • DATABASE_URL env toggles between Postgres (prod) and in-memory (dev)
  • Dockerfile with multi-stage build (includes shared package build)
  • migrations/001_initial.sql applied on first boot

Build system

  • package.json: explicit shared-first build order (prevents CI race condition)
  • packages/shared: emits dist/index.js for Node runtime
  • packages/shared/package.json: proper main/types/exports fields

Deploy configs (one-click deploys)

  • railway.json — Railway reads this, deploys Dockerfile with /health healthcheck
  • apps/claim-web/vercel.json — Vercel reads this, knows it's a monorepo
  • .github/workflows/docker.yml — auto-publish Docker image to ghcr.io on push to main
  • .env.example — documented variables

Docs

  • README.md — badges, architecture diagram, feature table, one-click deploy buttons
  • DEPLOY.md — 5-step walkthrough: Supabase → Railway → Vercel → Chrome Web Store

Verified locally

✓ npm install (fresh)    → clean
✓ npm run build          → clean (shared first, then workspaces)
✓ npm run typecheck      → clean (all 4 projects)
✓ docker build           → image ~80MB
✓ docker run + /health   → {"ok":true}

How to deploy after merge

Total cost: $0/mo on free tiers. See DEPLOY.md for full walkthrough.

  1. Supabase — new project, copy DATABASE_URL
  2. Railway — deploy from GitHub (auto-detects railway.json), set 3 env vars
  3. Vercel — deploy from GitHub (auto-detects vercel.json), set TL_API_BASE
  4. Chrome Web Store — build extension with prod API URL, upload zip

…nfigs

Consolidates all recent work into one clean commit on top of main:

API (apps/api):
- Postgres adapter (pg-identity-store, pg-session-store) with auto-migration
- Store interfaces are now async
- server.ts: DATABASE_URL toggles between Postgres and in-memory
- Dockerfile (multi-stage, shared package build included)
- 001_initial.sql auto-applied on first boot

Build system:
- package.json: explicit shared-first build order (prevents race)
- packages/shared: emits dist/index.js for Node runtime compatibility

Deploy configs:
- railway.json: Dockerfile-based deploy with /health healthcheck
- apps/claim-web/vercel.json: monorepo build command
- .github/workflows/docker.yml: auto-publish to ghcr.io on main
- .env.example: documented environment variables

Docs:
- README.md: badges, architecture, feature table, deploy buttons
- DEPLOY.md: 5-step guide (Supabase → Railway → Vercel → Chrome Store)

Verified locally:
- npm run build → clean
- npm run typecheck → clean
- docker build + docker run → /health returns {ok:true}
@miraekims miraekims merged commit 7623f60 into main May 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant