1.11.5
⚙️ Patch 1.11.5 — Self-hosted n8n Assistant sandbox, Otto keep_buy_box
🚀 Summary
- n8n Assistant — Self-hosted
n8n-sandbox stack (sandbox-certs, sandbox-api, privileged sandbox-runner-1) plus internal SearXNG. Daytona is not used.
- Otto monitor — Optional
keep_buy_box. When true and we already hold the buy box, the price is left unchanged (no rise toward max / next competitor).
✨ Details
n8n Assistant sandbox
| Area |
Behavior |
| Sandbox |
N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox; n8n talks to http://sandbox-api:8080 |
| Ports |
Sandbox / SearXNG stay on the Compose network — do not publish 8080/9090 or put them behind nginx |
| Search |
SearXNG JSON enabled (settings written in the container; no host bind-mount of settings.yml) |
n8n does not wait for sandbox-api. Compose hardcodes N8N_SANDBOX_SERVICE_URL. Put N8N_SANDBOX_SERVICE_API_KEY in Portainer / .env. Keep the model in the n8n AI Assistant UI.
Otto monitor keep_buy_box
| Call |
Behavior |
| Cron / Monitor All |
keep_buy_box=false (unchanged: can still rise to max when we hold the box) |
POST /otto/articles/monitor/{sku}?keep_buy_box=true |
Skip all price changes if is_in_buybox |
| Not in buy box |
Undercut still runs as before |
📌 Notes
- n8n Assistant is in Preview. Review generated workflows before production use.
n8n-runner (Code nodes) is unrelated to sandbox-runner-1. Host needs extra RAM/CPU for privileged Docker-in-Docker.
- Redeploy n8n + sandbox stack and service-multi-repricer.
- Dashboard row Monitor does not send
keep_buy_box; pass it on the API / n8n call.
📚 Docs
📁 Files
docker-compose.yml, docker-compose-portainer.yml
docker/n8n-sandbox/searxng-settings.yml
docs/docs/infrastructure/n8n.md
backend/service_multi-repricer/app/services/otto/otto_service.py
backend/service_multi-repricer/app/api/v1/endpoints/otto_articles.py
backend/service_multi-repricer/app/tests/test_otto_adapt_price_bounds.py
frontend/src/services/api/multi/otto.js
docs/docs/services/service_multi_repricer/endpoints/otto_articles.md
docs/docs/services/service_multi_repricer/user_guide.md
docs/docs/patchnotes/1.11/1.11.5.md — this file