# 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