This guide will walk you through setting up VideoGen Messenger on your Windows machine.
- ✅ Node.js 18+ - Download (LTS version recommended)
- ✅ Docker Desktop - Download (includes Docker Compose)
- ✅ Git - Download
- 📝 Code Editor - VS Code (recommended)
- At least ONE AI provider key (Google Veo, Runway, or Minimax)
- AWS Account with S3 access
- (Optional) Azure Content Safety key
- (Optional) OAuth keys for social login
Option 1: Double-click the setup script
setup.bat
Option 2: Run from Command Prompt
cd C:\Users\Tanner\VideoGenMessenger
setup.batThis will:
- ✅ Check prerequisites
- ✅ Install dependencies
- ✅ Create .env file
- ✅ Start Docker services
- ✅ Run database migrations
cd backend
node scripts/setup.jsThis interactive script will guide you through the entire setup.
If you prefer to set things up manually:
cd backend
npm installcd backend
copy .env.example .envThen edit .env and add your API keys (see API_KEYS_GUIDE.md)
# From root directory
docker-compose up -dThis starts:
- PostgreSQL (port 5432)
- Redis (port 6379)
- Elasticsearch (port 9200)
Verify services are running:
docker-compose psAll services should show "Up" status.
cd backend
npm run migrateOptional - Seed with sample data:
npm run db:seednpm run devYou should see:
🚀 VideoGen Messenger API server running on port 3000
📝 Environment: development
🔗 Health check: http://localhost:3000/health
cd backend
node workers/startWorkers.jsWindows (PowerShell):
Invoke-WebRequest http://localhost:3000/healthWindows (curl if installed):
curl http://localhost:3000/healthExpected Response:
{
"status": "healthy",
"timestamp": "2025-01-15T10:00:00.000Z",
"uptime": 15.234,
"environment": "development"
}docker-compose psAll should be "Up" and healthy.
docker exec -it videogen-postgres psql -U postgres -d videogen_messengerIn psql:
\dt -- List tables
SELECT COUNT(*) FROM users;
\q -- Quitdocker exec -it videogen-redis redis-cliIn Redis CLI:
PING # Should return PONG
KEYS *
EXITPowerShell:
Invoke-WebRequest http://localhost:9200/_cluster/healthBrowser: Open http://localhost:9200
Edit backend\.env and configure:
# ✅ Database (pre-configured if using Docker)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/videogen_messenger
# ✅ Redis (pre-configured if using Docker)
REDIS_URL=redis://localhost:6379
# ✅ Elasticsearch (pre-configured if using Docker)
ELASTICSEARCH_NODE=http://localhost:9200
# ⚠️ ADD YOUR API KEYS HERE
# At least ONE AI provider (required)
GOOGLE_VEO_API_KEY=your_key_here
GOOGLE_VEO_PROJECT_ID=your_project_id
# OR
RUNWAY_API_KEY=your_key_here
# OR
MINIMAX_API_KEY=your_key_here
MINIMAX_GROUP_ID=your_group_id
# AWS S3 Storage (required)
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_S3_BUCKET=your-bucket-name
# JWT Secrets (auto-generated by setup script)
JWT_SECRET=<generated>
JWT_REFRESH_SECRET=<generated>
API_KEY_SALT=<generated>
# Optional but recommended
AZURE_CONTENT_SAFETY_KEY=your_azure_key
AZURE_CONTENT_SAFETY_ENDPOINT=https://your-resource.cognitiveservices.azure.com/curl -X POST http://localhost:3000/api/v1/auth/register \
-H "Content-Type: application/json" \
-d "{\"email\":\"test@example.com\",\"password\":\"Test123!@#\",\"name\":\"Test User\"}"Save the API key from the response.
curl -X POST http://localhost:3000/api/v1/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "{\"prompt\":\"A beautiful sunset over mountains\",\"quality\":\"hd\",\"duration\":5}"curl http://localhost:3000/api/v1/generate/status/JOB_IDTo start with admin UIs:
docker-compose --profile optional up -dThis adds:
- Kibana (Elasticsearch UI): http://localhost:5601
- pgAdmin (PostgreSQL UI): http://localhost:5050
- Email: admin@videogen.local
- Password: admin
- Redis Commander (Redis UI): http://localhost:8081
Solution:
- Make sure Docker Desktop is running
- Check if ports are already in use:
netstat -an | findstr "5432 6379 9200"
- Stop conflicting services or change ports in
docker-compose.yml
Solution:
- Delete
node_modulesandpackage-lock.json - Run
npm cache clean --force - Run
npm installagain
Solution:
- Check PostgreSQL is running:
docker ps | findstr postgres - Verify DATABASE_URL in .env is correct
- Check PostgreSQL logs:
docker logs videogen-postgres
Solution:
- Make sure you ran
npm installin thebackenddirectory - Check Node.js version:
node --version(should be 18+) - Try:
npm install --legacy-peer-deps
Solution:
# Find process using port 3000
netstat -ano | findstr :3000
# Kill the process (replace PID)
taskkill /PID <PID> /F
# Or change PORT in .env
PORT=3001Solution:
- Increase Docker memory to at least 4GB (Docker Desktop settings)
- Add to
docker-compose.ymlunder elasticsearch:environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
VideoGenMessenger/
├── backend/ # Backend API
│ ├── api/ # Routes & controllers
│ ├── services/ # Business logic
│ ├── models/ # Database models
│ ├── workers/ # Background workers
│ ├── scripts/ # Setup & utility scripts
│ ├── .env # YOUR CONFIG (create this)
│ └── package.json
├── ios/ # iOS iMessage extension
├── docs/ # Documentation
├── docker-compose.yml # Infrastructure config
├── setup.bat # Windows setup script
├── QUICK_START.md # Quick start guide
├── API_KEYS_GUIDE.md # How to get API keys
└── AGENT_SWARM_SUMMARY.md # Complete implementation summary
-
Read the documentation:
QUICK_START.md- Quick referencedocs/API.md- API documentationdocs/ARCHITECTURE.md- System design
-
Test the API:
- Generate a video
- Search for videos
- Test authentication
-
Set up iOS app (requires Mac):
- See
ios/README.md - Transfer files to Mac
- Build in Xcode
- See
-
Deploy to production:
- See
docs/DEPLOYMENT.md - Set up AWS infrastructure
- Configure monitoring
- See
QUICK_START.md- Quick referenceAPI_KEYS_GUIDE.md- API key acquisitiondocs/TROUBLESHOOTING.md- Common problemsAGENT_SWARM_SUMMARY.md- Implementation details
# Server logs
cd backend
type logs\combined.log
# Error logs
type logs\error.log
# Docker logs
docker logs videogen-postgres
docker logs videogen-redis
docker logs videogen-elasticsearch- GitHub Issues
- Stack Overflow (tag: videogen-messenger)
- Node.js 18+ installed
- Docker Desktop installed and running
- Dependencies installed (
npm install) -
.envfile created and configured - At least one AI provider API key added
- AWS credentials configured
- Docker services running (
docker-compose ps) - Database migrations completed
- Server starts without errors
- Health endpoint returns 200 OK
- Workers start successfully
- Test video generation works
🎉 Ready to build! Start coding with:
cd backend
npm run devCheck out the API docs: docs/API.md