Productionβready starter template for building OMSSβcompliant streaming backends. Includes server setup, provider system, linting, and an example provider.
- π Ready in 5 minutes β install, set TMDB key, run
- π¦ @omss/framework β official OMSS implementation
- π Autoβdiscovery β drop provider files into
providers/ - π‘οΈ Type safety & formatting β Prettier + TypeScript
- π Productionβready β Redis cache, Docker support
- π Example provider β fully commented reference implementation
- π Hot reload β
npm run devfor development
# Clone & install
git clone https://github.com/omss-spec/template.git my-streaming-backend
cd my-streaming-backend
npm install
# Copy env template
cp .env.example .env
# !Add your TMDB API key!
# Run dev server (auto-reload)
npm run devβ Server running at http://localhost:3000
Great! You can now add your providers!
template/
βββ src/
β βββ server.ts # Main server entrypoint
β βββ providers/ # Auto-discovered providers
β β βββ example.ts # Reference provider
βββ .env.example # Environment template
βββ .prettierrc # Prettier config
βββ tsconfig.json # TypeScript config
βββ package.json # Dependencies + scripts
βββ docker-compose.yml # Redis + dev setup
npm run dev # Dev server with hot reload (tsx watch)1. Create a provider (extends BaseProvider):
// src/providers/my-site.ts
import { BaseProvider } from '@omss/framework';
export class MySiteProvider extends BaseProvider {
readonly id = 'my-site';
readonly name = 'My Site';
readonly BASE_URL = 'https://my-site.com';
readonly capabilities = { supportedContentTypes: ['movies', 'tv'] };
// Implement getMovieSources() & getTVSources()
}2. Autoβdiscovered β restart server or use npm run dev (watches for changes)
3. Register manually (in server.ts):
server.getRegistry().register(new MySiteProvider());Copy .env.example β .env and set:
# Required
TMDB_API_KEY=your_tmdb_api_key_here
# Optional
PORT=3000
HOST=localhost
NODE_ENV=development
PUBLIC_URL=http://localhost:3000
# Redis (for production)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=# Start Redis + server
docker-compose up -d
# Or just Redis
docker-compose up redis -d
npm run startFROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist/ ./
EXPOSE 3000
CMD ["node", "server.js"]# 1. Install
npm install
# 3. Add providers to src/providers/
# 2. Dev server (auto-reload + type checking)
npm run dev
# 4. Format code
npm run format
# 5. Build for prod
npm run build
npm run start- OMSS Framework:
@omss/frameworkon npm github - OMSS Spec: github.com/omss-spec/omss-spec
- Example Provider:
src/providers/example.tsβ fully commented - Server Examples:
src/server.tsβ multiple configs
See src/providers/example.ts for a complete provider implementation with error handling, logging, proxying, and type safety.
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
MIT Β© OMSS Foundation
β Star this repo | [Click on 'Use this template' & customize] | OMSS Spec