Skip to content

Lightweight streaming web app for freshwater sailors 🏴‍☠️

License

Notifications You must be signed in to change notification settings

gmonarque/streamium

Repository files navigation

Streamium

A SvelteKit streaming UI that embeds content from third-party providers and uses TMDB for movie/TV metadata.

Streamium screenshot 1 Streamium screenshot 2 Streamium screenshot 3

Features

  • TMDB-powered catalog, search, and filters
  • Multiple embed providers (VidSrc, VidLink, 111Movies, 2Embed)
  • Auth, watchlist, and comments with moderation
  • Server-rendered UI with image proxying
  • Basic security controls (CSRF, captcha, rate limiting, CSP)

Tech Stack

  • SvelteKit + TypeScript + Tailwind CSS
  • Prisma + MySQL
  • JWT auth, Zod validation

Quickstart (Local)

Prereqs: Node.js 18+, pnpm, and MySQL (optional if you only browse content).

  1. Configure env:
cp .env.example .env
  1. Install deps:
pnpm install
  1. (Optional) DB setup:
pnpm prisma generate
pnpm prisma migrate dev
  1. Run dev server:
pnpm dev

App runs at http://localhost:5173

Docker

  1. Set required env vars (at minimum):
  • JWT_SECRET
  • TMDB_API_KEY
  • MYSQL_PASSWORD
  • MYSQL_ROOT_PASSWORD
  1. Start:
docker compose up --build
  1. Run migrations:
docker compose exec web pnpm prisma migrate dev

Environment Variables

Key entries in .env.example:

  • DATABASE_URL
  • JWT_SECRET
  • TMDB_API_KEY
  • TMDB_API_URL
  • Provider URLs: VIDSRC_BASE_URL, VIDLINK_BASE_URL, MOVIES111_BASE_URL, EMBED2_BASE_URL

Scripts

  • pnpm dev – start dev server
  • pnpm build – production build
  • pnpm test – run tests

License

MIT

Legal Disclaimer

This project embeds third‑party content and does not host media files. Use it only with properly licensed content and in compliance with applicable laws. The software is provided “as is” without warranty.

About

Lightweight streaming web app for freshwater sailors 🏴‍☠️

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published