Quick Start
Get MediaKit running in under 5 minutes.
Prerequisites
- Go 1.24+
- Node.js 20+ and pnpm
- Docker & Docker Compose (for PostgreSQL + Redis)
- FFmpeg installed locally (for video transcoding)
1. Install Grit CLI
bash
go install github.com/MUKE-coder/grit/v3/cmd/grit@latest2. Scaffold the Project
bash
grit new my-media --triple --next --style default
cd my-mediaThis creates a monorepo with three apps: api (Go), web (Next.js public site), and admin (Next.js admin panel).
3. Start Infrastructure
bash
docker compose up -dThis starts PostgreSQL, Redis, MinIO (S3-compatible), and Mailhog.
4. Install Dependencies
bash
pnpm install5. Run Migrations & Seed
bash
# In the api directory
cd apps/api
go run cmd/server/main.go migrate
go run cmd/server/main.go seed
cd ../..6. Start Development
bash
pnpm devThis starts all three services:
| Service | URL |
|---|---|
| Go API | http://localhost:8080 |
| Web App | http://localhost:3000 |
| Admin Panel | http://localhost:3001 |
| GORM Studio | http://localhost:8080/studio |
Cloud Development (No Docker)
If you can't run Docker locally, use cloud services instead. Set these in your .env:
.env
# Neon PostgreSQL
DATABASE_URL=postgresql://user:pass@ep-xxx.neon.tech/dbname?sslmode=require
# Upstash Redis
REDIS_URL=rediss://default:xxx@xxx.upstash.io:6379
# Cloudflare R2 (instead of MinIO)
STORAGE_DRIVER=r2
R2_ENDPOINT=https://ACCOUNT_ID.r2.cloudflarestorage.com
R2_ACCESS_KEY=your_key
R2_SECRET_KEY=your_secret
R2_BUCKET=your-bucket7. Login to Admin
After seeding, login with the default credentials:
text
Email: admin@example.com
Password: passwordChange these credentials immediately after first login.
Next Steps
Now that MediaKit is running, check out the Admin Guide to learn how to upload your first video and test all features.