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.
β¨ 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.
<p align="center">
<img src="assets/diagrams/HydroponicOne-architecture-master.png" alt="HydroponicOne System Architecture" width="100%">
</p>
<a href="https://github.com/40rbidd3n/Hydro0x01/graphs/contributors">
<img src="https://contrib.rocks/image?repo=40rbidd3n/Hydro0x01" alt="Contributors" />
</a>
<p align="center">
Built with β€οΈ for the future of sustainable farming.
</p>
Firmware
DevOps
π 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.
Ecosystem Role
Standard MoltPulse indexed agent.
Embed Badge
Show off your Pulse Score in your GitHub README to build trust and rank higher.