🌱 MyZubster: An Open-Source Ecosystem for Smart Agriculture, IoT, and Web3
Live Demo: https://myzubster.com
After weeks of development, I'm excited to announce the launch of MyZubster — an open-source ecosystem that combines smart agriculture, IoT, and Web3 technologies.
🎯 What is MyZubster?
MyZubster is a decentralized platform that enables:
- 🌿 Urban Gardens Management — Track and manage urban gardens
- 🌱 Plant & Seed Exchange — Trade plants and seeds with the community
- 🐾 Animal Tracking — Monitor pets and livestock with GPS and NFC
- ₿ Monero Payments — Secure and private payments with XMR
- 🏡 Real Estate Tokenization — Tokenize land and property assets
Key Principles:
- Privacy-first — Monero integration for private transactions
- Decentralized — No central authority, community-driven
- Open Source — Transparent and freely available
- Eco-friendly — Promoting sustainable agriculture
🏗️ Architecture
The ecosystem consists of four main components:
┌─────────────────────────────────────────────────────────────┐
│ Frontend (React) │
│ Port 8082 │
├─────────────────────────────────────────────────────────────┤
│ Nginx Reverse Proxy │
│ Port 443 │
├─────────────────────────────────────────────────────────────┤
│ Gateway (Node.js) │
│ Port 10001 │
├─────────────────────────────────────────────────────────────┤
│ Backend (Node.js) │
│ Port 3010 │
├─────────────────────────────────────────────────────────────┤
│ MongoDB Database │
│ Port 27018 │
└─────────────────────────────────────────────────────────────┘
text
🐳 Docker Containers
| Container | Image | Port |
|---|---|---|
| myzubster-gateway | myzubster-gateway:latest | 10001 |
| myzubster-backend | myzubster-backend:latest | 3010 |
| myzubster-frontend | myzubster-frontend:latest | 8082 |
| myzubster-mongodb | mongo:6 | 27018 |
₿ Monero Integration
MyZubster fully supports Monero (XMR) payments through a wallet RPC.
Payment Flow
- Create Order — User initiates a payment
- Generate Subaddress — Gateway generates a unique address
- Monitor — Gateway checks the balance
- Confirm — When payment is received, status is updated
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/payments/create-order |
POST | Create payment order |
/api/payments/status/:orderId |
GET | Check payment status |
/api/monero/main-balance |
GET | Wallet balance |
/api/monero/generate-address |
POST | Generate subaddress |
/api/monero/create-multisig |
POST | Create multisig |
Example: Create a Payment
bash
curl -X POST https://myzubster.com/api/payments/create-order \
-H "Content-Type: application/json" \
-d '{"orderId": "ord_12345", "amount": 0.05, "description": "Purchase"}'
Response:
json
{
"success": true,
"orderId": "ord_12345",
"address": "4A2B...unique...address",
"amount": 0.05,
"status": "pending"
}
🛠️ Tech Stack
Component Technology Version
Frontend React + Vite + Tailwind 18.x
Gateway Node.js + Express 20.x
Backend Node.js + Mongoose 20.x
Database MongoDB 6.x
Container Docker Latest
Reverse Proxy Nginx Latest
SSL Let's Encrypt Latest
Process Manager PM2 Latest
Monero monero-wallet-rpc 0.18.x
🚀 Quick Start
Prerequisites
VPS with Ubuntu 24.04
Docker and Docker Compose
Nginx
PM2
Installation
bash
# 1. Clone the repository
git clone https://github.com/DanielIoni-creator/myzubster.git
cd myzubster
# 2. Start all services
docker-compose up -d
# 3. Run PM2 for process management
pm2 start ecosystem.config.js
pm2 save
Manual Setup
bash
# MongoDB
docker run -d --name myzubster-mongodb -p 27018:27017 mongo:6
# Backend
docker run -d --name myzubster-backend -p 3010:3009 myzubster-backend:latest
# Gateway
docker run -d --name myzubster-gateway -p 10001:10000 myzubster-gateway:latest
# Frontend
docker run -d --name myzubster-frontend -p 8082:80 myzubster-frontend:latest
📚 Documentation
Full documentation is available on the GitHub Wiki:
Home
Architecture
Gateway
Monero Integration
Frontend
Deployment Guide
API Documentation
Contributing Guide
FAQ
🤝 Contributing
We welcome contributions from the community!
Good First Issues
Check out our Good First Issues to get started.
How to Contribute
Fork the repository
Clone your fork
Create a feature branch
Commit your changes
Push to your fork
Open a Pull Request
bash
git clone https://github.com/your-username/myzubster.git
cd myzubster
git checkout -b feature/your-feature
# Make changes
git commit -m "feat: add your feature"
git push origin feature/your-feature
🔗 Links
Live Demo
GitHub Repository
Wiki
Gateway Repository
Frontend Repository
Issues
DEV.to Blog
📄 License
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
📧 Contact
Author: Daniel Ioni
GitHub: DanielIoni-creator
Twitter/X: @MyZubster
Telegram: @MyZubster
⭐ If you like this project, please give it a ⭐ on GitHub!
Built with ❤️ by Daniel Ioni and the MyZubster Community
Top comments (0)