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
263 lines
9.4 KiB
Markdown
263 lines
9.4 KiB
Markdown
# 🔍 Jellyfin Setup Installer Analysis
|
||
|
||
## Current Status: ✅ Mostly Good, Minor Updates Recommended
|
||
|
||
---
|
||
|
||
## What the Installer Currently Includes
|
||
|
||
### ✅ Already Working Correctly:
|
||
|
||
**Line 38:**
|
||
```inno
|
||
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!
|
||
|
||
---
|
||
|
||
## 📋 Recommended Updates
|
||
|
||
### 1. ⚠️ Documentation Reference (Minor Issue)
|
||
|
||
**Current (Line 43):**
|
||
```inno
|
||
Source: "INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"
|
||
```
|
||
|
||
**Problem:** This file is now in `docs/INSTALLER_GUIDE.md`
|
||
|
||
**Fix:**
|
||
```inno
|
||
Source: "docs\INSTALLER_GUIDE.md"; DestDir: "{app}\docs"; DestName: "INSTALLER_GUIDE.txt"
|
||
```
|
||
|
||
### 2. 📚 Add Additional Documentation (Optional)
|
||
|
||
Consider adding key documentation files for users:
|
||
|
||
```inno
|
||
; 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:
|
||
|
||
```inno
|
||
; 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:
|
||
|
||
```inno
|
||
[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
|
||
|
||
```inno
|
||
[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
|
||
|
||
```inno
|
||
[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):
|
||
|
||
```inno
|
||
; 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:
|
||
```inno
|
||
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:**
|
||
```inno
|
||
; 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?
|