Configured QuerySplittingBehavior.SplitQuery in PostgresDatabaseProvider to optimize performance for queries with multiple Include() statements. This prevents cartesian explosion, eliminates EF Core warnings, and aligns with best practices for handling related collections in PostgreSQL.
Jellyfin with PostgreSQL Support
The Free Software Media System - Now with Enterprise Database Backend
🚀 What's New in This Fork?
This is a PostgreSQL-enabled fork of Jellyfin that replaces SQLite with PostgreSQL for improved performance, scalability, and reliability.
✨ Key Features
- ✅ PostgreSQL Database Backend - Full migration from SQLite
- ✅ Improved Performance - Better handling of large libraries
- ✅ Enterprise Scalability - Replication and clustering support
- ✅ Professional Backups - pgBackRest integration
- ✅ OS-Specific Configuration - Auto-configuration for Windows/Linux/macOS
- ✅ Windows Installer - Professional installer with PostgreSQL wizard
- ✅ Centralized Build - All DLLs in
libfolder
📚 Quick Navigation
- Quick Start
- Installation
- PostgreSQL Setup
- Configuration
- Building
- Creating Installer
- Migration
- Troubleshooting
- Documentation
🎯 Quick Start
Windows Installer
# Run JellyfinSetup-PostgreSQL-11.0.0.exe
# Follow wizard for PostgreSQL setup
From Source
git clone https://gitea.wpjones.com/wjones/pgsql-jellyfin.git
cd pgsql-jellyfin
dotnet build --configuration Release
cd lib/Release/net11.0
dotnet jellyfin.dll
📖 See INSTALLER_QUICK_START.md or QUICKSTART_POSTGRESQL.md
📦 Installation
Prerequisites
- .NET 11 Runtime - Download
- PostgreSQL 12+ - Download
- FFmpeg - Jellyfin builds
Install from Installer (Windows)
- Download
JellyfinSetup-PostgreSQL-11.0.0.exe - Run installer, select options
- Configure PostgreSQL (or skip for later)
- Open http://localhost:8096
📖 Full guide: INSTALLER_GUIDE.md
Install from Source
Windows:
dotnet build Jellyfin.Server --configuration Release
cd lib\Release\net11.0
jellyfin.exe
Linux:
dotnet build Jellyfin.Server --configuration Release
cd lib/Release/net11.0
./jellyfin
🗄️ PostgreSQL Setup
Quick Install
Windows:
winget install PostgreSQL.PostgreSQL
Linux:
sudo apt install postgresql postgresql-contrib
Create Database
psql -U postgres
CREATE USER jellyfin WITH PASSWORD 'your_password';
CREATE DATABASE jellyfin OWNER jellyfin;
GRANT ALL PRIVILEGES ON DATABASE jellyfin TO jellyfin;
\q
Configure Connection
Edit startup.json:
{
"DatabaseProvider": "Postgres",
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=jellyfin;Username=jellyfin;Password=your_password"
}
}
📖 Full guide: QUICKSTART_POSTGRESQL.md
⚙️ Configuration
OS-Specific Defaults
startup.json is auto-configured per platform:
- Windows:
C:/ProgramData/jellyfin - Linux:
/var/lib/jellyfin,/etc/jellyfin - macOS:
~/Library/Application Support/jellyfin
Priority Order
- Command-line arguments
- Environment variables
- startup.json
- Built-in defaults
📖 Docs: OS_SPECIFIC_STARTUP_CONFIG.md, STARTUP_JSON_VERIFICATION.md
🔨 Building from Source
git clone https://gitea.wpjones.com/wjones/pgsql-jellyfin.git
cd pgsql-jellyfin
dotnet restore
dotnet build --configuration Release
# Output: lib/Release/net11.0/
📖 See CENTRALIZED_LIB_FOLDER.md
📦 Creating an Installer
# 1. Install Inno Setup
winget install JRSoftware.InnoSetup
# 2. Build
.\build-installer.ps1
# 3. Result
# installer-output\JellyfinSetup-PostgreSQL-11.0.0.exe
Features:
- Windows Service installation
- Firewall rules
- PostgreSQL wizard
- .NET runtime check
📖 Guides: INSTALLER_QUICK_START.md, INSTALLER_GUIDE.md
🔄 Migration Guide
SQLite to PostgreSQL
# 1. Backup
cp jellyfin.db jellyfin-backup.db
# 2. Set up PostgreSQL
# 3. Update startup.json
# 4. Run migration
dotnet run --project Jellyfin.Server -- --migrate-database
📖 See POSTGRESQL_MIGRATION_COMPLETE.md
🔧 Troubleshooting
PostgreSQL Connection
# Check status
sudo systemctl status postgresql
# Test connection
psql -U jellyfin -d jellyfin
Service Issues
# Check logs
tail -f /var/log/jellyfin/log_*.txt
📖 Full guides: POSTGRESQL_TROUBLESHOOTING.md, TROUBLESHOOTING_EF_PENDING_CHANGES.md
📖 Documentation
Configuration
PostgreSQL
Backup
Installation
Project
📝 License
GNU General Public License v2.0
Fork of Jellyfin
📞 Support
⚡ Quick Reference
# Build
dotnet build --configuration Release
# Run
cd lib/Release/net11.0 && dotnet jellyfin.dll
# Create installer
.\build-installer.ps1
# Test
dotnet test
Essential Paths:
- Windows:
C:\ProgramData\jellyfin - Linux:
/var/lib/jellyfin - macOS:
~/Library/Application Support/jellyfin
Built with ❤️ for the Jellyfin community
Jellyfin • PostgreSQL • .NET