Go CLI tool to quickly set up isolated, reproducible OroCommerce development environments.
10K+
Orobox is a command-line tool (CLI) developed in Go to quickly set up an isolated and reproducible development environment for OroCommerce. It supports the development of individual bundles, the entire application project, or the creation of a local demo/production environment.
WARNING: This tool is designed EXCLUSIVELY for local development. It MUST NOT be used in production environments. Orobox configures the environment to facilitate debugging and development, which may not comply with security requirements and best practices necessary for a production environment.
Before installing Orobox, make sure you have installed on your system:
Run the following command in your terminal. It will automatically detect your operating system and architecture:
curl -sSfL "https://github.com/algoritma-dev/orobox/releases/download/0.0.7-dev/orobox_$(uname -s)_$(uname -m | sed 's/aarch64/arm64/')" -o ~/.local/bin/orobox && chmod +x ~/.local/bin/orobox && hash -r
Note: Make sure ~/.local/bin is in your PATH.
Run the following command in PowerShell:
mkdir -Force "$HOME\.local\bin"; iwr "https://github.com/algoritma-dev/orobox/releases/download/0.0.7-dev/orobox_Windows_$($env:PROCESSOR_ARCHITECTURE.ToLower().Replace('amd64','x86_64')).exe" -OutFile "$HOME\.local\bin\orobox.exe"
Note: Make sure to add %USERPROFILE%\.local\bin to your User Path environment variable.
.orobox.yaml)Orobox uses a configuration file called .orobox.yaml in the root of your bundle or project. If the file does not exist, the init command will guide you through its interactive creation.
Example .orobox.yaml file:
type: bundle # Can be: bundle, project, demo
class: MyBundle
namespace: MyVendor\Bundle\MyBundle
oro_version: "6.1"
domains:
- host: oro.demo
root: public
ssl: false
services:
redis: true
redisinsight: true
mailpit: true
php:
xdebug: true
rabbitmq: true
elasticsearch: false
kibana: false
adminer: true
type: Defines the installation type.
bundle (default): Optimized for developing a single bundle. Maps local code to /var/www/oro/src/<Namespace>.project: For developing an entire OroCommerce application. Maps the entire local project to /var/www/oro.demo: Environment similar to production (ORO_ENV=prod). Xdebug, Mailpit, and other dev tools are disabled.class: (Only for type: bundle) Name of the bundle class.namespace: (Only for type: bundle) PHP namespace of the bundle.oro_version: OroCommerce version (e.g., "7.0", "6.1", "6.0", "5.1").domains: List of domains for the environment.services: Configuration for optional services and tools:
redis: (bool) Enable/disable Redis.redisinsight: (bool) Enable/disable RedisInsight.mailpit: (bool) Enable/disable Mailpit.rabbitmq: (bool) Enable/disable RabbitMQ.elasticsearch: (bool) Enable/disable Elasticsearch/OpenSearch.kibana: (bool) Enable/disable Kibana (only if Elasticsearch is enabled).adminer: (bool) Enable/disable Adminer (PostgreSQL manager).php:
xdebug: (bool) Enable/disable Xdebug.Note: Versions of PHP, PostgreSQL, Node.js, and other components are automatically determined by the oro_version setting and cannot be changed manually.
These options can be used with any command:
--config: Specifies an alternative configuration file (default: .orobox.yaml).The main command is oro (or orobox, depending on how you installed it).
init)Prepares the development environment in your bundle or project repository.
orobox init
This command:
.orobox.yaml file if missing (interactive mode).Options:
--type, -t: Installation type (bundle, project, demo).--bundle-path, -b: Bundle path (default ".").--oro-version, -v: OroCommerce version to use (default "6.1").--bundle-namespace, -n: Bundle namespace (e.g., "MyVendor/Bundle/MyBundle").up)Starts Docker containers and configures OroCommerce.
orobox up
The command dynamically generates the docker-compose.yml file, starts the services, and proceeds with the environment installation or update.
down)Shuts down the Docker services associated with the project.
orobox down
shell)Accesses a container in interactive mode (default: php).
orobox shell
logs)Displays logs from different services in the development environment. At least one flag must be specified.
orobox logs --app
Options:
--nginx: Nginx logs.--php: PHP-FPM logs.--app: Symfony/OroCommerce logs.--consumer: Consumer logs.--cron: Cron logs.--ws: WebSocket logs.console)Executes Symfony commands in the application container.
orobox console cache:clear
test)Runs PHPUnit tests within the configured environment.
orobox test
clean)Removes all associated containers and volumes to start from scratch.
orobox clean
Orobox includes Xdebug preinstalled, but disabled by default to maintain performance.
Note: Xdebug is always disabled in type: demo mode.
To enable Xdebug for your environment, set xdebug: true under services.php in the .orobox.yaml file:
services:
php:
xdebug: true
After changing this setting, run orobox up to apply the configuration.
By default, enabling Xdebug in .orobox.yaml activates it for FPM (web requests) and interactive CLI commands (e.g., orobox console).
For debugging background processes, you can manually set these variables in your .env file:
ORO_CONSUMER_XDEBUG_ENABLED=true: For Message Queue consumers.ORO_CRON_XDEBUG_ENABLED=true: For Cron jobs.After updating the .env file, restart the environment with orobox up.
To debug with PHPStorm:
Settings -> PHP -> Servers and add a new server:
oro.demo or your custom domain in .orobox.yaml).80 (or 443 if using SSL).type: bundle: /var/www/oro/src/<BundleNamespace> (e.g., /var/www/oro/src/MyVendor/Bundle/MyBundle).type: project: /var/www/oro.Settings -> PHP -> Debug is set to 9003.The Orobox environment typically includes:
If you want to contribute to Orobox, you can use the provided Makefile to simplify common tasks.
make lint
make test
make build
make set-version v=X.Y.Z
Developed to simplify the work of OroCommerce developers.
Content type
Image
Digest
sha256:0c222eb6c…
Size
435.1 MB
Last updated
17 days ago
docker pull algoritmadev/orobox:7.0-bundle-latest