Add docker-compose for local Postgres and fix the setup docs
Adds docker-compose.yml (Postgres on host port 5433, to avoid clashing with another project's container already using 5432 on this machine) and .env.example so `docker compose up -d` + `cp .env.example .env.local` gets a working local DB. Adds a db:seed script alongside the existing db:* scripts. Rewrites README's "Adding a Database" section, which still described Better Auth's DB as optional/hypothetical even though this project already requires Postgres for both its own data and Better Auth's tables. Fills in CLAUDE.md's Data layer connection-details placeholder and fixes two more stale pnpm references and a wrong migrations path (src/db/migrations/ instead of the actual drizzle/) found nearby. Also fixes a real bug the new docs surfaced: `npm run db:seed` didn't load .env.local the way drizzle-kit does, so DATABASE_URL was silently unset when run as documented. seed.ts now loads env the same way drizzle.config.ts already does. Verified the full documented flow end-to-end against a fresh container: migrate, better-auth migrate, seed, dev server, real page render. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,10 @@ npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
This requires a running Postgres database — see
|
||||
[Local development database](#local-development-database) below before your
|
||||
first run.
|
||||
|
||||
# Building For Production
|
||||
|
||||
To build this application for production:
|
||||
@@ -42,39 +46,44 @@ npm run check
|
||||
```
|
||||
|
||||
|
||||
## Setting up Better Auth
|
||||
## Local development database
|
||||
|
||||
1. Generate and set the `BETTER_AUTH_SECRET` environment variable in your `.env.local`:
|
||||
|
||||
```bash
|
||||
npx -y @better-auth/cli secret
|
||||
```
|
||||
|
||||
2. Visit the [Better Auth documentation](https://www.better-auth.com) to unlock the full potential of authentication in your app.
|
||||
|
||||
### Adding a Database (Optional)
|
||||
|
||||
Better Auth can work in stateless mode, but to persist user data, add a database:
|
||||
|
||||
```typescript
|
||||
// src/lib/auth.ts
|
||||
import { betterAuth } from "better-auth";
|
||||
import { Pool } from "pg";
|
||||
|
||||
export const auth = betterAuth({
|
||||
database: new Pool({
|
||||
connectionString: process.env.DATABASE_URL,
|
||||
}),
|
||||
// ... rest of config
|
||||
});
|
||||
```
|
||||
|
||||
Then run migrations:
|
||||
This project requires a Postgres database — both for its own data (Drizzle,
|
||||
see `src/db/schema.ts`) and for Better Auth's own tables (users, sessions,
|
||||
etc). A `docker-compose.yml` at the repo root starts one:
|
||||
|
||||
```bash
|
||||
npx -y @better-auth/cli migrate
|
||||
docker compose up -d # starts Postgres on localhost:5433
|
||||
cp .env.example .env.local # sets DATABASE_URL to match
|
||||
npm run db:migrate # applies this project's Drizzle migrations
|
||||
npx @better-auth/cli migrate # applies Better Auth's own tables
|
||||
npm run db:seed # seeds a sample Brand, menu, and Machines
|
||||
npm run dev
|
||||
```
|
||||
|
||||
`DATABASE_URL` in `.env.local` is picked up automatically by both the dev
|
||||
server and the `drizzle-kit` commands above — no other wiring needed.
|
||||
|
||||
After changing `src/db/schema.ts`, generate and apply a new migration rather
|
||||
than editing the database by hand:
|
||||
|
||||
```bash
|
||||
npm run db:generate
|
||||
npm run db:migrate
|
||||
```
|
||||
|
||||
## Setting up Better Auth
|
||||
|
||||
Generate and set the `BETTER_AUTH_SECRET` environment variable in your
|
||||
`.env.local`:
|
||||
|
||||
```bash
|
||||
npx -y @better-auth/cli secret
|
||||
```
|
||||
|
||||
See the [Better Auth documentation](https://www.better-auth.com) for more on
|
||||
configuring authentication.
|
||||
|
||||
|
||||
|
||||
## Routing
|
||||
|
||||
Reference in New Issue
Block a user