AppImage Updater¶
A service for automating the finding and downloading of AppImage applications from their respective websites.
AppImage Updater monitors configured applications (like FreeCAD, OrcaSlicer, etc.) for new releases and provides an automated way to download updated AppImage files from GitHub releases and other sources.
Features¶
- Automated Updates - Monitor GitHub repositories for new releases
- Distribution-Aware Selection - Intelligent selection of best compatible distribution package
- Smart Pattern Matching - Flexible regex patterns to identify correct AppImage files
- Intelligent Pattern Generation - Smart regex creation from actual GitHub releases
- ZIP Archive Support - Automatic extraction of AppImages from ZIP files
- Prerelease Detection - Automatic detection of continuous build repositories
- Multi-Distribution Support - Handle Ubuntu, Fedora, Debian, Arch, and other distributions
- Checksum Verification - SHA256, SHA1, and MD5 checksum validation for security
- File Rotation - Keep multiple versions with automatic cleanup (fixed naming)
- Symlink Management - Stable paths for applications through symbolic links
- Concurrent Downloads - Fast, parallel downloading with progress tracking
- GitHub Authentication - Token support for increased API rate limits
- Retry Logic - Exponential backoff for robust error handling
- Debug Mode - Comprehensive logging for troubleshooting
- Rich CLI - Beautiful terminal interface with colors and progress bars
- Interactive Selection - User-friendly menus for uncommon distributions
- Flexible Configuration - JSON-based configuration with global and per-app settings
Requirements¶
- Python 3.8+ - Required for async/await support
- Linux/macOS - Primary supported platforms
- Internet Connection - For GitHub API access and downloads
Quick Start¶
- Install the application (see Installation Guide for all methods):
- Add an application (configuration is created automatically):
- Check for updates:
For complete command documentation and advanced usage, see the Usage Guide.
Architecture Overview¶
graph TD
A[CLI Commands] --> B[Configuration Manager]
A --> C[GitHub Client]
A --> D[Version Checker]
A --> E[Downloader]
B --> F[JSON Config Files]
C --> G[GitHub API]
D --> H[Version Comparison]
D --> M[Distribution Selector]
E --> I[Concurrent Downloads]
E --> J[ZIP Extraction]
E --> K[Checksum Verification]
E --> L[File Rotation]
M --> N[System Detection]
M --> O[Compatibility Scoring]
M --> P[Interactive Selection]
Key Components¶
- Configuration System - Flexible JSON-based configuration supporting both single files and directory structures
- GitHub Integration - Robust GitHub API client with rate limiting and error handling
- Distribution Selector - Intelligent selection of compatible distribution packages with interactive fallback
- Version Management - Sophisticated version detection and comparison using semantic versioning
- Download Engine - Concurrent downloads with automatic ZIP extraction, progress tracking, and checksum verification
- File Management - Optional file rotation with configurable retention policies and symlink management
Documentation¶
User Guides¶
- Installation - Complete installation methods and troubleshooting
- Getting Started - Step-by-step tutorial and basic usage
- Usage Guide - Complete CLI command reference
- Examples - Practical usage patterns and workflows
- Configuration - Advanced configuration options
Feature Guides¶
- ZIP Support - Handling applications distributed in ZIP files
- Rotation Guide - File rotation and symlink management
- Compatibility - Distribution compatibility and selection
Support & Maintenance¶
- Security Guide - Authentication, checksums, and security best practices
- Troubleshooting - Common issues, solutions, and diagnostics
- Changelog - Version history and release notes
Developer Resources¶
- Architecture - System design and component overview
- Developer Commands - Task automation and development tools
- Development - Setting up development environment
- Testing - Running tests and quality checks
- Contributing - Guidelines for contributing to the project
Getting Started¶
Ready to automate your AppImage updates? Head over to the Installation guide to get started, or check out the Getting Started tutorial for a walkthrough of the basic features.