Sereal Docs

Installation

Stand up a single-tenant Sereal instance with Docker and Supabase.

Sereal self-hosts as a Next.js app (Docker) backed by a Supabase project (Postgres + Auth + Storage). This page is the operational summary; the authoritative, step-by-step guide — including troubleshooting and known unsupported paths — lives in INSTALL.md in the repo.

The install guide is a first-pass draft until it has been walked end-to-end on a clean machine. Expect rough edges, and prefer INSTALL.md as the source of truth if this page and it ever disagree.

What you need

  • Docker with docker compose
  • Node.js 22+ and npm — only for the Supabase CLI and the one-off owner bootstrap script, not at runtime
  • A Supabase project — Supabase Cloud (free tier is enough for a personal collection) or your own self-hosted Supabase
  • An eBay developer app — optional, only for deal-watching, Scout, and comp lookup. Collection, spend, sold, and grading all work without it.

The shape of an install

  1. Create a Supabase project and note its URL, project ref, anon key, service-role key, and database password.
  2. Clone the repo and apply migrations with the Supabase CLI (supabase linksupabase db push --linked), then verify with npm run check:migrations — you want Migration parity OK.
  3. Configure .env.local from .env.example — see Configuration for what each variable does.
  4. Bootstrap the owner account with supabase/bootstrap-owner.ts (dry run first, then --confirm). A database trigger seeds per-tenant defaults like the vendor list.
  5. Build and start with docker compose up -d --build.
  6. Verify with the health check, then log in as the owner.

Confirm it came up

curl -sf http://localhost:3000/api/health | jq .

A healthy instance returns:

{ "ok": true, "checks": { "app": "ok", "env": "ok", "database": "ok" } }
  • env: fail → a variable in .env.local is missing or empty.
  • database: fail → the app can't reach Supabase; re-check the URL and the service-role key.

Then open http://localhost:3000, sign in with your owner credentials, and you land on an empty dashboard. Continue with Configuration and Deployment.

On this page