- Fix bug in dependencies-module.sh that would prompt to install transmission-daemon for remote installations - Add checks for TRANSMISSION_REMOTE flag to correctly handle remote vs local installations - Update version to 2.0.2 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Git-Based Installation and Update System
We've restructured the Transmission RSS Manager to use a git-based approach for installation and updates. Here's how the new system works:
New Architecture
-
Bootstrap Installer
- Small, self-contained installer script
- Installs git if needed
- Clones the main repository
- Runs the main installer
-
Main Installer
- Modified to work with git-managed files
- Doesn't need to generate application files
- Only creates config files and sets up services
-
Update System
- Web interface shows current version
- Checks for updates automatically
- One-click update process
- Preserves user configuration
Key Files
-
bootstrap-installer.sh
- Entry point for new installations
- Minimal script that pulls everything else from git
-
update.sh
- Located in the scripts/ directory
- Handles git pull and service restart
- Preserves local configuration changes
-
System Status UI
- Added to the dashboard
- Shows version, uptime, and connection status
- Notifies when updates are available
-
Server Endpoints
/api/system/status
- Gets current version and system status/api/system/check-updates
- Checks if updates are available/api/system/update
- Triggers the update process
Benefits
-
Simplified Maintenance
- Single source of truth in the git repository
- No need to embed code in installation scripts
- Easy to make changes and publish updates
-
Better User Experience
- Users can see when updates are available
- One-click update process
- No need to manually download and run scripts
-
Version Control
- Clear versioning visible to users
- Update history preserved in git
- Easy rollback if needed
Implementation Notes
This implementation preserves local configuration by:
- Stashing local changes before pulling updates
- Applying those changes back after the update
- Handling any potential conflicts
The service automatically restarts after updates, ensuring users always have the latest version running.
Next Steps
- Update the GitHub repository structure to match this new approach
- Test the installation and update process in a clean environment
- Consider adding a changelog display in the UI to show what's new in each version