# 
        Production Server
    
The production command runs QuickDapp in production mode using the built application files. This command provides options for running just the server, just the client preview, or both together.
        # 
        Overview
    
bun run prod [subcommand]The production command requires that you've already built the application with bun run build. It runs the optimized production code without file watching or development features.
        # 
        Subcommands
    
        # 
        bun run prod (Default)
    
Runs both the production server and client preview:
bun run prodThis starts:
- Production server on http://localhost:3000 (serves API and static files)
- Client preview server on http://localhost:4173 (serves frontend independently)
        # 
        bun run prod server
    
Runs only the production server:
bun run prod serverThis command:
- Runs the built server from dist/server/index.js
- Serves both API endpoints and static files on port 3000
- Uses production environment variables
- No file watching or hot reload
        # 
        bun run prod client
    
Runs only the client preview server:
bun run prod clientThis command:
- Serves the built frontend from dist/client/
- Runs on http://localhost:4173
- Useful for testing frontend builds independently
- Uses Vite's preview server for optimal static file serving
        # 
        Prerequisites
    
Before running production mode, you must build the application:
# Build for production (creates binaries by default)
bun run build
# Then run in production mode
bun run prod
        # 
        Environment Configuration
    
Production mode uses the production environment:
# .env.production
NODE_ENV=production
DATABASE_URL=postgresql://user:password@prod-host:5432/quickdapp
SESSION_ENCRYPTION_KEY=your_32_character_production_key
SERVER_WALLET_PRIVATE_KEY=0xYourProductionWalletKey
CHAIN=sepolia
CHAIN_RPC_ENDPOINT=https://sepolia.infura.io/v3/your-api-key
FACTORY_CONTRACT_ADDRESS=0xYourProductionContractAddress
        # 
        Use Cases
    
        # 
        Local Production Testing
    
Test your production build locally before deployment:
# 1. Build the application
bun run build
# 2. Test production server
bun run prod server
# 3. In another terminal, test client preview
bun run prod client
        # 
        Development Preview
    
Preview how your application will work in production:
# Run both server and client
bun run prod
# Access:
# - Full application: http://localhost:3000
# - Client preview: http://localhost:4173
        # 
        Deployment Testing
    
Verify deployment readiness:
# Test with production environment
NODE_ENV=production bun run prod
        # 
        Comparison with Binary Deployment
    
The prod command differs from binary deployment:
Production Command (bun run prod):
- Runs built JavaScript files
- Requires Bun runtime on the server
- Separate server and client processes
- Good for development/staging environments
Binary Deployment:
- Self-contained executable
- No runtime dependencies
- Single process with embedded assets
- Ideal for production deployment
# Production command
bun run prod
# Binary deployment (after build)
./dist/binaries/quickdapp-linux-x64
        # 
        Monitoring and Logs
    
Production mode provides structured logging:
# Run with verbose logging
NODE_ENV=production LOG_LEVEL=debug bun run prod
# Monitor both processes
bun run prod  # Server on :3000, client preview on :4173
        # 
        Troubleshooting
    
        # 
        Build Not Found
    
❌ Production server not found. Run 'bun run build' first.Solution: Build the application first:
bun run build
bun run prod
        # 
        Port Conflicts
    
If ports are in use:
# Check what's using the ports
lsof -i :3000
lsof -i :4173
# Kill existing processes
pkill -f "dist/server/index.js"
        # 
        Environment Issues
    
# Verify production environment
NODE_ENV=production bun run prod server
# Check environment variables
env | grep NODE_ENVThe production command provides a convenient way to run and test your built QuickDapp application in production mode while maintaining the flexibility to run components separately.
