Go 1.21+
Install Go or run brew install go
Get up and running with Mend Media Processing Engine in 5 minutes!
Before you begin, make sure you have the following installed:
Go 1.21+
Install Go or run brew install go
Redis
Install Redis for job queuing
FFmpeg
Install FFmpeg for media processing
S3 Storage
AWS S3 or compatible service (MinIO, R2)
Install Go (if not already installed)
Follow the instructions on the Go website to install Go.
go version # Verify installationInstall Redis or configure an existing Redis instance
Follow the instructions on the Redis website to install Redis.
Configure the Application
cd /Users/[your-username]/Developer/mend
# Copy configuration filescp config.example.yaml config.yamlcp .env.example .env
# Edit .env with your AWS credentialsnano .envAdd your AWS credentials to .env:
AWS_ACCESS_KEY_ID=your_access_key_idAWS_SECRET_ACCESS_KEY=your_secret_access_keyAWS_REGION=us-east-1Download Dependencies
go mod downloadRun the Application
Open two terminal windows:
go run cmd/api/main.gogo run cmd/worker/main.goVerify the API is running:
curl http://localhost:8080/healthOpen in your browser:
http://localhost:8080/swagger/index.htmlFirst, upload an image to your S3 bucket, then:
curl -X POST http://localhost:8080/api/v1/jobs/image/resize \ -H "Content-Type: application/json" \ -H "X-API-Key: your_api_key_here" \ -d '{ "source_bucket": "your-bucket-name", "source_key": "path/to/image.jpg", "dest_bucket": "your-bucket-name", "dest_key": "path/to/resized.jpg", "width": 800, "height": 600 }'You’ll get a response with a job ID:
{ "job_id": "550e8400-e29b-41d4-a716-446655440000", "status": "pending", "message": "Job queued for processing"}# Start all servicesdocker-compose up -d
# View logsdocker-compose logs -f
# Access MinIO console for local S3open http://localhost:9001# Login: minioadmin / minioadminImage Resize
Resize images to specific dimensions
Image Optimize
Compress and convert to WebP/AVIF
Video Thumbnails
Extract frames from videos
Audio Conversion
Convert between audio formats
AI Analysis
Send to AI services for analysis
brew install gobrew services start redisCheck your AWS credentials in .env file
Change port in config.yaml:
server: port: 8081Read the API Docs
Learn about all available endpoints in the API Reference
Set Up Authentication
Secure your API with API keys
Deploy to Production
Follow the Deployment Guide
Understand Architecture
Deep dive into the Architecture