NestGrow — IoT System for Vegetable Growing CellsNestGrow — IoT System for Vegetable Growing Cells

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

NestGrow dashboard with moisture charts and irrigation data 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

NestGrow zone configuration modal 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

NestGrow System tab — backup, data retention and Excel export 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.gz file
  • 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 Server

The 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

PlanCellsPriceNotes
Free1€0/monthFree forever
Pro5€0/month🆕 Free during beta
Enterprise20Coming soon
UltraUnlimitedCustomContact 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

Terminal window
# 1. Extract the archive
unzip nestgrow-docker-v1.0.1.zip
cd nestgrow-docker-v1.0.1
# 2. Configure environment variables
cp .env.example .env
nano .env # set your passwords
# 3. Generate a secure JWT secret
python3 -c "import secrets; print(secrets.token_hex(32))"
# copy the value to JWT_SECRET in .env
# 4. Start the system
docker compose up -d
# 5. Open your browser
# http://localhost:3001

On 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.so binaries 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


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