A decentralized music platform for track uploading and tokenization, built with Next.js and Express.js. Currently in development with basic functionality implemented.
π§ Track Upload: Artists can upload music files with metadata π Wallet Connection: Phantom wallet integration with Solana π³ Auto SOL Airdrop: New wallets receive 100 SOL for testing π Track Management: Basic CRUD operations for music tracks π¨ Modern UI: Next.js 15 with shadcn/ui components π³ Docker Setup: Containerized development environment ποΈ Database: SQLite with Prisma ORM for data storage
- Docker Desktop installed and running
- Git for cloning the repository
- Phantom Wallet browser extension for wallet connection
# 1. Clone the repository
git clone <your-repo-url>
cd dybys
# 2. Run the setup script
./setup.shThe setup script will configure environment files and start all services via Docker.
# Start all services
docker-compose up -d --buildAccess the application:
- β Frontend at http://localhost:3000
- β Backend API at http://localhost:5000
- β Solana Validator at http://localhost:8899
- β PostgreSQL Database at localhost:5432
- Connect Phantom wallet
- Automatic 100 SOL airdrop for new wallets (if balance < 50 SOL)
- Basic balance checking and display
- Upload audio files (up to 50MB)
- Add track metadata (title, description, genre)
- View uploaded tracks in artist dashboard
- Basic track listing and browsing
- User profiles linked to wallet addresses
- Track metadata and file storage
- SQLite database with Prisma ORM
- No actual tokenization: SPL token creation not implemented
- No marketplace: Investment features are UI-only
- No smart contracts: Blockchain integration is minimal
- Local development only: No production deployment setup
- Next.js 15 with App Router and TypeScript
- Tailwind CSS + shadcn/ui for modern components
- Solana Wallet Adapter for wallet connection
- Zustand for state management
- Sonner for toast notifications
- Node.js + Express.js with TypeScript
- Prisma ORM with SQLite database
- JWT Authentication (basic implementation)
- Multer for file upload handling
- Solana Wallet Integration for wallet connection
- Local Solana test validator via Docker
- Basic balance checking and airdrop functionality
- Docker Compose for containerization
- PostgreSQL (configured but SQLite used)
- Volume persistence for uploads and data
dybys/
βββ π³ Docker Configuration
β βββ docker-compose.yml # Main docker configuration
β βββ docker-compose.vps.yml # VPS deployment config
β βββ setup.sh # Setup script
β βββ Makefile # Make commands
β
βββ π¨ Frontend (Next.js)
β βββ app/ # App router pages
β β βββ page.tsx # Home page
β β βββ marketplace/ # Marketplace page
β β βββ artist/ # Artist pages
β β βββ profile/ # Profile page
β βββ components/
β β βββ ui/ # shadcn/ui components
β β βββ WalletConnect.tsx # Wallet connection
β β βββ Navigation.tsx # Main navigation
β β βββ TrackCard.tsx # Track display
β βββ lib/
β β βββ solana.ts # Solana utilities
β β βββ store.ts # Zustand store
β β βββ utils.ts # Helper functions
β βββ Dockerfile # Frontend container
β
βββ π οΈ Backend (Express.js)
β βββ src/
β β βββ routes/ # API endpoints
β β β βββ auth.ts # Authentication
β β β βββ tracks.ts # Track management
β β β βββ investments.ts # Investment (placeholder)
β β βββ index.ts # Main server
β βββ prisma/
β β βββ schema.prisma # Database schema
β βββ Dockerfile # Backend container
β
βββ π Documentation
β βββ README.md # This file
β βββ VPS_DEPLOYMENT.md # VPS deployment guide
β
βββ π§ͺ Development
βββ test-ledger/ # Local Solana validator data
# Start all services
docker-compose up -d --build
# View logs
docker-compose logs -f
# Stop all services
docker-compose down
# Check service status
docker-compose ps# Frontend development
cd frontend && npm run dev
# Backend development
cd backend && npm run dev
# Database operations
cd backend && npx prisma migrate dev
cd backend && npx prisma generate-
Wallet Connection
- Visit http://localhost:3000
- Click "Connect Wallet"
- Approve connection in Phantom wallet
- Verify 100 SOL airdrop notification
-
Track Upload (Artists)
- Navigate to Artist β Upload page
- Select audio file and fill metadata
- Click "Upload Track"
- Verify track appears in dashboard
-
Browse Tracks
- Visit marketplace page
- View uploaded tracks
- Note: Investment functionality is UI-only
GET /health
# Response: {"status":"OK","timestamp":"2025-01-15T..."}GET /api/tracks # List all tracks
GET /api/tracks/:id # Get specific track
POST /api/tracks/upload # Upload new track (requires auth)
POST /api/tracks/:id/tokenize # Prepare track for tokenizationPOST /api/auth/register # Register user
POST /api/auth/login # Login user
GET /api/auth/profile # Get user profile- Basic track upload and storage
- Wallet connection with Phantom
- Auto SOL airdrop for testing
- Docker containerization
- Database schema and models
- Smart contract integration
- Actual SPL token creation
- Investment marketplace
- User authentication system
- Real tokenization with smart contracts
- Marketplace with actual trading
- Royalty distribution system
- Production deployment
MIT License - see LICENSE file for details.
π΅ dybys - Music Tokenization Platform
A work-in-progress platform for decentralized music tokenization