Ask for a movie in Discord. DiscoFlix searches your services, handles the approval,
tracks the download, and replies when it's ready to watch.
The og discord, the good one.
Plug in Anthropic, OpenAI, Gemini, or a local Ollama. The assistant has access to all your users, what media you have downloaded/monitored/queued, and of course - the discord bot (you can turn these off incrementally if thats too intrusive for you, but thats why we include ollama).
Routing - commands, mentions, and DMs each pick their own provider, audience, and memory. |
Directives - system prompt, go nuts. |
flowchart LR
discord(["Discord"]) <--> core{{"DiscoFlix"}}
console(["Web console"]) <--> core
core --> arr["Radarr / Sonarr / Lidarr"]
core --> dl["SABnzbd / qBittorrent / NZBGet / +5"]
core --> media["Plex / Emby / Jellyfin"]
core --> ai["Anthropic / OpenAI / Gemini / Ollama"]
Docker (recommended)
docker run -d --name discoflix \
-p 5001:5001 \
-v discoflix_data:/data \
nickheyer/discoflix:latestOr grab docker-compose.yml and docker compose up -d.
From source
git clone https://github.com/nickheyer/DiscoFlix.git
cd DiscoFlix
npm install
npm start # or: make dev (auto-restarts on change)Node 20+. The schema migrates itself on first boot.
Single binary
npm install
npm run build:binary # -> dist/discoflixData lands next to the binary in discoflix-data/ (override with DF_DATA_DIR).
Then open http://localhost:5001, paste your Discord bot token, and flip the power switch. Everything is configured in the console - or seed first-boot settings from the environment with .env.example.
DiscoFlix ships its own admin panel - no external tools. Enable Database Admin in the DiscoFlix app's Settings (or set DF_DB_ADMIN=1 before first boot) and it serves a standalone editor at http://localhost:5001/admin (a Database shortcut also appears in the DiscoFlix app and opens it in a new tab). It reads the schema straight from the Prisma models, so every table, column, relation, and index shows up automatically: search, sort, filter by clicking any foreign key, edit or create rows in the side editor, bulk-edit or bulk-delete the checked rows (or everything matching the current filter), and drop to raw SQL when you want it.
It edits the live database with no guardrails - that's the point - so if the console is reachable by anyone but you, set an admin password. DiscoFlix will nag you about exactly that (dismissable) if you enable it on a password-less console.
Every screenshot above is the real UI (kinda?), captured live against a fictional showcase dataset - the movies, the users, and yes, the posters were all invented for this README (imagine if I used real movie posters, id never do that).
Built by Nicholas Heyer · ISC License











