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@latest

2. Scaffold the Project

bash
grit new my-media --triple --next --style default
cd my-media

This 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 -d

This starts PostgreSQL, Redis, MinIO (S3-compatible), and Mailhog.

4. Install Dependencies

bash
pnpm install

5. 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 dev

This starts all three services:

ServiceURL
Go APIhttp://localhost:8080
Web Apphttp://localhost:3000
Admin Panelhttp://localhost:3001
GORM Studiohttp://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-bucket

7. Login to Admin

After seeding, login with the default credentials:

text
Email: admin@example.com
Password: password

Change 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.