# Sydo server deployment

The website is a Next.js application and requires Node.js 20 or newer.

## Required configuration

Copy `.env.example` to `.env.production` and set at least one contact destination:

```bash
NEXT_PUBLIC_BOOKING_URL=https://cal.com/your-account/10-minute-call
NEXT_PUBLIC_CONTACT_EMAIL=hello@your-domain.com
NEXT_PUBLIC_SHOW_ERASTEEL_METRICS=false
```

`NEXT_PUBLIC_*` values are embedded during the production build. Set them before running `npm run build`.

## Standard Node.js deployment

```bash
npm ci
npm run build
npm run start
```

The site listens on port `3000` by default.

Health check:

```text
GET /api/health
```

## Docker deployment

```bash
docker build \
  --build-arg NEXT_PUBLIC_BOOKING_URL="https://cal.com/your-account/10-minute-call" \
  --build-arg NEXT_PUBLIC_CONTACT_EMAIL="hello@your-domain.com" \
  --build-arg NEXT_PUBLIC_SHOW_ERASTEEL_METRICS="false" \
  -t sydo-landing .

docker run -d \
  --name sydo-landing \
  --restart unless-stopped \
  -p 3000:3000 \
  sydo-landing
```

Place Nginx, Caddy or another reverse proxy in front of port `3000` for TLS and the public domain.

## Publication checks

- Replace the example booking URL and contact email.
- Add approved team names, roles, biographies and portraits.
- Keep Erasteel metrics disabled until approved.
- Confirm that the supplied Neue Haas font files are licensed for web embedding.
