- Completely removed floating notification element from DOM - Fixed issue where notification would not disappear - Added aggressive cleanup of localStorage to prevent state persistence - Implemented DOM observer to prevent notification reappearance - Simplified update alert system to use dashboard-only notifications - Updated version to 2.0.12 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Transmission RSS Manager v2.0.12
A comprehensive web-based tool to automate and manage your Transmission torrent downloads with RSS feed integration, intelligent media organization, and enhanced security features. Now with automatic updates and easy installation!
Update System Requirements
To use the automatic update system, the following requirements must be met:
- Git must be installed: The update system uses Git to fetch the latest version.
- Installation must be a Git repository: Your installation directory must be a Git repository clone.
- Internet connectivity: The server must be able to connect to the Git repository.
If you installed using the bootstrap installer, these requirements should be met automatically. If you experience issues with the update system, please ensure Git is properly installed and accessible to the application.
Changelog
v2.0.12 (2025-03-10)
- Fixed: Removed persistent floating update notification that wouldn't disappear
- Fixed: Major localStorage cleanup to prevent notification state persistence
- Improved: Complete rewrite of update notification system to use dashboard-only alerts
- Improved: Added DOM cleanup to remove any rogue notification elements
v2.0.11 (2025-03-10)
- Fixed: Fixed update button persistence with advanced floating notification
- Fixed: Resolved version display issues with direct package.json reading
- Fixed: Improved update process for better version reporting
- Fixed: Resolved conflict between test mode and actual update status
- Added: Refresh button on update notification for easier version checking
- Added: Clear test mode indicators to prevent confusion
- Improved: Enhanced cache busting for more reliable version checking
- Improved: Better user feedback during update process
v2.0.10 (2025-03-10)
- Fixed: Fixed "fs.existsSync is not a function" error in update check
- Improved: Better error handling for git repository checks
- Improved: More robust file system operations for update detection
v2.0.9 (2025-03-07)
- Fixed: Update button now appears properly on dashboard
- Fixed: Remote Transmission connection issues resolved
- Fixed: Improved connection test with better error handling
- Added: System status and update endpoints for version checking
- Improved: Update detection and notification on dashboard
- Improved: Better error handling for git operations
v2.0.8 (2025-03-07)
- Fixed: Module import issues on fresh installations with proper file extension handling
- Fixed: Adding compatibility symlinks for different module naming styles
- Improved: Server.js now uses consistent module import paths with .js extensions
- Improved: More robust module file handling in the installer
v2.0.7 (2025-03-07)
- Fixed: Installation directory handling with prompt for choosing install path
- Fixed: Bootstrap-installer now defaults to /opt/trans-install with user configuration option
- Improved: Better detection and usage of existing installation directories during updates
- Improved: Updated documentation to clarify default installation paths
v2.0.6 (2025-03-05)
- Added: Non-interactive mode support for scripted installations
- Improved: Remote Transmission configuration collection in install-script.sh
- Improved: Better handling of piped input for remote configuration details
- Improved: Added debug output to help troubleshoot configuration issues
- Note: When updating an existing installation, manual configuration of remote settings through the web interface may still be required
v2.0.5 (2025-03-05)
- Fixed: Config file now properly stored in /etc/transmission-rss-manager directory
- Fixed: Remote Transmission detection in install-script.sh
- Improved: Enhanced symlink handling between installation dir and config dir
- Improved: Better environment variable passing between install scripts
v2.0.4 (2025-03-05)
- Fixed: Remote transmission detection in installer
- Fixed: Configuration directory creation and permissions
- Fixed: Config file symlink now ensures application finds correct config location
v2.0.3 (2025-03-05)
- New: Configuration file now stored in
/etc/transmission-rss-manager/
- Improved: Installer creates config directory with proper permissions
- Improved: Application now stores path to installation directory for easier updates
v2.0.2 (2025-03-05)
- Fixed: Bug in installer that would prompt to install Transmission for remote configurations
- Improved: Better detection of remote vs local Transmission installations
- Improved: Installation process now checks the TRANSMISSION_REMOTE flag correctly
v2.0.1 (2025-03-05)
- New: Automatic detection of existing installations for seamless updates
- Improved: Enhanced update process that preserves existing configurations
- Improved: Installer now dynamically reads version from package.json
v2.0.0 (2025-03-05)
- Major: Completely redesigned installation system using git
- New: One-click update feature with version checking
- New: Automatic Transmission detection and installation
- New: System status dashboard with update notifications
- New: About page with developer information
- Improved: Better error handling for Transmission connection
- Fixed: Various UI bugs and responsiveness issues
v1.2.0 (2025-02-15)
- New: Enhanced media organization with better content detection
- New: Improved post-processor with configurable filtering
- Improved: Transmission client integration with better error handling
- Improved: UI enhancements for better usability
- Fixed: RSS feed parsing issues
- Fixed: Authentication problems in certain configurations
v1.0.0 (2025-01-10)
- Initial Release: Basic functionality for RSS feed monitoring
- New: Integration with Transmission BitTorrent client
- New: Web interface for managing torrents and feeds
- New: Post-processing capability for downloaded content
- New: Basic content categorization by media type
Features
- 🔄 RSS Feed Integration: Automatically download torrents from RSS feeds with customizable filters
- 📊 Torrent Management: Monitor and control your Transmission torrents from a clean web interface
- 📚 Intelligent Media Organization: Automatically categorize and organize downloads by media type
- 📖 Book & Magazine Sorting: Specialized processing for e-books and magazines with metadata extraction
- 📂 Post-Processing: Extract archives, rename files, and move content to appropriate directories
- 🔄 Remote Support: Connect to remote Transmission instances with local path mapping
- 🔒 Enhanced Security: Authentication, HTTPS support, and secure password storage
- 📱 Mobile-Friendly UI: Responsive design works on desktop and mobile devices
- 🔧 One-Click Updates: Built-in version checking and automated update system
- 🚀 Automatic Transmission Installation: Installs and configures Transmission if needed
Installation
Known Issues
- When updating an existing installation with Remote Transmission settings, you may need to manually configure the remote settings through the web interface after installation.
- The installer will properly detect and collect remote Transmission settings, but they may not be applied to the configuration file in update mode.
Prerequisites
- Ubuntu/Debian-based system (may work on other Linux distributions)
- Git 2.25.0 or later (will be automatically installed by the bootstrap installer if needed)
- Required for the automatic update system
- Must be available in the PATH of the user running the application
- Must have proper permissions to access the installation directory
- Internet connection (for downloading and updates)
- Required for Git operations during updates (fetching latest code)
- Outbound access to git.powerdata.dk repository server
System Requirements
- Memory: 512MB minimum, 1GB recommended
- CPU: Any modern processor (1GHz+)
- Disk: At least 200MB for the application, plus storage space for your media
- Network: Internet connection for RSS feed fetching and torrent downloading
Installation Directory
Note: By default, the application will be installed to /opt/trans-install
. During installation, you'll be prompted to choose a different directory if needed. If you're updating an existing installation, the installer will detect and use your current installation path.
Automatic Installation
The easiest way to install Transmission RSS Manager is with the bootstrap installer:
# Download the bootstrap installer
wget https://git.powerdata.dk/masterdraco/transmission-rss-manager/raw/main/bootstrap-installer.sh
# Make it executable
chmod +x bootstrap-installer.sh
# Run it with sudo
sudo ./bootstrap-installer.sh
The bootstrap installer will:
- Install git if needed
- Clone the latest version from the repository
- Run the main installer which guides you through configuration
- Set up the service and web interface
New in v2.0.0:
- The installer now detects if Transmission is installed and offers to install and configure it automatically if needed.
- The installer automatically detects existing installations and runs in update mode, preserving your existing configuration.
- When updating, only necessary files are modified while maintaining your custom settings and preferences.
Manual Installation
If you prefer to install manually:
-
Clone the repository:
git clone https://git.powerdata.dk/masterdraco/transmission-rss-manager.git cd transmission-rss-manager
-
Install dependencies:
npm install
-
Configure settings:
cp config.example.json config.json nano config.json
-
Start the server:
# Using the convenience script (recommended) ./scripts/test-and-start.sh # Or start with debug logging ./scripts/test-and-start.sh --debug # Or run in foreground mode ./scripts/test-and-start.sh --foreground # Or start directly node server.js
Configuration
Main Configuration Options
The system can be configured through the web interface or by editing the configuration file, which is located at /etc/transmission-rss-manager/config.json
(or at the application's installation directory as a fallback):
{
"installPath": "/opt/transmission-rss-manager",
"transmissionConfig": {
"host": "localhost",
"port": 9091,
"username": "transmission",
"password": "password",
"path": "/transmission/rpc"
},
"destinationPaths": {
"movies": "/mnt/media/movies",
"tvShows": "/mnt/media/tvshows",
"music": "/mnt/media/music",
"books": "/mnt/media/books",
"magazines": "/mnt/media/magazines",
"software": "/mnt/media/software"
},
"processingOptions": {
"enableBookSorting": true,
"extractArchives": true,
"renameFiles": true,
"ignoreSample": true
}
}
Remote Transmission Setup
For remote Transmission instances, configure the directory mapping:
"remoteConfig": {
"isRemote": true,
"directoryMapping": {
"/var/lib/transmission-daemon/downloads": "/mnt/transmission-downloads"
}
}
This maps paths between your remote Transmission server and the local directories.
Usage
Web Interface
The web interface provides access to all functionality and is available at:
http://your-server-ip
RSS Feed Management
- Go to the "RSS Feeds" tab in the web interface
- Click "Add Feed" and enter the RSS feed URL
- Configure optional filters for automatic downloads
- The system will periodically check feeds and download matching items
Managing Torrents
From the "Torrents" tab, you can:
- Add new torrents via URL or magnet link
- Start, stop, or delete existing torrents
- Monitor download progress and stats
Media Organization
The post-processor automatically:
- Waits for torrents to complete and meet seeding requirements
- Identifies the media type based on content analysis
- Extracts archives if needed
- Moves files to the appropriate category directory
- Renames files according to media type conventions
- Updates the media library for browsing
Book & Magazine Sorting
When enabled, the system can:
- Differentiate between books and magazines
- Extract author information from book filenames
- Organize magazines by title and issue number
- Create appropriate folder structures
Detailed Features
Automatic Media Detection and Processing
The system uses sophisticated detection to categorize downloads:
- Movies: Recognizes common patterns such as resolution (1080p, 720p) and release year
- TV Shows: Identifies season/episode patterns (S01E01) and TV-specific naming
- Music: Detects audio formats like MP3, FLAC, album folders
- Books: Identifies e-book formats (EPUB, MOBI, PDF) and author-title patterns
- Magazines: Recognizes magazine naming patterns, issues, volumes, and publication dates
- Software: Detects software installers, ISOs, and other program files
Enhanced Post-Processing
The post-processor automatically processes completed torrents that have met seeding requirements:
- Smart File Categorization: Automatically detects media type based on content analysis
- Intelligent Folder Organization: Creates category-specific directories and file structures
- Archive Extraction: Automatically extracts compressed files (.zip, .rar, .7z, etc.)
- File Renaming: Cleans up filenames by removing dots, underscores, and other unwanted characters
- Quality Management: Optionally replace existing files with better quality versions
- Seeding Requirements: Configurable minimum ratio and seeding time before processing
Robust Transmission Integration
The improved Transmission client integration provides:
- Enhanced Error Handling: Automatic retry on connection failures
- Media Information: Deep analysis of torrent content for better categorization
- Remote Support: Comprehensive path mapping between remote and local systems
- Torrent Management: Complete control over torrents (add, start, stop, remove)
- Performance Monitoring: Track download/upload speeds and other performance metrics
RSS Feed Filtering
Powerful filtering options for RSS feeds:
- Title matching: Regular expression support for title patterns
- Category filtering: Filter by feed categories
- Size limits: Set minimum and maximum size requirements
- Custom rules: Combine multiple criteria for precise matching
Remote Transmission Support
Full support for remote Transmission instances:
- Secure authentication: Username/password protection
- Path mapping: Configure how remote paths map to local directories
- Full API support: Complete control via the web interface
Updating
Using the Web Interface (New in v2.0.0)
The easiest way to update is through the web interface:
- Navigate to the Dashboard
- Look for the "System Status" section
- If an update is available, an "Update Now" button will appear
- Click the button to automatically update to the latest version
The system will:
- Back up your configuration
- Pull the latest code from the repository
- Install any new dependencies
- Restore your configuration
- Restart the service automatically
Troubleshooting Update Issues
If you encounter "Failed to connect to server" or similar errors when checking for updates:
-
Verify Git Installation: Ensure Git is properly installed
which git git --version # Should be 2.25.0 or higher
-
Check Repository Status: Verify the installation directory is a Git repository
cd /opt/transmission-rss-manager # Or your installation directory git status
-
Check Internet Connectivity: Make sure the server can connect to git.powerdata.dk
ping git.powerdata.dk curl -I https://git.powerdata.dk
-
Check Permissions: Ensure the application user has access to the Git repository
# Check ownership of the .git directory ls -la /opt/transmission-rss-manager/.git # If needed, fix permissions sudo chown -R www-data:www-data /opt/transmission-rss-manager # Adjust user as needed
-
Manual Update: If the web update still fails, try the manual update method from the command line
Using the Installer
You can also update by running the installer again:
# Navigate to the installation directory
cd /opt/transmission-rss-manager
# Run the installer with sudo
sudo ./main-installer.sh
The installer will:
- Detect your existing installation automatically
- Run in update mode
- Preserve all your existing configurations
- Update only the necessary files
- Restart the service with your updated installation
Using the Command Line
If you prefer to update via command line:
cd /opt/transmission-rss-manager
sudo scripts/update.sh
Use the --force
flag to force an update of dependencies even if no code changes are detected:
sudo scripts/update.sh --force
Manual Update
Alternatively, you can download and run the update script:
wget https://git.powerdata.dk/masterdraco/transmission-rss-manager/raw/main/scripts/update.sh
chmod +x update.sh
sudo ./update.sh
File Structure
transmission-rss-manager/
├── server.js # Main application server
├── modules/ # Modular components
│ ├── post-processor.js # Media processing module
│ ├── rss-feed-manager.js # RSS feed management module
│ ├── transmission-client.js # Transmission API integration
│ ├── config-module.sh # Installation configuration
│ ├── dependencies-module.sh # Dependency installation
│ ├── file-creator-module.sh # File creation for installation
│ ├── service-setup-module.sh # Service setup
│ └── utils-module.sh # Utility functions
├── bootstrap-installer.sh # Minimal installer that clones the repository
├── main-installer.sh # Main installation script
├── config.json # Configuration file
├── scripts/ # Utility scripts
│ ├── update.sh # Update script
│ └── test-and-start.sh # Test and start script
├── public/ # Web interface files
│ ├── index.html # Main web interface
│ ├── js/ # JavaScript files
│ │ ├── app.js # Core application logic
│ │ └── utils.js # Utility functions
│ └── css/ # CSS stylesheets
│ └── styles.css # Main stylesheet
└── README.md # This file
Modules
Post-Processor
The Post-Processor module handles:
- Monitoring completed torrents
- Categorizing content by type
- Extracting archives
- Organizing files into the correct directories
- Renaming files according to conventions
RSS Feed Manager
The RSS Feed Manager module provides:
- Regular checking of configured RSS feeds
- Filtering of feed items based on rules
- Automated downloading of matching content
- History tracking of downloaded items
Advanced Configuration
Seeding Requirements
Set minimum seeding requirements before processing:
"seedingRequirements": {
"minRatio": 1.0,
"minTimeMinutes": 60,
"checkIntervalSeconds": 300
}
Security Settings
Enable authentication and HTTPS for secure access:
"securitySettings": {
"authEnabled": true,
"httpsEnabled": true,
"sslCertPath": "/path/to/ssl/cert.pem",
"sslKeyPath": "/path/to/ssl/key.pem",
"users": [
{
"username": "admin",
"password": "your-hashed-password",
"role": "admin"
},
{
"username": "user",
"password": "your-hashed-password",
"role": "user"
}
]
}
Note: Passwords are automatically hashed on first login if provided in plain text.
Processing Options
Customize how files are processed:
"processingOptions": {
"enableBookSorting": true,
"extractArchives": true,
"deleteArchives": true,
"createCategoryFolders": true,
"ignoreSample": true,
"ignoreExtras": true,
"renameFiles": true,
"autoReplaceUpgrades": true,
"removeDuplicates": true,
"keepOnlyBestVersion": true
}
Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License.
Acknowledgments
- Transmission for the excellent BitTorrent client
- Node.js and the npm community for the foundation libraries
- All contributors who have helped improve this project