Self-hosted media management. Everything in one app.
Cinephage — from Greek cine (film) + phage (to devour). A film devourer.
Search for movies and TV shows, grab them from your indexers, organize your library, and fetch subtitles. One app handles it all, backed by a single database.
Caution
This project is under active development. Features may be incomplete, APIs may change, and bugs are expected. This is a passion project by a solo developer — your patience and feedback are appreciated. Please report issues on GitHub, but understand that breaking changes may occur between updates.
| Feature | Status | Notes |
|---|---|---|
| Content Discovery | Stable | TMDB integration, trending, search |
| Library Management | Stable | File watching, scanning, TMDB matching |
| Quality Scoring | In Progress | 4 built-in profiles work; custom profiles incomplete |
| Download Client | Stable | qBittorrent + SABnzbd |
| Indexers | In Progress | 4 public + 2 private indexers + Torznab/Newznab |
| Subtitles | Stable | 6 providers, 80+ languages |
| Monitoring | Experimental | 5 tasks coded, may have bugs |
| Smart Lists | Stable | Dynamic TMDB queries with auto-add to library |
| Live TV/IPTV | Not Started | Planned for future |
Using Pre-built Image:
mkdir cinephage && cd cinephage
curl -O https://raw.githubusercontent.com/MoldyTaint/cinephage/main/docker-compose.yaml
curl -O https://raw.githubusercontent.com/MoldyTaint/cinephage/main/.env.docker.example
cp .env.docker.example .envEdit .env to configure your settings:
CINEPHAGE_PORT=3000
CINEPHAGE_MEDIA_PATH=/path/to/your/media
CINEPHAGE_UID=1000
CINEPHAGE_GID=1000
CINEPHAGE_ORIGIN=http://localhost:3000Start Cinephage:
docker compose up -dUsing Docker Run:
docker run -d \
--name cinephage \
--restart unless-stopped \
--user 1000:1000 \
-p 3000:3000 \
-v ./data:/app/data \
-v ./logs:/app/logs \
-v /path/to/your/media:/media \
-e ORIGIN=http://localhost:3000 \
-e TZ=UTC \
ghcr.io/moldytaint/cinephage:latestBuilding from Source:
git clone https://github.com/MoldyTaint/cinephage.git
cd cinephage
cp .env.docker.example .env
docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --buildgit clone https://github.com/MoldyTaint/cinephage.git
cd cinephage
npm install
npm run build
npm startOpen http://localhost:3000 and configure:
- Add your TMDB API key (free at themoviedb.org)
- Configure qBittorrent connection
- Set up root folders for movies and TV
- Enable indexers
See Configuration Guide for detailed setup.
- qBittorrent with WebUI enabled (or SABnzbd)
- TMDB API key (free)
- Node.js 20+ (manual install only)
- ffprobe (optional, for media info extraction)
- Content Discovery — Browse TMDB for movies and TV shows, view trending, trailers, and watch providers
- Indexer Search — 4 public + 2 private trackers built-in, plus Torznab/Newznab support for external indexers
- Quality Scoring — 4 built-in profiles (Quality, Balanced, Compact, Streamer) scoring 100+ release attributes
- Library Management — Real-time file watching, scheduled scans, auto-match to TMDB metadata
- Download Automation — qBittorrent/SABnzbd integration with categories, priority handling, auto-import
- Subtitles — 6 providers, 80+ languages, auto-search on import
- Monitoring — Automatic searches for missing content, quality upgrades, and new episodes
See Documentation for full details.
Frontend: SvelteKit 5, Svelte 5, TailwindCSS 4, DaisyUI 5 Backend: Node.js, SQLite, Drizzle ORM
npm run dev # Start dev server
npm run build # Build for production
npm run check # TypeScript checking
npm run lint # ESLint + Prettier
npm run test # Run testsSee CONTRIBUTING.md for development guidelines.
- Discord — Chat and support
- GitHub Issues — Bug reports and feature requests
- Contributing — Development guidelines
- Code of Conduct — Community standards
- Security Policy — Vulnerability reporting
Cinephage draws inspiration from the architecture of Radarr, Sonarr, Prowlarr, and Bazarr, with modern UI patterns influenced by Overseerr. Thanks to Dictionarry for quality scoring data, EncDec Endpoints for streaming functionality, and FlareSolverr for Cloudflare handling. Uses TMDB for metadata. See THIRD-PARTY-NOTICES.md for complete attribution.
This project was built with and continues to use AI assistance. As a solo developer who's still learning, AI makes it possible to tackle a project of this scope — something that would otherwise require a team. It's a personal project, and AI is a tool that helps bridge the gap between ambition and experience. It's not perfect, but neither am I. We believe in being upfront about how this project is built.
GNU General Public License v3.0
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.