# Doris Kitchen Deployment Notes

## Intended runtime shape on NOMAD

Doris Kitchen should run as a standalone NOMAD service from **`/opt/doris-kitchen`**.

- **Repo/source path:** `/home/fizzlepoof/repos/truenas-stacks/home/doris-kitchen`
- **Live runtime path:** `/opt/doris-kitchen`
- **Persistent app data:** `/opt/doris-kitchen/data`
- **Published app port:** `8092`

## Networking

Like Schoolhouse, this app should publish a host port on NOMAD and let Pangolin/Newt forward the public hostname to it.

Recommended exposure model:

- host port `8092`
- Pangolin auth enabled
- household use only for John and Leanne

## Pre-deploy checklist

1. Copy repo source into `/opt/doris-kitchen`.
2. Create a real `.env` from `.env.nomad.example`.
3. Fill in:
   - `KITCHENOWL_BASE_URL`
   - `KITCHENOWL_API_TOKEN`
   - `KITCHENOWL_HOUSEHOLD_ID`
4. Ensure `/opt/doris-kitchen/data` exists and is writable by Docker.
5. Create the Pangolin resource after the hostname is chosen.

## Suggested deploy flow

```bash
sudo mkdir -p /opt/doris-kitchen/data
sudo rsync -a --delete --exclude '.env' --exclude 'data/' /home/fizzlepoof/repos/truenas-stacks/home/doris-kitchen/ /opt/doris-kitchen/
cd /opt/doris-kitchen
sudo cp .env.nomad.example .env
# edit .env
sudo docker compose --env-file .env config
sudo docker compose --env-file .env up -d --build
```

## Post-deploy verification

```bash
curl -fsS http://127.0.0.1:8092/api/health
curl -fsS http://127.0.0.1:8092/api/dashboard/summary
```

Then verify:

- dashboard loads
- search returns normalized recipe suggestions
- soft blacklist toggles persist
- `Yes, add to KitchenOwl` creates or links a KitchenOwl recipe
- planner returns a week with ingredient reuse notes

