# Payload CMS Multi-Tenant

Multi-Tenant Headless CMS for 3 active websites under a single Payload CMS instance.

## Tech Stack

- **CMS:** Payload CMS 3.76.1
- **Framework:** Next.js 16.2.0-canary.41
- **Runtime:** Node.js 22.x
- **Database:** PostgreSQL 17.6 (via PgBouncer)
- **Cache:** Redis 7.x (optional, with in-memory fallback)
- **Package Manager:** pnpm

## Tenants

| Tenant | Slug | Domain |
|--------|------|--------|
| porwoll.de | porwoll | porwoll.de |
| Complex Care Solutions GmbH | c2s | complexcaresolutions.de |
| Gunshin | gunshin | gunshin.de |

## Quick Start

### Prerequisites

- Node.js 22.x
- pnpm
- PostgreSQL 17 (or PgBouncer connection)
- Redis (optional)

### Setup

```bash
# Install dependencies
pnpm install

# Copy environment variables
cp .env.example .env
# Edit .env with your database credentials

# Run development server
pnpm dev
```

Open [http://localhost:3000/admin](http://localhost:3000/admin) to access the admin panel.

## Commands

```bash
pnpm dev                    # Development server
pnpm build                  # Production build
pnpm payload migrate        # Run migrations
pnpm payload migrate:create # Create migration
pnpm test                   # Run tests
pnpm lint                   # ESLint
pnpm typecheck              # TypeScript check
```

## Documentation

- **[CLAUDE.md](./CLAUDE.md)** - Full project documentation (collections, blocks, APIs, architecture)
- **[docs/](./docs/)** - Additional documentation (infrastructure, deployment, security)

## Email Testing

Set `EMAIL_DELIVERY_DISABLED=true` to bypass SMTP calls during testing. This flag is automatically honored in `NODE_ENV=test`.
