Self-Hosted Deployment
Prerequisites
Before deploying VMTP on your private infrastructure, ensure your environment meets the following requirements:
- Docker & Docker Compose: Version 20.10+ recommended.
- System Resources:
- CPU: 2+ Cores (4+ recommended for video processing).
- RAM: 8GB minimum (16GB recommended for handling multi-modal embeddings).
- Storage: 20GB+ available space (dependent on the volume of processed data).
- API Access: Valid API keys for the LLM providers you intend to use (e.g., OpenAI, Anthropic, or local endpoints like Ollama).
Environment Configuration
VMTP uses environment variables to manage connections to vector databases, LLM providers, and transcription services. Create a .env file in your root directory based on the following template:
# Core Configuration
PORT=3000
NODE_ENV=production
# Database & Vector Store
DATABASE_URL=postgresql://user:password@localhost:5432/vmtp
VECTOR_STORE_TYPE=pinecone # options: pinecone, weaviate, chroma
VECTOR_STORE_API_KEY=your_api_key
# Multi-modal Provider Keys
OPENAI_API_KEY=sk-...
REPLICATE_API_TOKEN=r8_... # Used for specific image/video processing models
# Video & Audio Processing
TRANSCRIBE_API_KEY=your_transcribe_service_key
TEMP_STORAGE_PATH=./uploads
Deployment via Docker (Recommended)
The most efficient way to run VMTP is using Docker. This ensures all dependencies for multi-modal processing (ffmpeg, computer vision libraries, etc.) are correctly configured.
1. Clone the Repository
git clone https://github.com/UditAkhourii/VMTP.git
cd VMTP
2. Build and Launch
Use Docker Compose to build the image and start the required services.
docker-compose up -d --build
3. Verify Deployment
Check the logs to ensure the server and data connectors are initialized:
docker logs -f vmtp-app
The service should be accessible at http://localhost:3000 by default.
Manual Installation
If you prefer not to use Docker, follow these steps to set up the environment manually.
1. Install Dependencies
Ensure you have Node.js 18+ and FFmpeg installed on your system.
# Install FFmpeg for video/audio processing
sudo apt update && sudo apt install ffmpeg
# Install project dependencies
npm install
2. Run Database Migrations
Initialize your local database schema:
npm run db:migrate
3. Start the Application
npm run build
npm run start
Configuring Multi-modal Connectors
Once deployed, you can verify the connectivity of specific data types via the internal health check endpoints:
| Connector | Endpoint | Description |
| :--- | :--- | :--- |
| Vision | /api/v1/health/vision | Validates image processing capabilities. |
| Audio | /api/v1/health/audio | Tests transcription API integration. |
| Video | /api/v1/health/video | Checks local/remote video processing status. |
Scaling Considerations
- Concurrent Video Processing: Video transcription and multi-dimensional analysis are CPU-intensive. If deploying at scale, consider offloading the
Transcribe APIto a dedicated worker node. - Storage: Ensure the
TEMP_STORAGE_PATHis mapped to a persistent volume with sufficient IOPS if you are processing large video files from Vimeo or YouTube.