- 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>
75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# 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
|
|
|
|
1. **Bootstrap Installer**
|
|
- Small, self-contained installer script
|
|
- Installs git if needed
|
|
- Clones the main repository
|
|
- Runs the main installer
|
|
|
|
2. **Main Installer**
|
|
- Modified to work with git-managed files
|
|
- Doesn't need to generate application files
|
|
- Only creates config files and sets up services
|
|
|
|
3. **Update System**
|
|
- Web interface shows current version
|
|
- Checks for updates automatically
|
|
- One-click update process
|
|
- Preserves user configuration
|
|
|
|
## Key Files
|
|
|
|
1. **bootstrap-installer.sh**
|
|
- Entry point for new installations
|
|
- Minimal script that pulls everything else from git
|
|
|
|
2. **update.sh**
|
|
- Located in the scripts/ directory
|
|
- Handles git pull and service restart
|
|
- Preserves local configuration changes
|
|
|
|
3. **System Status UI**
|
|
- Added to the dashboard
|
|
- Shows version, uptime, and connection status
|
|
- Notifies when updates are available
|
|
|
|
4. **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
|
|
|
|
1. **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
|
|
|
|
2. **Better User Experience**
|
|
- Users can see when updates are available
|
|
- One-click update process
|
|
- No need to manually download and run scripts
|
|
|
|
3. **Version Control**
|
|
- Clear versioning visible to users
|
|
- Update history preserved in git
|
|
- Easy rollback if needed
|
|
|
|
## Implementation Notes
|
|
|
|
This implementation preserves local configuration by:
|
|
1. Stashing local changes before pulling updates
|
|
2. Applying those changes back after the update
|
|
3. Handling any potential conflicts
|
|
|
|
The service automatically restarts after updates, ensuring users always have the latest version running.
|
|
|
|
## Next Steps
|
|
|
|
1. Update the GitHub repository structure to match this new approach
|
|
2. Test the installation and update process in a clean environment
|
|
3. Consider adding a changelog display in the UI to show what's new in each version |