Quick Start Guide

Get your VIMM framework up and running in under 30 minutes with this comprehensive guide.

Prerequisites

Before starting, ensure you have the following installed:

Required Software

  • Node.js 18+ - Download here
  • npm or yarn package manager
  • Git for cloning repositories
  • FFmpeg for media processing

System Requirements

  • Memory: Minimum 4GB RAM (8GB+ recommended for production)
  • Storage: 10GB+ free space
  • Network: Stable internet connection
  • OS: Linux (Ubuntu 20.04+), macOS, or Windows with WSL2

Install FFmpeg

# Ubuntu/Debian
sudo apt update
sudo apt install ffmpeg

# macOS (with Homebrew)
brew install ffmpeg

# For NVIDIA GPU support (Ubuntu)
sudo apt install nvidia-cuda-toolkit

Step 1: Clone the Repositories

Create a directory for your VIMM deployment and clone all three components:

mkdir vimm-deployment
cd vimm-deployment

# Clone VIMM Core (streaming server)
git clone https://github.com/VIMM-TV/vimm-core.git

# Clone VIMM Frontend (web interface)
git clone https://github.com/VIMM-TV/vimm-frontend.git

# Clone VIMM Chat (chat server)
git clone https://github.com/VIMM-TV/vimm-chat.git

Step 2: Configure Environment Variables

Each component requires environment configuration. Create the necessary `.env` files:

VIMM Core Configuration

cd vimm-core
# Create .env file (no .env.example provided in v1.0.0)

Create a .env file in the vimm-core directory with the following required variables:

# Required Variables
JWT_SECRET=your-strong-secret-key-here
HIVE_POSTING_KEY=your-hive-posting-key

# Optional Variables
SERVER_URL=http://localhost:3000
NODE_ENV=development

🔑 Important: Required Environment Variables

  • JWT_SECRET: Used for signing JWT authentication tokens (7-day expiry). Must be a strong, random string.
  • HIVE_POSTING_KEY: Your Hive posting key for creating stream posts and updates on the blockchain.

Configuration files are located in the config/ directory:

  • config/default.js: App settings (transcoding, thumbnails, watch URL structure)
  • config/hive.js: Hive blockchain settings (tags, beneficiaries)
  • config/config.json: Database configuration (default: SQLite)

VIMM Frontend Configuration

The frontend is a React 19 application that connects to both VIMM Core and VIMM Chat servers. It requires Hive Keychain browser extension for authentication.

cd ../vimm-frontend
cp .env.example .env
# Server Endpoints (adjust to your deployment)
REACT_APP_VIMM_CHAT_SERVER=http://localhost:3001
REACT_APP_VIMM_CORE_SERVER=http://localhost:3000

# Optional: Override default ports
PORT=3002

📦 Hive Keychain Required

Users must install the Hive Keychain browser extension to authenticate and interact with the VIMM platform. This is required for following, chatting, and streaming.

VIMM Chat Configuration

cd ../vimm-chat
cp .env.example .env
# Chat Server Configuration
PORT=3001
CORE_API_URL=http://localhost:3000

# WebSocket Settings
WS_PORT=3001
CORS_ORIGIN=http://localhost:3002

Step 3: Install Dependencies

Install the required dependencies for each component:

# Install VIMM Core dependencies
cd vimm-core
npm install

# Install VIMM Frontend dependencies
cd ../vimm-frontend
npm install

# Install VIMM Chat dependencies
cd ../vimm-chat
npm install

Step 4: Initialize Database

VIMM Core uses Sequelize ORM with SQLite by default. Initialize the database with these commands:

cd vimm-core
npm run init-db

For dashboard analytics features, also create the dashboard tables:

node scripts/create-dashboard-tables.js

📊 Dashboard Analytics

The dashboard tables enable stream statistics, follower growth tracking, and ban management. For production, set up a daily cron job: node scripts/snapshot-follower-growth.js

Step 5: Start the Services

Start each service in separate terminal windows. The order matters:

Terminal 1: Start VIMM Core

cd vimm-core
npm start

Terminal 2: Start VIMM Chat

cd vimm-chat
npm start

Terminal 3: Start VIMM Frontend

cd vimm-frontend
npm start

Step 6: Verify Installation

Check that all services are running correctly:

Test the VIMM Core API with these endpoints:

# Test authentication challenge endpoint
curl http://localhost:3000/api/auth/challenge

# List active streams
curl http://localhost:3000/api/streams

# Check database connection
# The server should start without errors and log "Database synced"

🎉 Success!

Your VIMM framework is now running! Access the frontend at http://localhost:3002 to explore streams, authenticate with Hive Keychain, and configure your channel for streaming.

Next Steps

  • Generate a streaming key by authenticating with Hive Keychain in the frontend
  • Configure your streaming software (OBS, etc.) to stream to rtmp://localhost:1935/live/YOUR_STREAM_KEY
  • Review Configuration Reference for advanced settings (transcoding, thumbnails, HLS encryption)
  • Set up SSL certificates for production deployment
  • Configure Hive beneficiaries in config/hive.js
  • Explore the API Reference to build custom integrations

⚠️ Production Considerations

  • • Use PostgreSQL or MySQL instead of SQLite for better performance
  • • Enable HTTPS with proper SSL certificates
  • • Set strong JWT_SECRET and keep it secure
  • • Configure firewall rules for ports 3000 (API), 1935 (RTMP)
  • • Set up daily cron for follower growth snapshots

💡 Development Mode

For development, you can use npm run dev instead of npm start for hot reloading.