kiriwalawren/nixflix
NixOS Media Server Configuration
{ "createdAt": "2025-10-30T22:43:31Z", "defaultBranch": "main", "description": "NixOS Media Server Configuration", "fullName": "kiriwalawren/nixflix", "homepage": "https://kiriwalawren.github.io/nixflix", "language": "Nix", "name": "nixflix", "pushedAt": "2026-07-01T16:03:59Z", "stargazersCount": 513, "topics": [ "arr-stack", "flake", "homelab", "homelab-automation", "homelab-setup", "jellyfin", "lidarr", "media-server", "nix", "nixflix", "nixos", "prowlarr", "radarr", "seerr", "self-hosted", "selfhosted", "servarr", "sonarr", "starr" ], "updatedAt": "2026-07-01T19:54:03Z", "url": "https://github.com/kiriwalawren/nixflix"}
Nixflix
Nixflix is a declarative media server configuration manager for NixOS. The aim of the project is to automate all of the connective tissue required to get get Starr and Jellyfin services (Sonarr, Radarr, Lidarr, Prowlarr, Jellyfin, Seerr) working together. I want users to be able to configure this module and it just works.
Why Nixflix?
Section titled “Why Nixflix?”Dreading the thought of configuring a media server from scratch. Again…
Nixflix makes it so you never have to again!
Managing media server configuration can be very painful:
- No version control for settings
- Tedious navigation through UI systems
- And annoying interservice Configuration
All of these services have APIs, surely we can use this to automate the whole thing.
Nixflix is:
- ✅ Opionated — Don’t you hate having to think for yourself?
- ✅ API-based — Nixflix uses official REST APIs of each service (with a couple minor exceptions)
- ✅ Idempotent — All services safely execute repeatedly
- ✅ Commanding — Your code is the source of truth, no need to fear drift
Features
Section titled “Features”- Media Server Stack: Pre-configured modules for Sonarr, Radarr, Lidarr, and Prowlarr
- Declarative API Configuration: Configure services declaratively via NixOS options, automatically applied through their REST APIs
- PostgreSQL Integration: Optional PostgreSQL backend for all Arr services
- WireGuard VPN Integration: Built-in support for Wireguard VPN with kill switch and custom DNS
- Flexible Directory Management: Configurable media and state directories with automatic setup
- Service Dependencies: Configure custom systemd service dependencies
- Reverse Proxy Support: Configurable nginx or Caddy integration for all services, with per-service opt-out
- Unified Theming: All supported services can be themed to look the same, powered by theme.park
- TRaSH Guides: Default configuration follows TRaSH guidelines
Upcoming Features
Section titled “Upcoming Features”- Better music tooling
Documentation
Section titled “Documentation”Checkout the documentation to get started.
Services
Section titled “Services”Starr Stack
Section titled “Starr Stack”All Arr services (Sonarr, Radarr, Lidarr, Prowlarr) support:
- API-based configuration
- PostgreSQL integration
- Reverse proxy (nginx or Caddy)
- Automatic directory creation
- Root folder management
- Custom media directories
Jellyfin
Section titled “Jellyfin”- Basic server management
- Libraries are automatically configured based on elected media managers
- Plugin management
- Subtitle downloader management
- Media request management
- Automatic integration with Starr services
- Automatic integration with Jellyfin libraries
SABnzbd
Section titled “SABnzbd”- Automatic integration with Starr services
qBittorrent
Section titled “qBittorrent”- Automatic integration with Starr services
WireGuard VPN
Section titled “WireGuard VPN”- Generic WireGuard support
- Kill switch
Maintainerr
Section titled “Maintainerr”- Automatic cleanup of old media
Development
Section titled “Development”# Enter development shellnix develop
# Format codenix fmt
# Check formatting and lintingnix flake checkLicense
Section titled “License”MPL 2.0