View RawView Markdown
## [1.1.19] - 2025-09-27

### Security

- **Process Manager Migration**: Complete migration from supervisor to s6-overlay
  - **BREAKING**: Removed supervisor completely due to multiple security vulnerabilities (CVE-2023-27482)
  - Implemented s6-overlay v3 as secure container-native process supervisor
  - Eliminated Python runtime dependency reducing attack surface by ~50MB
  - Enhanced container lifecycle management with proper PID 1 handling
  - Improved signal forwarding and zombie process reaping
  - Container now exits properly when services fail (better health reporting)
- **Docker Image Hardening**: Addressed additional security vulnerabilities
  - Replaced `unzip` with `p7zip` to eliminate CVE-2008-0888 vulnerability
  - Updated base Alpine Linux image to `alpine3.22` for latest security patches
  - Enhanced container security posture with minimal attack surface
  - Improved archive handling capabilities with more robust tooling

### Enhanced

- **Application Architecture**: Restructured core components for better maintainability
  - Moved `IndexerCache` class from main index.php to dedicated endpoint `.indexer_files/php/IndexerCache.php`
  - Relocated `URLRouter` class from main index.php to dedicated endpoint `.indexer_files/php/URLRouter.php`
  - Improved code organization with cleaner separation of concerns
  - Enhanced modularity for easier maintenance and debugging
- **Page Title Display**: Improved contextual title generation
  - Changed title format from full path display (`Index of /example/folder`) to simplified folder name (`folder`)
  - Added special handling for root folder indexing displaying "5q12 Indexer" as title
  - Enhanced user experience with cleaner, more focused page titles
  - Reduced visual clutter in browser tabs and bookmarks

### Fixed

- **URL Routing Consistency**: Resolved manual URL generation issues across interface components
  - Fixed "Close" button on share popups to use proper URL routing instead of manual generation
  - Corrected "options-menu" button URL handling for consistent navigation
  - Fixed all options in "options-dropdown" to utilize centralized URL routing system
  - Improved URL consistency and reduced potential for broken links

### Configuration

- **Docker Environment Integration**: Comprehensive configuration management through environment variables
  - Added support for `config.json` configuration via Docker Compose environment variables
  - New environment variable support includes:
    - `INDEXER_ACCESS_URL`: Set application base URL
    - `INDEXER_CACHE_TYPE`: Configure caching mechanism (json)
    - `INDEXER_ICON_TYPE`: Set icon display mode (minimal)
    - `INDEXER_DISABLE_FILE_DOWNLOADS`: Control file download functionality
    - `INDEXER_DISABLE_FOLDER_DOWNLOADS`: Control folder download functionality
    - `INDEXER_INDEX_HIDDEN`: Toggle hidden file indexing
    - `INDEXER_INDEX_ALL`: Enable comprehensive file indexing
    - `INDEXER_DENY_LIST`: Specify excluded paths and patterns
    - `INDEXER_ALLOW_LIST`: Specify included paths and patterns
    - `INDEXER_INDEX_FILETYPE_PHP`: Control PHP file indexing
    - `INDEXER_VIEW_FILETYPE_JS`: Enable JavaScript file viewing
    - `INDEXER_INDEX_FILETYPE_MD`: Control Markdown file indexing
    - `INDEXER_VIEW_FILETYPE_MD`: Enable Markdown file viewing
  - Enhanced Docker deployment flexibility with comprehensive configuration options
  - Simplified container orchestration with environment-based configuration

### Performance

- **S6-Overlay Process Management**: Optimized container startup and resource usage
  - Faster container startup compared to supervisor-based images
  - Reduced memory footprint with elimination of Python runtime
  - More efficient process supervision with C-based s6 implementation
  - Better resource utilization in containerized environments
- **PHP Endpoint Management**: Optimized file handling for containerized deployments
  - Enhanced initialization script with special handling for `.indexer_files/php/` directory
  - Automatic recreation of PHP files ensures up-to-date functionality across container restarts
  - Improved reliability of core application components in Docker environments
  - Reduced potential for stale file issues in containerized deployments

### Technical Implementation

- **S6-Overlay Service Architecture**: Modern container-native process supervision
  - Implemented dedicated s6 service definitions for nginx and php-fpm
  - Added comprehensive initialization service with enhanced configuration merging
  - Proper service dependency management ensuring correct startup order
  - Container-native signal handling and graceful shutdown procedures
- **URL Router Architecture**: Centralized URL handling system
  - Eliminated manual URL construction throughout application
  - Improved consistency in link generation across all interface components
  - Enhanced maintainability with single point of URL logic control
  - Better support for future URL structure modifications
- **Container Optimization**: Streamlined Docker image management
  - Migrated from supervisord.conf to s6-overlay service definitions
  - Enhanced entrypoint script logic now integrated into s6 initialization service
  - Better integration between host configuration and container runtime
  - Enhanced debugging capabilities for containerized deployments
  - Optimized startup performance with efficient file system operations

### Migration Notes

- **Breaking Change**: Containers built with this version no longer use supervisor
- **Security Improvement**: Eliminated multiple CVEs associated with supervisor package
- **Performance Gain**: Reduced container size and improved startup times
- **Industry Standard**: Now using s6-overlay (same as LinuxServer.io, Home Assistant)
- **Compatibility**: All existing functionality preserved during process manager migration

### Backward Compatibility

- **Configuration Migration**: Seamless transition for existing deployments
  - All existing configurations remain fully functional
  - New environment variable configuration supplements rather than replaces existing methods
  - Docker deployments maintain compatibility with previous image versions (except process manager)
  - Non-Docker deployments unaffected by containerization improvements
- **API Compatibility**: No changes to user-facing functionality
  - All web interface features remain identical
  - File browsing, downloading, and viewing functionality unchanged
  - URL structure and routing behavior preserved