Quick Start
Get the Media API running locally in minutes.
Prerequisites
- Node.js 18+
- MongoDB instance (local or Atlas)
- AWS S3 bucket (for file storage)
- FFmpeg installed on the system
Installation
git clone https://github.com/stoked-ui/stoked-ui.git
cd stoked-ui/packages/sui-media-api
pnpm install
Configuration
Create a .env file in the package root:
# MongoDB
MONGODB_URI=mongodb://localhost:27017/stoked-media
# AWS S3
AWS_REGION=us-east-1
AWS_S3_BUCKET=your-media-bucket
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
# JWT
JWT_SECRET=your-jwt-secret
# Server
PORT=3001
Running the API
# Development mode with hot reload
pnpm dev
# Production build
pnpm build
pnpm start
Verify it works
Once running, visit the Swagger documentation:
http://localhost:3001/api/docs
First request
# Health check
curl http://localhost:3001/api/health
# List media items (requires auth token)
curl -H "Authorization: Bearer <token>" http://localhost:3001/api/media
Connecting the client
Use @stoked-ui/media on the frontend to communicate with this API:
import { useMediaList } from '@stoked-ui/media';
function MediaLibrary() {
const { data } = useMediaList({ page: 1, limit: 20 });
return <div>{data?.items.map(item => <p key={item.id}>{item.title}</p>)}</div>;
}