DEV Community

Daniel Ioni
Daniel Ioni

Posted on

🐳 MyZubster Ecosystem: Docker Integration, Monero Mainnet, and NFT Expansion

🐳 MyZubster Ecosystem: Docker Integration, Monero Mainnet, and NFT Expansion

A comprehensive update on infrastructure, security, and the path to production.
πŸš€ What's New?

The MyZubster ecosystem has undergone a major infrastructure overhaul in the last 48 hours. We've moved from a collection of scripts to a fully containerized, production-ready architecture. Here's what changed.
πŸ“¦ 1. Docker Integration: The Big Shift

We've fully containerized the entire stack using Docker and Docker Compose. This means:

One-command deployment: docker-compose up -d

Isolated services: MongoDB, Gateway, and Monero each run in their own container

Zero-downtime updates: Restart the gateway without affecting the database

Portable infrastructure: The same setup runs on any cloud provider (Aruba, AWS, DigitalOcean)
Enter fullscreen mode Exit fullscreen mode

New Files Added
File Purpose
Dockerfile Multi-stage Node.js 20 build with non-root user for security
docker-compose.yml Orchestrates MongoDB, Gateway, and Monero services
.dockerignore Excludes sensitive files from the Docker image
.env.example Template for all environment variables
Docker Compose Architecture
yaml

services:
mongodb: # MongoDB 7 (port 27018 to avoid conflicts)
gateway: # MyZubster Gateway (port 3000)
monero: # Monero Wallet RPC (optional, uses public node by default)

πŸ” 2. Monero: Production-Ready on Mainnet

We've switched from testnet to Monero mainnet for real transactions. The gateway now connects to public nodes by default (node.moneroworld.com:18081) for immediate functionality, with the option to run a local node for maximum privacy.
Environment Variables for Monero
env

MONERO_NETWORK=mainnet
MONERO_RPC_URL=http://node.moneroworld.com:18081
MONERO_WALLET_ADDRESS=your_wallet_address
MONERO_WALLET_PASSWORD=your_wallet_password
MONERO_MIN_CONFIRMATIONS=10

Privacy Note: All Monero transactions remain private and untraceable by design. The gateway never stores private keysβ€”only the public wallet address.
🌿 3. NFT Expansion: From Plants to Pets

We've extended the Tari NFT template to support real-world asset tokenization:
Current NFT Templates
Template Status Description
Plant NFT βœ… Compiled to WASM Represents a physical plant with metadata (species, age, price)
Pet NFT (In Progress) ⏳ Planning Will support microchip integration, health records, and ownership
How It Works

Mint: Create an NFT representing a real-world asset (plant, pet, etc.)

Verify: Use oracles to confirm physical existence

Trade: Buy/sell assets using Monero payments

Track: Immutable blockchain record of ownership and history
Enter fullscreen mode Exit fullscreen mode

rust

// Example: Plant NFT metadata
pub struct PlantMetadata {
pub name: String,
pub species: String,
pub age_years: u32,
pub price_in_xmr: f64,
pub image_hash: String,
}

πŸ—‘οΈ 4. Security & Disk Space Management

We've performed a major cleanup to ensure the VPS runs smoothly:
Action Space Freed Impact
Removed old Monero testnet data 6.5 GB Freed space for Docker images
Removed Monero stagenet data 14 GB Eliminated unused blockchain data
Cleared temporary Git pack files 15 GB Optimized repository size
Removed Ollama models (optional) 1.8 GB Reduced disk usage
Disabled swapfile 4 GB Freed additional space

Result: Disk usage dropped from 100% to 33% (51 GB free).
πŸ› οΈ 5. New API Endpoint: /api/users

We've added a basic user management endpoint to the gateway:
javascript

// GET /api/users - List all users (protected)
router.get('/', (req, res) => {
res.json({ users: [] });
});

// POST /api/users - Create a new user
router.post('/', (req, res) => {
const { username, email } = req.body;
// Validate and create user
res.status(201).json({ id: Date.now(), username, email });
});

πŸ”— 6. Repository Structure Update

All repositories are now aligned and up-to-date:
Repository Branch Status
MyZubsterGateway dev β†’ main βœ… Dockerized, production-ready
MyZubster-Marketplace main πŸ”„ Next in line for Dockerization
MyZubster-App main πŸ”„ Mobile app with Orbot support
tari-nft-template main βœ… Compiled WASM for Tari
myzubster main πŸ“¦ Submodules updated
πŸ“Š 7. Current Infrastructure Stack
Layer Technology Version
Container Runtime Docker 29.6.2
Orchestration Docker Compose 1.29.2
Database MongoDB 7-jammy
Runtime Node.js 20-slim
Blockchain Monero (mainnet) Latest
NFT Sidechain Tari WASM compiled
OS Ubuntu 24.04.4 LTS
πŸ§ͺ 8. Testing & Verification
Health Check
bash

curl http://localhost:3000/api/health

Response: {"status":"ok","timestamp":"2026-07-25T...Z"}

Users Endpoint
bash

curl http://localhost:3000/api/users

Response: {"users":[]}

Container Status
bash

docker-compose ps

Gateway: Up, MongoDB: Healthy

πŸ“Œ 9. Next Steps on the Roadmap
Priority Task Repository
πŸ”΄ High Connect Marketplace to Gateway MyZubster-Marketplace
πŸ”΄ High Deploy Pet NFT Template on Tari tari-nft-template
🟑 Medium Update Mobile App API URL MyZubster-App
🟑 Medium Enable Security Bot with DeepSeek AI MyZubsterGateway/security
🟒 Low Set up Monitoring (Prometheus/Grafana) Infrastructure
🟒 Low Write Comprehensive Documentation myzubster-docs
πŸ”— 10. Links & Resources
Resource Link
MyZubsterGateway GitHub
MyZubster-Marketplace GitHub
Tari NFT Template GitHub
MyZubster Ecosystem GitHub
πŸ™Œ 11. How to Contribute

We welcome contributions! Here's how:

Fork the repository

Create a feature branch (feat/amazing-feature)

Commit your changes

Open a Pull Request to the dev branch
Enter fullscreen mode Exit fullscreen mode

πŸ’¬ 12. Connect with Us
Platform Handle
DEV.to (Blog) @danielioni
GitHub DanielIoni-creator
X (Twitter) @myzubster
TikTok @h4x0r_23
Linked

Top comments (0)