61c71c1882
- 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
9.4 KiB
9.4 KiB
🔍 Jellyfin Setup Installer Analysis
Current Status: ✅ Mostly Good, Minor Updates Recommended
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 createallsubdirsflags 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!
📋 Recommended Updates
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"
3. 🛠️ Add PowerShell Scripts (Recommended)
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):
- ✅ No critical changes needed! SQL files are already included automatically
Should Do (Important):
- 🔧 Fix documentation path - Update INSTALLER_GUIDE.md path
- 📄 Add START_HERE.md - Helps new users get started
Could Do (Nice to Have):
- 📚 Add more documentation files
- 🛠️ Include PowerShell scripts for database management
- 🔗 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
-
SQL files automatically included ✅
- Because
lib\Release\net11.0\*withrecursesubdirsflag copies everything - The SQL files we added to the project are in the build output
- Because
-
Service installation ✅
- Windows Service setup is already configured
-
PostgreSQL configuration wizard ✅
- Installer has a wizard page for PostgreSQL setup
-
Firewall rules ✅
- Automatically adds Firewall exception
-
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"
Recommended Update (Add essentials):
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:
- Critical: None! Everything essential works
- High: Fix documentation path
- Medium: Add START_HERE.md and key docs
- 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:
jellyfin-setup-updated.iss- Updated installer script with all recommendationsINSTALLER_UPDATE_GUIDE.md- Step-by-step guide for applying updates
Would you like me to create these files?