MasterDraco f5404c241d Fix remote transmission detection in installer
- 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>
2025-03-05 00:35:42 +00:00

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

  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