Everything you can set up, grouped by area. Pick a card to open that section, or use the menu on the left.
A quick health check of this device and the services it talks to. Green is healthy, amber needs a look, red is a problem.
Live readings from this device: processor, memory, storage, temperature. Updates every few seconds while this page is open.
Built-in live snapshot, always available on this device:
Where your stock lives: the Grocy backend and the storage buckets it's grouped into.
Exactly what is and is not shared: Community shelf life and privacy. Sharing works with or without a Forager account. For everything else the app does with your data, see the privacy policy.
Each maps to a Grocy location; assign items to it from the Move button on the Inventory page. Saved separately with the button below.
How items get into the pantry: the barcode scanner, barcode enrichment, and the AI models that read your food photos and receipts.
Running a Waveshare scan-engine module on a kiosk? See the hands-free setup codes to make it scan on sight without the button.
Camera scanning runs in the browser, so make sure this site has camera permission.
The device's built-in reader handles the scanner hardware. There is nothing to install in the browser: turn this on, wire the scanner up, and scans arrive while a scan page is open.
Your optional Forager account: sign in for hands-off photo, receipt, and barcode scanning, see your plan and usage, and turn on remote access so you can reach your kitchen from anywhere. What Forager stores and what stays home is spelled out in the privacy policy.
Switch this kitchen between running entirely on your own network and connecting to a Forager account whenever you like. Your kitchen data never leaves this device either way.
You are running self-hosted right now. Connect to a Forager account below to add these extras, and switch back to self-hosted here any time. Nothing moves.
Pantry Raider is free and open source: bring your own AI key and it works forever, no account needed. Forager is the optional convenience plan, and every account starts with a 30 day free trial.
Already signed in on the Forager website? Generate a pairing code there and enter it here instead.
Your recipe library and its connections: where recipes are stored, an optional Mealie hookup, and where "What can I cook?" looks for extra ideas. How suggestions get ranked against your tastes and kitchen lives under Recipe suggestions.
Your recipes come from your Mealie. You can keep it, or copy everything into Pantry Raider so recipes and the meal plan live here and Mealie is no longer needed. Your Mealie is never changed or removed.
Mealie is optional. Most kitchens use the built-in recipe library and never need it.
Your tastes and kitchen: how "What can I cook?" ranks recipes against your pantry, preferences, and the tools you own. These are personal settings; the Mealie connection and recipe sources live under Recipes.
How the app looks everywhere: the colour theme, an optional background photo, and which pages appear in the navigation.
Camera feeds for the on-screen Camera page and, when a Stream Deck is connected, a snapshot key or the full-deck overlay. The "add from your phone" QR code is set here too.
Pick the closest brand template, fill in the address and any login, then add it. You can edit the generated URLs in the list below before saving.
Enter your Frigate address and search. Each camera it finds can be previewed and added with one tap.
Enter the camera address and its login. The live view and still image come through this app, so the username and password stay on the server.
Stream URL is the live feed (an .m3u8 HLS or an MJPEG URL); Snapshot URL is a still image. The house button on a row fills both from its Home Assistant entity.
Connect Home Assistant to power the Stream Deck Home Assistant keys, camera discovery, and on-screen notifications. The easiest way is the Pantry Raider integration inside Home Assistant, which sets this page up for you. Home Assistant is optional: everything else works without it.
The recommended path runs from the Home Assistant side: install the Pantry Raider integration through HACS, add it in Home Assistant (it can find this device on your network by itself), and approve the pairing code shown on the kitchen screen. The connection here fills in automatically, and notifications and camera pop-ups work in Home Assistant out of the box: every Pantry Raider screen gets its own notify entity, no YAML needed. See the Home Assistant integration guide for the steps.
Manual entry is only needed when you are not using the Home Assistant integration.
This manual route is only needed when the Pantry Raider integration is not installed in Home Assistant; with the integration, notifications and camera pop-ups are built in.
This device's URL is filled in below. Paste an API key from
Settings > Security
where the placeholder is, then add this to your Home Assistant configuration.yaml:
rest_command:
foodassistant_notify:
url: "http://THIS-DEVICE:9284/events/notify"
method: POST
headers:
X-API-Key: "YOUR_FOODASSISTANT_API_KEY"
content_type: "application/json"
payload: '{"title":"","message":"","level":""}'
foodassistant_camera_popup:
url: "http://THIS-DEVICE:9284/events/camera-popup"
method: POST
headers:
X-API-Key: "YOUR_FOODASSISTANT_API_KEY"
content_type: "application/json"
payload: '{"camera":"","seconds":}'
foodassistant_camera_detect:
url: "http://THIS-DEVICE:9284/events/camera-detect"
method: POST
headers:
X-API-Key: "YOUR_FOODASSISTANT_API_KEY"
content_type: "application/json"
payload: '{"camera":"","detection_type":""}'
Then an automation, for example pop up the door camera on a person:
automation:
- alias: "Person at door -> pop up camera"
trigger:
- platform: state
entity_id: binary_sensor.front_door_person
to: "on"
action:
- service: rest_command.foodassistant_camera_popup
data:
camera: "Front Door"
seconds: 20
Or let one automation post every detection type your camera sees and let each camera's "Pop up this camera on" checkboxes (on the Cameras page) decide whether it actually pops up:
automation:
- alias: "Front door detection -> maybe pop up camera"
trigger:
- platform: state
entity_id: sensor.front_door_detection_type
action:
- service: rest_command.foodassistant_camera_detect
data:
camera: "Front Door"
detection_type: "{{ trigger.to_state.state }}"
The camera name must match one configured on the Cameras page. Notifications take message, optional title, and level (info/success/warning/error). detection_type is person, vehicle, animal, or visitor (a doorbell button press); a Reolink camera can also decide this itself without any Home Assistant automation, using the same per-camera checkboxes.
This device's connection: Wi-Fi and Ethernet, its network name, and the attached hardware it can see.
Who can reach the app and how login is protected.
Scan with your authenticator app, then enter the code to confirm.
| Name | Key | Type | Actions |
|---|
Print food and spice labels, and full recipes, on any printer shared on your network. A printer attached to one device is usable from every device.
Bluetooth label printer setup is available on a Pantry Raider appliance today. On this server, connect a label printer over the network instead, using Find printers or Add by address above.
Bluetooth and WiFi sensors around the kitchen: cooking probes, fridge and room sensors, door sensors, and shelf buttons. Readings stay on your own network; no cloud account is involved.
Wireless probe thermometers show live temperatures on the Timers page and raise an on-screen alert when a probe reaches its target.
gadgets/README.md file in that folder covers the
details. No Bluetooth radio on the server? If Home Assistant
already sees your thermometers, use the Home Assistant
section instead; it needs no radio here.
Keep the app up to date, and save your data off-box.
docker compose pull
docker compose up -d
git pull && docker compose up -d --build serviceGrocy and Mealie data live in separate containers; use scripts/backup.sh on the host for a full snapshot.
Maintenance that is not day-to-day: the timezone, reloads and reboots, diagnostics, and switching this device's role.
Bandit remotes and other satellite displays that follow this server.
An optional full-screen launcher that works like an on-screen Stream Deck. It opens at /ui/start and replaces the fixed and floating menus while shown. With Start at the top of the navigation menu it becomes this device's home screen.
How the app behaves on a screen: the on-screen navigation bar and quiet mode. Panel, sleep, and screensaver settings appear here on a device with an attached display.