DEV Community

Daniel Ioni
Daniel Ioni

Posted on

🚀 MyZubster is Live: From Development to Production on Aruba Cloud VPS

🚀 MyZubster is Live: From Development to Production on Aruba Cloud VPS

The journey from code to a fully functional decentralized marketplace
📌 What is MyZubster?

MyZubster is an open-source, decentralized freelance marketplace powered by Monero (XMR). It allows:

✅ Buyers to find and purchase services

✅ Sellers to offer their skills and earn Monero

✅ Privacy-first interactions (PGP + Tor – coming soon)

✅ Secure escrow for transactions
Enter fullscreen mode Exit fullscreen mode

It's built with privacy, freedom, and decentralization at its core.
🧩 The Architecture

MyZubster is built as a modular ecosystem with three core components:
Component Description Status
Gateway Monero payment engine ✅ Live
Marketplace Backend API + UI ✅ Live
Mobile App React Native (coming soon) 🚧 In Development

Tech Stack:

Backend: Node.js + Express

Database: MongoDB (Gateway) + SQLite (Marketplace)

Authentication: JWT

AI: Groq API for skill generation

Deployment: Aruba Cloud VPS (Ubuntu 24.04)

Reverse Proxy: Nginx + SSL (Let's Encrypt)
Enter fullscreen mode Exit fullscreen mode

🚀 The Journey: From Code to Production
1️⃣ Development Phase

We started with a modular monorepo approach, keeping Gateway, Marketplace, and App separate but integrated.

Key features built:

✅ JWT authentication & user management

✅ CRUD for Skills

✅ Order system with status tracking

✅ Monero integration (mock mode for testing)

✅ Multi-signature escrow system

✅ PGP support for order integrity

✅ Tor/Orbot integration for anonymity (in progress)

✅ End-to-end encrypted chat (in progress)
Enter fullscreen mode Exit fullscreen mode

Repository structure:
text

myzubster/
├── gateway/ # Monero payment engine
├── marketplace/ # Backend API + UI
└── app/ # React Native mobile (coming soon)

2️⃣ AI Assistant Integration

We added an AI-powered skill generator using Groq API:
javascript

// services/aiService.js
const Groq = require('groq-sdk');
const groq = new Groq({ apiKey: process.env.GROQ_API_KEY });

const generateSkillDescription = async (title, category) => {
const prompt = Generate a professional service description...;
const response = await groq.chat.completions.create({
messages: [...],
model: 'openai/gpt-oss-120b',
});
return JSON.parse(response.choices[0].message.content);
};

This allows sellers to generate professional descriptions for their skills automatically.
3️⃣ Deploying on Aruba Cloud VPS

We chose Aruba Cloud for hosting because of:

✅ Italian data centers (GDPR compliant)

✅ Good value for money (4 vCPU, 8GB RAM, 80GB SSD)

✅ Reliable infrastructure
Enter fullscreen mode Exit fullscreen mode

Deployment steps:
bash

1. Connect to VPS

ssh root@188.213.161.186

2. Install dependencies

apt update && apt upgrade -y
apt install nodejs npm git docker.io -y

3. Clone repositories

git clone https://github.com/DanielIoni-creator/MyZubsterGateway.git
git clone https://github.com/DanielIoni-creator/MyZubster-Marketplace.git

4. Install and run

cd MyZubsterGateway && npm install && npm run start &
cd MyZubster-Marketplace && npm install && npx nodemon server.js &

4️⃣ Domain & SSL Configuration

We configured the domain myzubster.com with SSL:
nginx

/etc/nginx/sites-available/myzubster

server {
listen 80;
server_name myzubster.com www.myzubster.com;

location / {
    proxy_pass http://localhost:4000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
Enter fullscreen mode Exit fullscreen mode

}

Then installed SSL with Let's Encrypt:
bash

certbot --nginx -d myzubster.com -d www.myzubster.com

Now the site is accessible via HTTPS!
5️⃣ Control API for Remote Management

We built a Control API to manage services remotely:
javascript

// control-api.js
const express = require('express');
const { exec } = require('child_process');
const app = express();
const PORT = 5000;
const SECRET = 'myzubster_control_2026';

app.get('/api/services', async (req, res) => {
// Check status of all services
});

app.post('/api/restart/:service', async (req, res) => {
// Restart Marketplace or Gateway
});

app.get('/api/logs/:service', async (req, res) => {
// Get logs of services
});

This allows me to:

🔍 Check service status

🔄 Restart services remotely

📜 View logs

📥 Pull updates from GitHub
Enter fullscreen mode Exit fullscreen mode

🌐 The Result

MyZubster is now live and accessible to everyone:
text

https://myzubster.com

What works:

✅ User registration and login

✅ Skill creation and browsing

✅ Order creation and tracking

✅ Payment simulation

✅ AI-powered skill descriptions

✅ HTTPS with valid SSL certificate

✅ Open-source and publicly available on GitHub
Enter fullscreen mode Exit fullscreen mode

📸 Screenshots

(You can add screenshots of your dashboard or the AI assistant here)
🚀 What's Next?
Feature Status
NFT Integration on Tari 📋 Planned
React Native App 📋 Planned
Multi-Signature Escrow 📋 Planned
PGP & Tor Integration 📋 Planned
AI Assistant improvements 📋 Planned
🤝 Contribute

Want to help build MyZubster?

GitHub: github.com/DanielIoni-creator

DEV.to: dev.to/danielioni
Enter fullscreen mode Exit fullscreen mode

💬 Let's Connect

📖 Blog: DEV.to - Daniel Ioni
🐦 X (Twitter): @myzubster
💼 LinkedIn: Daniel Ioni
🐙 GitHub: DanielIoni-creator

Try it now: https://myzubster.com

Built with ❤️ for privacy, freedom, and decentralization.

Happy coding! 🚀
✅ Istruzioni per la pubblicazione

Copia tutto il contenuto sopra

Vai su dev.to/new
Enter fullscreen mode Exit fullscreen mode

Top comments (0)