This project is not covered by Drupal’s security advisory policy.
🤖 Development & AI Disclosure
This module was developed with the assistance of AI tools for scaffolding and prototyping, directed, reviewed, tested, and actively maintained by the author. Community feedback, code reviews, and issue queue contributions are warmly welcomed.
Full documentation is at https://blogs.jamesrome.net/download-tracker
Install using Composer
composer require drupal/download_tracker
drush pm:install download_trackerFeatures
Download Tracker is a high-performance Drupal module that monitors administrator-configured server directories for file changes and software releases, tracks file reads and downloads, and automatically categorizes downloads into New Users, Version Updates, and Repeat Downloads
📂 Watched Directory Management: Monitor any server folder (e.g., /sites/default/files/release, public://release, private://documents).
👥 Role-Based Download Control: Granular access permissions per directory (e.g. restrict to Authenticated users or leave open for Anonymous visitors).
🔐 Report Permissions in UI: Conveniently configure which roles can view analytics directly from the module settings page.
⚡ Intelligent Version Auditing: Automatically computes SHA-256 integrity hashes on disk to detect file updates and increment release versions (v1→v2→ v3...).
📊 Visual Analytics Dashboard:
- High-level summary metrics cards (Total Files, Total Hits, New vs. Update vs. Repeat).
- Interactive data table with multi-column sorting across all metrics.
- Drill-down per-file audit trail with SHA-256 version history and chronological access logs (IP, User ID, Referrer, User-Agent).
- One-click CSV Export.
New in Version 1.0.6:
- Added recency badges (1 day: Red, 2 days: Green, 3 days: Blue) for file modifications and downloads.
- Added an Activity Key above both the overview table and detail tables.
- Added a sortable Last Downloaded column to the overview table and CSV export.
- Highlighted version history and download access logs by recency.
- Updated CSS, .cspell.json, and README.md.
🛡️ Transparent Static Link Redirection: Direct links to static file paths (e.g. https://example.com/sites/default/files/release/app.exe) automatically redirect to the tracker endpoint so no download is missed.
🤖 Bot & Crawler Filtering: Automatically filters out search engine spiders (Google, Bing, Yandex, etc.) to keep your metrics clean.
Post-Installation
Configuration
Navigate to Configuration
→Media
→Download Tracker (/admin/config/media/download-tracker):
- Report Access Permissions: Check the roles permitted to view reports and statistics.
- Watched Directories: Configure your folders:
- Machine Key: e.g., release
- Label: e.g., Software Releases
- Directory Path: e.g., /sites/default/files/release or public://release
- Allowed Roles: Select roles allowed to download, or leave unchecked for open public access.
3. Click Save and Scan Directories Now.
TIP
Both standard paths with leading slashes (/sites/default/files/...), relative paths (sites/default/files/...), and Drupal stream wrappers (public://..., private://...) are automatically supported.
Additional Requirements
No
Recommended modules/libraries
No
Similar projects
Supporting this Module
I have a PayPay account: jamesrome@gmail.com if you wish to contribute.
Community Documentation
Full documentation is at https://blogs.jamesrome.net/download-tracker
Note
Automatic Static URL Interception: If users or external sites access legacy direct links like https://example.com/sites/default/files/release/mycode_v1.0.exe, the module automatically intercepts the request, routes it through the tracker to count the hit, and streams the file immediately.
📈 Reports & Analytics
See above image for meanings of the columns
⚙️ Drush CLI Integration
Command : Alias: Description
drush download-tracker:scan drush dt-scan Manually triggers a scan across all watched directories to catalog new files or version bumps.
Project information
- Project categories: Administration tools, Developer tools
1 site reports using this module
- Created by tjtj on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
Add recency-based color coding and Activity Key to reports




