Releases: dockergiant/rolldev
0.6.1
RollDev 0.6.1 Release Notes
🐛 Bug Fixes
Fixed restore and restore-full Commands Exiting Silently
The restore and restore-full commands were silently exiting with code 1 when run without the --verbose flag.
Root Cause:
The logVerbose() function used a conditional expression that returned exit code 1 when verbose mode was disabled:
# Before - returns exit code 1 when RESTORE_VERBOSE=0
[[ $RESTORE_VERBOSE -eq 1 ]] && logMessage INFO "$@"
# After - always returns exit code 0
[[ $RESTORE_VERBOSE -eq 1 ]] && logMessage INFO "$@" || trueWith set -e in the main roll script, this caused immediate termination.
Added Progress Output for Restore Commands
The restore and restore-full commands now show progress messages by default, so users can see what's happening without needing --verbose.
Before:
$ roll restore-full backup.tar.gz /path/to/project
$ # (no output, appeared to do nothing)After:
$ roll restore-full backup.tar.gz /path/to/project
INFO: Starting full restore from backup.tar.gz...
INFO: Extracting backup archive...
SUCCESS: Archive extracted
INFO: Available services in backup: db redis elasticsearch
INFO: Restoring services: db redis elasticsearch
INFO: Restoring source code...
SUCCESS: Source code restored
INFO: Restoring configuration files...
SUCCESS: Configuration restore completed
INFO: Restoring db volume...
SUCCESS: Successfully restored db volume
INFO: Signing SSL certificates for project.test...
SUCCESS: SSL certificates signed for project.test
SUCCESS: Restore completed successfully!
INFO: You can now start your environment with: roll env up📝 Files Changed
| File | Change |
|---|---|
commands/restore-full.cmd |
Fixed logVerbose() return code, added progress messages |
commands/restore.cmd |
Fixed logVerbose() return code, added progress messages |
🚀 Upgrade Instructions
-
Update RollDev:
brew upgrade dockergiant/roll/roll # or pull latest if installed from source -
Verify the fix:
roll restore-full backup.tar.gz /path/to/project # Should now show progress output
Full Changelog: 0.6.0...0.6.1
v0.6.1 • Restore Commands Fixed! 🔧
0.6.0
RollDev 0.6.0 Release Notes
✨ New Features
🔄 Traefik v3 Compatibility
RollDev now fully supports Traefik v3 with updated routing syntax across all environments.
Subdomains routing now works correctly with the latest Traefik version.
Highlights:
- Updated HostRegexp Syntax: Migrated from Traefik v2
{subdomain:.+}to v3 regex format - All Environments Updated: nginx, varnish, magento2, and multistore configurations
- Seamless Upgrade: Just restart your environment to apply new routing rules
Breaking Change:
If you have custom .roll/roll-env.yml files with HostRegexp rules, update them:
# Old (Traefik v2) - no longer works
HostRegexp(`{subdomain:.+}.domain.test`)
# New (Traefik v3) - use this format
HostRegexp(`^.+\.domain\.test$$`)🔍 Verbose Mode for Restore Commands
Both restore and restore-full commands now support --verbose / -v flag for detailed debugging output. Perfect for troubleshooting restore issues.
Highlights:
- Detailed Logging: See exactly what's happening at each step
- Debug Information: Volume mappings, file paths, Docker commands
- Error Tracing: Easily identify where issues occur
Usage:
roll restore --verbose
roll restore --verbose 1737123456
roll restore-full -v backup.tar.gz /path/to/project
roll restore-full --verbose --force backup.tar.gz /path/to/project🔐 Automatic SSL Certificate Signing on Restore
The restore and restore-full commands now automatically sign SSL certificates for the environment domain after a successful restore. No more manual certificate signing!
Highlights:
- Auto-Detect Domain: Uses
TRAEFIK_DOMAINfrom restored configuration - Wildcard Support: Signs both
domain.testand*.domain.testcertificates - Traefik Reload: Automatically regenerates traefik config and restarts
What happens automatically:
roll restore-full backup.tar.gz /path/to/project
# After restore completes, RollDev automatically:
# 1. Signs certificate for project.test
# 2. Signs certificate for *.project.test
# 3. Regenerates traefik dynamic.yml
# 4. Restarts traefik to load new certificates📚 Enhanced Multi-Store Documentation
Added comprehensive documentation for the multistore command in Magento 2 environments.
Highlights:
- Help Integration:
multistorenow shows inroll --helpfor Magento 2 projects - Full Documentation: New "Multi-Store Configuration" section in Magento 2 docs
- Quick Start Guide: Step-by-step setup with examples
- Troubleshooting: Common issues and solutions
🐛 Bug Fixes
Fixed restore-full Command Failing on First-Time Restore
The restore-full command was silently exiting when restoring to a new/empty directory on Linux (Ubuntu).
Root Causes Fixed:
- Arithmetic Exit:
((var++))returns 0 when variable is 0, causingset -eto exit. Changed tovar=$((var + 1)) - Missing Config Handling:
stopEnvironment()now handles missing.env.rollgracefully instead of callingroll envcommands that fail
Fixed Help Flag Handling
Commands with arguments now properly support the --help flag.
Silenced macOS Extended Attribute Warnings
Suppressed the LIBARCHIVE.xattr.com.apple.provenance warnings that appeared on Linux when extracting backups created on macOS:
# Before: Spammed console with warnings
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance'
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance'
...
# After: Clean output
INFO: Extracting backup archive...
SUCCESS: Backup extracted📝 Files Updated for Traefik v3
| File | Change |
|---|---|
environments/includes/nginx.base.yml |
Updated HostRegexp syntax |
environments/includes/varnish.base.yml |
Updated HostRegexp syntax |
environments/magento2/magento2.base.yml |
Updated HostRegexp syntax |
commands/multistore.cmd |
Updated dynamic rule generation |
docs/configuration/multipledomains.md |
Updated examples |
🚀 Upgrade Instructions
-
Update RollDev:
brew upgrade dockergiant/roll/roll # or pull latest if installed from source -
Restart global services (gets Traefik v3):
roll svc down roll svc up
-
For each project, restart to apply new routing:
cd /path/to/project roll env down roll env up -
If using multistore, regenerate configuration:
roll multistore refresh roll env restart nginx
🎯 Benefits
- Traefik v3 Ready: Full compatibility with latest Traefik version
- Better Debugging: Verbose mode makes troubleshooting restores easy
- Smoother Restores: SSL certificates handled automatically
- Cross-Platform: Fixed restore issues on Linux/Ubuntu
Full Changelog: 0.5.2...0.6.0
v0.6.0 • Traefik v3 + Smoother Restores! 🔄🔐
0.5.2
RollDev 0.5.2 Release Notes
✨ New Features
🏪 Multi-Store Configuration Command
RollDev now includes a roll multistore command for automatic Magento multi-store setup.
Configure multiple storefronts with a simple JSON file - no manual YAML editing required.
Highlights:
- Simple JSON Configuration: Define hostname-to-store mappings in
.roll/stores.json - Auto-Generated Configs: Creates Traefik routing rules, nginx store mapping, and extra_hosts
- SSL Certificate Signing: Automatically signs certificates for all configured hostnames
- Zero Manual YAML: No need to manually edit
roll-env.ymlfor multi-store setups
Usage:
# Create .roll/stores.json with your store configuration
roll multistore init # First time setup - generates configs + signs SSL
roll multistore refresh # Regenerate after editing stores.json
roll multistore list # View current configuration
Configuration Example (.roll/stores.json):
{
"stores": {
"store-nl.test": "store_nl",
"store-be.test": "store_be",
"main.test": ""
},
"run_type": "store"
}📋 Environment Describe Command
New roll env describe command provides a DDEV-style overview of your environment.
Get instant visibility into running services, URLs, and configuration.
Highlights:
- Service Status Table: Shows all services with running/stopped status
- URL Overview: Lists all configured project URLs including multi-store domains
- Environment Info: Displays PHP, Node, Composer versions at a glance
- Clean Table Layout: DDEV-inspired bordered table format with color-coded status
Usage:
roll env describe # or just: roll describe
Output Example:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Project: myproject /path/to/project │
│ Domain: https://app.myproject.test │
│ Type: magento2 PHP 8.4 | Node 22 │
│ Router: traefik │
├──────────────┼──────────┼─────────────────────────────────┼─────────────────┤
│ SERVICE │ STATUS │ URL/PORT │ INFO │
├──────────────┼──────────┼─────────────────────────────────┼─────────────────┤
│ nginx │ running │ https://app.myproject.test │ magento2 │
│ php-fpm │ running │ InDocker: php-fpm:9000 │ PHP 8.4 │
│ db │ running │ InDocker: db:3306 │ mariadb:10.4 │
│ redis │ running │ InDocker: redis:6379 │ Redis 7.2 │
│ opensearch │ running │ InDocker: opensearch:9200 │ OS 2.5 │
└──────────────┴──────────┴─────────────────────────────────┴─────────────────┘🐛 Bug Fixes
- Fixed nginx MAGE_RUN_CODE/MAGE_RUN_TYPE fastcgi parameters for multi-store support
- Added /etc/nginx/default.d/ directory in nginx image for custom store mappings
📝 Documentation
- Added roll multistore --help with comprehensive usage guide
- Added roll env describe --help documentation
🎯 Benefits
- Simplified Multi-Store: Configure multiple Magento stores in minutes, not hours
- Better Visibility: Instantly see environment status without running multiple commands
- DDEV Familiarity: Commands designed to feel familiar for DDEV users migrating to RollDev
Full Changelog: 0.5.1...0.5.2
v0.5.2 • Multi-store made easy + environment visibility! 🏪📋
0.5.1
Full Changelog: 0.5.0...0.5.1
0.5.0
RollDev 0.5.0 Release Notes
✨ New Features
📊 New Relic Monitoring Integration
RollDev now includes first-class support for New Relic APM across all environments.
This allows developers to monitor PHP application performance with zero overhead when disabled.
Highlights:
- Global & Project-Level Configuration: Set license key once globally or override per project.
- Conditional Loading: New Relic PHP agent is installed but only activated when
ROLL_NEWRELIC=1. - Auto App Naming: Default app names follow the
RollDev-LocalEnv-{project}pattern. - Local Dev Optimized: Raw SQL queries, 1ms thresholds, and enhanced debugging.
- Cross-Environment Support: Magento, Symfony, Laravel, WordPress, TYPO3, Akeneo, Shopware, PHP standalone, and more.
Documentation: [New Relic Monitoring Guide](docs/configuration/newrelic.md)
🗑️ Removed
- Blackfire Profiling Documentation was removed from the repository.
RollDev is now focused on New Relic for monitoring, though you can still use custom setups externally.
📝 Documentation
- Added comprehensive New Relic setup guide with examples for enabling/disabling.
- Updated
services.mdwith New Relic service profile information. - Inline comments added to all
init.envfiles for quick setup.
🎯 Benefits
- Performance Insights: Gain full APM capabilities for PHP projects in local and staging environments.
- Flexibility: Configure once globally or fine-tune per project.
- Zero Overhead: Disabled by default, no performance cost until explicitly enabled.
- Unified Monitoring: Standardized setup across all supported environments.
Command Help:
# Enable New Relic for a project
echo "ROLL_NEWRELIC=1" >> .env
roll restartFull Changelog: [0.4.3...0.5.0](0.4.3...0.5.0)
v0.5.0 • New Relic integration brings powerful APM to RollDev! 🚀
0.4.3
RollDev 0.4.3 Release Notes
🐛 Bug Fixes
🛠️ Status Command Fix
Fixed a critical bug in the roll status command that caused crashes when no projects were running.
Problem: The status command would fail with projectNetworkList: bad array subscript error when executed with no running RollDev projects.
Solution: Added proper array bounds checking before accessing array elements, preventing the crash when the project list is empty.
Impact: The roll status command now works reliably in all scenarios, whether projects are running or not.
📝 Documentation
- Updated README with latest information
🎯 Benefits
- Improved Reliability: Status command no longer crashes in empty environments
- Better Developer Experience: Consistent behavior regardless of project state
- Error Prevention: Proper bounds checking prevents similar issues
Command Help: roll status
Full Changelog: 0.4.2...0.4.3
v0.4.3 • Status command now handles empty environments gracefully! 🎉
0.4.2
RollDev 0.4.2 Release Notes
🔄 Changed
📦 Elasticvue: Switched to Official Image with Auto-Import Support
We’ve replaced our custom Elasticvue fork (rollupdev/elasticvue) with the official image:
cars10/elasticvue:latest
Thanks to cars10/elasticvue#254, predefined clusters defined via ELASTICVUE_CLUSTERS are now automatically imported on launch, eliminating the need for manual setup or clicks.
This perfectly matches our use case for scripted local development environments, making our previous workaround obsolete. Elasticvue is now seamlessly integrated into every dev project with zero user interaction required.
In addition, by switching to the latest upstream version, Elasticvue in RollDev is now fully compatible with Elasticsearch 8+, ensuring support for modern clusters out of the box.
🙏 Special thanks to [@cars10](https://github.com/cars10)
for implementing this feature and actively engaging with community feedback, it’s a huge quality-of-life improvement for automated dev setups!
Full changelog:
0.4.1...0.4.2
0.4.1
RollDev 0.4.1 Release Notes
🔧 Improvements
🛠️ Magento 2 Init Fixes
Resolved a Magento 2.4.8+ 2FA configuration bug in magento2-init
Implements workaround for Adobe Commerce core issue #39836 where using
--lock-env with twofactorauth/general/force_providers causes DuoSecurity
provider to fail due to array vs string storage mismatch in env.php.
Command Help: roll magento2-init --help
Full Changelog: 0.4.0...0.4.1
0.4.0
RollDev 0.4.0 Release Notes
🆕 New Feature
🎛️ RedisInsight GUI Support (Docker Stack)
RollDev now includes RedisInsight, a powerful GUI tool for Redis database management.
What’s new:
-
✅ RedisInsight Enabled by Default in:
- Laravel
- Magento 2
- Shopware
- Symfony
- TYPO3
-
✅ Accessible via Browser: Automatically available in the Docker stack, no manual setup required.
-
✅ Centralized Management: Monitor, inspect, and debug Redis data visually.
🔧 Improvements
🔁 Redis Configuration Standardized
- Switched to semantic versioning for Redis (
8.0instead of8) for improved version detection and Docker image handling. - Dragonfly/Valkey fallback removed: Standard Redis is now used across all Magento 2 setups for maximum compatibility.
- Cleaner and more robust Redis configuration logic in all environments.
🔍 OpenSearch & Elasticsearch Version Handling Improved
- Unified version handling for OpenSearch vs Elasticsearch
- Cleaned up redundant version flags and improved substitution logic in Docker services
- Reduces confusion and improves maintainability
🛠️ Magento 2 Init Fixes
-
Several bugfixes in
magento2-init:- Fixed Redis compatibility for Magento by always defaulting to standard Redis
- Improved version parsing and error handling
- Better logic flow for service bootstrapping
🎯 Benefits
- Visual Redis Management: Debugging sessions and cache issues is now far easier
- Improved Stability: Consistent Redis stack for all supported frameworks
- Better Developer Experience: Cleaner configuration, fewer surprises, more control
Command Help: roll magento2-init --help
Full Changelog: 0.3.2...0.4.0
0.3.2
RollDev 0.3.2 Release Notes
🆕 New Feature
magento2-init – Automated Magento 2 Project Setup
A brand-new command that fully automates the Magento 2 project setup process.
Usage:
roll magento2-init <projectname> [version]Features:
-
✅ Version Support: Magento 2.4.5+ including all patch versions (e.g.,
2.4.7-p3) -
✅ Smart Compatibility: Automatically selects the correct PHP, MariaDB, Elasticsearch/OpenSearch, Redis, RabbitMQ, and Composer versions
-
✅ OpenSearch Support: Full support for OpenSearch with Magento 2.4.8+
-
✅ 10-Step Automation:
- Environment initialization
- SSL certificate generation
- Docker services startup
- Composer installation
- Database configuration
- Redis configuration
- Search engine setup
- Magento installation
- Admin user creation + 2FA
- Service health checks
Examples:
roll magento2-init mystore # Latest version
roll magento2-init mystore 2.4.7 # Specific version
roll magento2-init mystore 2.4.7-p3 # Patch version🔧 Technical Details
- Host Git Integration: Git operations run on the host machine for SSH key access
- Fallback Mechanism: Automatically falls back to Elasticsearch 7 if OpenSearch fails
- Service Verification: Health checks for database, search engine, and Redis
- Variable Scope Fix: Embedded parameters in Bash commands for reliable execution
🎯 Benefits
- Time Saving: Setup time reduced from hours to minutes
- Error Reduction: Automated configuration eliminates manual mistakes
- Consistency: Identical setup for all developers
- Version Flexibility: Supports Magento 2.4.5 and newer, including patch releases
Command Help: roll magento2-init --help
Full Changelog: 0.3.1...0.3.2