Files
pgsql-jellyfin/docs/INSTALLER_NEEDS_UPDATE.md
T
wjones 61c71c1882 Update installer: add docs, scripts, and Start Menu tools
- Expanded [Files] section to include key documentation and PowerShell/batch scripts for database management
- Fixed INSTALLER_GUIDE.md path and improved file organization in installer script
- Added Start Menu shortcuts for documentation and database tools
- Updated .gitignore to track wwwroot/*
- Changed .csproj.user to use a relative publish profile name
- Added INSTALLER_NEEDS_UPDATE.md and INSTALLER_UPDATE_COMPLETE.md for documentation and change tracking
- Improves user onboarding, support, and maintainability
2026-02-28 16:45:58 -05:00

9.4 KiB
Raw Blame History

🔍 Jellyfin Setup Installer Analysis


What the Installer Currently Includes

Already Working Correctly:

Line 38:

Source: "lib\Release\net11.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

This line already copies everything from lib\Release\net11.0, which includes:

  • All DLLs and executables
  • SQL files in sql/ directory (auto-included)
  • Any subdirectories and files

Why it works:

  • The recursesubdirs createallsubdirs flags copy all subdirectories
  • Since we added SQL files to the project with <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>, they're in the build output
  • The installer automatically includes them!

1. ⚠️ Documentation Reference (Minor Issue)

Current (Line 43):

Source: "INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"

Problem: This file is now in docs/INSTALLER_GUIDE.md

Fix:

Source: "docs\INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"

2. 📚 Add Additional Documentation (Optional)

Consider adding key documentation files for users:

; Copy essential documentation
Source: "README.md"; DestDir: "{app}"; Flags: isreadme; DestName: "README.txt"
Source: "docs\START_HERE.md"; DestDir: "{app}\docs"; DestName: "START_HERE.txt"
Source: "docs\QUICKSTART_POSTGRESQL.md"; DestDir: "{app}\docs"; DestName: "QUICKSTART_POSTGRESQL.txt"
Source: "docs\QUICK_REFERENCE.md"; DestDir: "{app}\docs"; DestName: "QUICK_REFERENCE.txt"
Source: "docs\INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"
Source: "docs\ADD_INDEXES_GUIDE.md"; DestDir: "{app}\docs"; DestName: "ADD_INDEXES_GUIDE.txt"
Source: "docs\DIAGNOSTICS_COMPLETE_SUMMARY.md"; DestDir: "{app}\docs"; DestName: "DIAGNOSTICS_COMPLETE_SUMMARY.txt"

Include the database management scripts:

; Database management scripts
Source: "db-config.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "Fix-ItemValues-Performance.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "db-quick.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "publish-with-sql.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "Add-All-Indexes.bat"; DestDir: "{app}"; Flags: ignoreversion

4. 📖 Add Shortcuts to Documentation

Add a shortcut to the documentation:

[Icons]
; Add documentation shortcut
Name: "{group}\Documentation"; Filename: "{app}\docs"; Comment: "View Jellyfin documentation"
Name: "{group}\Database Management"; Filename: "{app}\db-quick.ps1"; Comment: "Database management tools"

🎯 Priority Recommendations

Must Do (Critical):

  1. No critical changes needed! SQL files are already included automatically

Should Do (Important):

  1. 🔧 Fix documentation path - Update INSTALLER_GUIDE.md path
  2. 📄 Add START_HERE.md - Helps new users get started

Could Do (Nice to Have):

  1. 📚 Add more documentation files
  2. 🛠️ Include PowerShell scripts for database management
  3. 🔗 Add shortcuts to documentation and scripts

📝 Proposed Updated [Files] Section

[Files]
; ============================================================================
; Application Files
; ============================================================================

; Copy all files from lib\Release\net11.0 (includes SQL files automatically)
Source: "lib\Release\net11.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

; ============================================================================
; Configuration Files
; ============================================================================

; Copy startup configuration with Windows defaults
Source: "Jellyfin.Server\Resources\Configuration\startup.windows.json"; DestDir: "{commonappdata}\jellyfin"; DestName: "startup.json"; Flags: onlyifdoesntexist

; ============================================================================
; Database Management Scripts
; ============================================================================

; PowerShell scripts for database management
Source: "db-config.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "Fix-ItemValues-Performance.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "db-quick.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "Add-All-Indexes.bat"; DestDir: "{app}"; Flags: ignoreversion

; ============================================================================
; Documentation
; ============================================================================

; Essential documentation
Source: "README.md"; DestDir: "{app}"; Flags: isreadme; DestName: "README.txt"
Source: "docs\START_HERE.md"; DestDir: "{app}\docs"; DestName: "START_HERE.txt"
Source: "docs\QUICKSTART_POSTGRESQL.md"; DestDir: "{app}\docs"; DestName: "QUICKSTART_POSTGRESQL.txt"
Source: "docs\INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"
Source: "docs\QUICK_REFERENCE.md"; DestDir: "{app}\docs"; DestName: "QUICK_REFERENCE.txt"

; Performance and troubleshooting
Source: "docs\ADD_INDEXES_GUIDE.md"; DestDir: "{app}\docs"; DestName: "ADD_INDEXES_GUIDE.txt"
Source: "docs\DIAGNOSTICS_COMPLETE_SUMMARY.md"; DestDir: "{app}\docs"; DestName: "DIAGNOSTICS_COMPLETE_SUMMARY.txt"
Source: "docs\POSTGRESQL_TROUBLESHOOTING.md"; DestDir: "{app}\docs"; DestName: "POSTGRESQL_TROUBLESHOOTING.txt"

📝 Proposed Updated [Icons] Section

[Icons]
; ============================================================================
; Start Menu Shortcuts
; ============================================================================

; Application shortcuts
Name: "{group}\Jellyfin Server"; Filename: "{app}\jellyfin.exe"; WorkingDir: "{app}"; Comment: "Start Jellyfin media server"
Name: "{group}\Jellyfin Web Interface"; Filename: "http://localhost:8096"; Comment: "Open Jellyfin in web browser"

; Data and logs
Name: "{group}\Jellyfin Logs"; Filename: "{commonappdata}\jellyfin\log"; Comment: "View Jellyfin log files"
Name: "{group}\Jellyfin Data"; Filename: "{commonappdata}\jellyfin"; Comment: "Jellyfin data directory"

; Documentation and tools
Name: "{group}\Documentation"; Filename: "{app}\docs"; Comment: "View Jellyfin documentation"
Name: "{group}\Database Tools"; Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -File ""{app}\db-quick.ps1"""; WorkingDir: "{app}"; Comment: "Database management tools"
Name: "{group}\Performance Optimization"; Filename: "notepad.exe"; Parameters: """{app}\docs\ADD_INDEXES_GUIDE.txt"""; Comment: "Database performance guide"

; Uninstall
Name: "{group}\{cm:UninstallProgram,Jellyfin PostgreSQL}"; Filename: "{uninstallexe}"

; Desktop shortcut (optional)
Name: "{commondesktop}\Jellyfin Server"; Filename: "{app}\jellyfin.exe"; WorkingDir: "{app}"; Tasks: desktopicon

What's Already Working

  1. SQL files automatically included

    • Because lib\Release\net11.0\* with recursesubdirs flag copies everything
    • The SQL files we added to the project are in the build output
  2. Service installation

    • Windows Service setup is already configured
  3. PostgreSQL configuration wizard

    • Installer has a wizard page for PostgreSQL setup
  4. Firewall rules

    • Automatically adds Firewall exception
  5. Proper permissions

    • Sets correct permissions on data directories

🚀 Quick Implementation

Minimal Update (Fix documentation path):

; Line 43 - Just fix this one line
Source: "docs\INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"

Add after line 43:

Source: "docs\START_HERE.md"; DestDir: "{app}\docs"; DestName: "START_HERE.txt"
Source: "docs\QUICKSTART_POSTGRESQL.md"; DestDir: "{app}\docs"; DestName: "QUICKSTART_POSTGRESQL.txt"
Source: "db-config.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "Fix-ItemValues-Performance.ps1"; DestDir: "{app}"; Flags: ignoreversion
Source: "Add-All-Indexes.bat"; DestDir: "{app}"; Flags: ignoreversion

📊 Summary

Current State:

  • SQL files: Already included automatically
  • Core functionality: Working perfectly
  • ⚠️ Documentation path: Needs minor fix
  • Scripts: Not included (recommended to add)

Priority:

  1. Critical: None! Everything essential works
  2. High: Fix documentation path
  3. Medium: Add START_HERE.md and key docs
  4. Low: Add PowerShell scripts and shortcuts

Impact of Not Updating:

  • SQL files: No impact - already working
  • Documentation: Minor - one guide has wrong path
  • Scripts: Users would need to download separately or access from source

🎯 Recommendation

Minimum viable update:

; Just fix line 43
Source: "docs\INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"

Recommended update: Add the [Files] and [Icons] sections from the "Proposed Updated" sections above.

The installer will work fine without updates, but adding the scripts and documentation would be a nice touch for users! 🎉


📝 Files to Create

I can create:

  1. jellyfin-setup-updated.iss - Updated installer script with all recommendations
  2. INSTALLER_UPDATE_GUIDE.md - Step-by-step guide for applying updates

Would you like me to create these files?