Skip to content
Projects

40rbidd3n/Hydro0x01 has 553 GitHub stars and 101 forks. GitHot measured +2 in 7 days. Last checked 2026-11-11 04:18 UTC. Last push 2026-10-31.

How these counts are measured

Secure, production-grade IoT hydroponic automation system with ESP32, MQTT telemetry, and real-time dashboard

What you can do

  • Real-Time Environment Monitoring: High-precision tracking of pH, EC, water level, temperature, and humidity.
  • Automated Actuator Control: Smart relays for dosing pumps, main circulation, grow lights, and ventilation.
  • Secure Architecture: Async MQTT with TLS, offline robust modes, and RSA-2048 Signed OTA updates.
  • Edge-First Local Dashboard: Lightning fast React SPA communicating over real-time WebSockets to a Fastify backend.

Measured star growth

in 24h
Update delayed
in 7 days
+2
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

HydroponicOne Logo

Production-Grade Open Source IoT Hydroponic Control System

Stars Forks License


HydroponicOne is a robust, modular, and professional-grade hydroponic monitoring and control system. It aims to bridge the gap between hobbyist DIY setups and expensive industrial automation. Featuring a modern tech stack including MQTT, InfluxDB telemetry, and a sleek React-based dashboard.

system overview

✨ Features

  • Real-Time Environment Monitoring: High-precision tracking of pH, EC, water level, temperature, and humidity.
  • Automated Actuator Control: Smart relays for dosing pumps, main circulation, grow lights, and ventilation.
  • Secure Architecture: Async MQTT with TLS, offline robust modes, and RSA-2048 Signed OTA updates.
  • Edge-First Local Dashboard: Lightning fast React SPA communicating over real-time WebSockets to a Fastify backend.
  • Enterprise Data Management: PostgreSQL for persistent config state and InfluxDB for time-series telemetry.

🏗 System Architecture

Layer Stack
Frontend React 19, Vite, Tailwind CSS, Recharts, Zustand, Lucide Icons
Backend Node.js, Fastify, Prisma ORM, Socket.io
Database PostgreSQL (relational), InfluxDB (time-series)
Firmware C++ / Arduino, PlatformIO, Async MQTT
DevOps Docker support, GitHub Actions, Secure OTA deployment

HydroponicOne System Architecture


🛠 Prerequisites

Ensure you have the following installed before proceeding:

  • Node.js (v20+ recommended)
  • PostgreSQL (v14+)
  • InfluxDB (v2.0+)
  • MQTT Broker (Mosquitto/HiveMQ)
  • ESP32 Development Board
  • PlatformIO IDE

⚡ Quickstart & Installation

1. Clone the repository

git clone https://github.com/40rbidd3n/Hydro0x01.git
cd HydroponicOne

2. Setup Backend Configure the environment and seed the database.

cd backend
npm install
cp .env.example .env
# Edit .env with your DB credentials and set JWT_SECRET using: openssl rand -base64 32
npx prisma db push
npm run dev

JWT_SECRET is required and must contain at least 32 characters. The backend rejects missing, blank, short, or previously published example secrets. Generate a secret once per installation and keep the same value across restarts; changing it invalidates existing tokens.

For Docker deployments, save the generated secret as JWT_SECRET=<your secret> in docker/.env (ignored by Git), then run from the repository root:

docker compose -f docker/docker-compose.yml up -d --build

Compose requires a non-empty JWT_SECRET from docker/.env or your shell.

3. Setup Frontend

cd ../frontend
npm install
cp .env.example .env
npm run dev

4. Build & Flash Firmware Review the Hardware Setup and connect your sensors to the ESP32.

cd ../firmware

# IMPORTANT: Clone the configuration template before compiling
cp include/config.example.h include/config.h
# Edit include/config.h with your network and MQTT details

# Edit platformio.ini to choose your hardware environment (e.g., env:esp32_dht_bmp)
pio run -t upload

📖 Documentation

Explore our comprehensive guides located in the docs/ folder:

# Guide Description
1 System Overview How everything connects
2 Hardware Setup Wiring diagrams and assembly
3 Firmware Guide Configuration and flashing
4 Integration Guide Home Assistant, Telegram & Discord
5 Calibration Guide Sensor tuning procedures
6 Troubleshooting Common issues and fixes
7 API Reference REST API documentation
8 MQTT Guide Topics and payload specifications
9 Security & OTA Firmware signing and RSA keys

🚑 Troubleshooting

  • Database Errors: Ensure you have run npx prisma generate and your credentials in .env are accurate.
  • MQTT Connectivity: Ensure you are using mqtts:// if using port 8883, and check your base topic.
  • Sensor Readings: Refer to Troubleshooting Docs for I2C and ADC calibration solutions.

🚀 Releases & Changelog

All code modifications and versioning are strictly documented. Check the CHANGELOG.md for version histories or the GitHub Releases page to download pre-compiled bins and read full production release notes.


🤝 Contributing & Community

We actively welcome community contributions to improve HydroponicOne! Please see our Contributing Guidelines and our Code of Conduct before submitting pull requests.

🗺️ Future Roadmap

We have an extensive development plan ranging from LoRa Master/Slave setups to AI diagnostics. View the complete Development Roadmap to see where we are heading.

📄 License

This project is licensed under the MIT License. See the LICENSE file for more details.

💬 Support & Contact

If you have a feature request or found a bug, please use the GitHub Issue Tracker.

Built with ❤️ for the future of sustainable farming.

Explore related projects