

NestGrow — IoT System for Vegetable Growing Cells
⚠️ Important note on the execution environment
This software is developed and tested on Raspberry Pi. This is not a limitation — it is an optimization discipline. Developing on hardware with limited resources forces developers to write efficient, smooth, and performant code.
Thanks to Docker, the same software runs identically on:
- Windows 11 or higher (and equivalent server editions) with WSL installed
- Linux with Docker support
- macOS
- Any hardware supporting these operating systems
The Raspberry Pi is our quality benchmark. Docker is the bridge to any infrastructure.
🌱 What is NestGrow
NestGrow is a complete system for the automated management of vegetable growing cells — smart planter boxes equipped with moisture sensors, irrigation pumps, and WiFi communication via ESP32.
The Docker backend receives sensor data, decides when to irrigate, records full history, and provides a web dashboard for real-time control from any device.
The system is designed for anyone who wants to grow precisely and autonomously — from hobbyists with a single planter to agricultural companies with dozens of production lines.
🖥️ Dashboard
Real-time dashboard — per-zone moisture, tank level, irrigation counter and historical charts
The dashboard shows in real time:
- Current moisture per zone with automatic 60-second refresh
- Pump status with manual ON/OFF control
- Historical moisture charts per zone (24h, 7d, 30d)
- Tank level with automatic alert when empty
- Irrigation count per zone for the selected period
⚙️ Zone configuration
Each zone is independently configurable — crop, irrigation thresholds, cycle duration and sensor read frequency
Each growing cell zone is independently configurable:
- Name and crop — label the zone with what you’re growing
- Automatic irrigation — enable/disable per zone
- Minimum moisture threshold — irrigation starts below this percentage
- Moisture target — target to reach after irrigation
- Cycle duration — seconds of pump per irrigation event
- Sensor read interval — configurable in real time on the ESP32 without reflashing
💾 Data management and backup
Automatic nightly backup, data retention management and full Excel export
The System tab includes:
- Automatic backup every night at 02:00 with downloadable list
- Restore from local
.sql.gzfile - Configurable retention — choose how many days of history to keep
- Excel export — moisture readings, irrigations and per-zone summary
🧩 Architecture
ESP32 WROOM-32D (open source firmware) │ └── WiFi → MQTT → Docker backend │ ├── FastAPI + SQLAlchemy async ├── MariaDB 11 ├── Eclipse Mosquitto 2 ├── Vue 3 + Vite dashboard └── lake8.dev License ServerThe Docker backend is closed source with critical code compiled to binary via Cython — Python sources are not accessible even from inside the container.
The ESP32 firmware is fully open source (MIT) available on GitHub.
📦 Available plans
| Plan | Cells | Price | Notes |
|---|---|---|---|
| Free | 1 | €0/month | Free forever |
| Pro | 5 | €0/month | 🆕 Free during beta |
| Enterprise | 20 | — | Coming soon |
| Ultra | Unlimited | Custom | Contact us |
🚀 Installation in 5 steps
Requirements
- Docker >= 24.0 and Docker Compose >= 2.0
- Ports 1883, 8000, 3001 available
- ESP32 WROOM-32D with NestGrow firmware
Download
Download the latest version from the official link:
👉 Download NestGrow Docker — Latest release
Setup
# 1. Extract the archiveunzip nestgrow-docker-v1.0.1.zipcd nestgrow-docker-v1.0.1
# 2. Configure environment variablescp .env.example .envnano .env # set your passwords
# 3. Generate a secure JWT secretpython3 -c "import secrets; print(secrets.token_hex(32))"# copy the value to JWT_SECRET in .env
# 4. Start the systemdocker compose up -d
# 5. Open your browser# http://localhost:3001On first launch the registration screen opens — create your free account and the system is ready.
🔌 ESP32 Firmware
The open source firmware for ESP32 WROOM-32D is available on GitHub:
👉 github.com/jaffa2970/nestgrow-esp32
Key features:
- Captive portal for browser-based WiFi setup (no code changes needed)
- 4 independent capacitive moisture sensors
- Tank float switch
- 4 pumps/valves via HW-316 relay
- Per-zone read interval configurable in real time
- Automatic NTP time sync
- Pump safety timeout and empty tank lockout
🔒 Security
- Backend code compiled with Cython —
.sobinaries not readable - JWT authentication for dashboard
- User management with Administrator and User (read-only) roles
- All data stays on-premise on your server — nothing sent to the cloud
- Automatic nightly backup with local download
🗺️ Roadmap
Upcoming versions will include:
- 💡 Light sensor + UV lamps — automatic light cycle management
- 🧪 pH sensor — soil chemistry monitoring and alerts
- 📷 ESP32-CAM camera — live stream and timelapse per cell
🔗 Links
- Docker download: github.com/jaffa2970/nestgrow-backend/releases/latest
- ESP32 firmware (MIT): github.com/jaffa2970/nestgrow-esp32
- Support: open a ticket from the dashboard after registration
Rights and Attribution
Images, logos, and photographs cited or shown in this article are the property of their respective owners. No rights are intended to be infringed: materials are used in relation to third-party sources and for commentary purposes.
NestGrow is a lake8.dev project — 2026
← Back to projects