wjones 79110d2afd Update DataDir and ConfigDir paths in startup.json
Separated DataDir and ConfigDir into their own subfolders
within C:/ProgramData/jellyfin by updating their paths to
"data" and "config" respectively. This improves organization
of data and configuration files.
2026-02-27 18:12:52 -05:00

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 lib folder

📚 Quick Navigation


🎯 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

Install from Installer (Windows)

  1. Download JellyfinSetup-PostgreSQL-11.0.0.exe
  2. Run installer, select options
  3. Configure PostgreSQL (or skip for later)
  4. 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

  1. Command-line arguments
  2. Environment variables
  3. startup.json
  4. 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

📁 View All Documentation →


📝 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

JellyfinPostgreSQL.NET

S
Description
No description provided
Readme GPL-2.0 410 MiB
Languages
JavaScript 64.1%
C# 33.3%
PowerShell 1.8%
Shell 0.3%
HTML 0.3%