emedia / oxygen-installer
Oxygen application installer.
Requires
- php: ^8.3
- ext-json: *
- ext-zip: *
- symfony/console: ^6.2|^7.0
- symfony/filesystem: ^6.2|^7.0
- symfony/process: ^6.2|^7.0
- symfony/var-dumper: ^6.2|^7.0
Requires (Dev)
- phpunit/phpunit: ^8.0|^9.3
- squizlabs/php_codesniffer: ^3.5
Suggests
- hirak/prestissimo: Speed up composer installations by 10x.
This package is auto-updated.
Last update: 2026-05-09 07:01:13 UTC
README
Oxygen Installer downloads Laravel, installs Oxygen, and prepares the project so you can start from a working Oxygen application instead of wiring the stack together by hand.
Version Compatibility
| Installer Line | Latest Package | Default Target | Optional --o_version Targets |
|---|---|---|---|
5.x | 5.0.0 | Oxygen v9 / Laravel v13 | 7, 8, 9, dev |
4.x | 4.0.x | Oxygen v8 / Laravel v12 | 4, 5, 6, 7, 8, dev |
2.x | 2.2.x | Oxygen v7 / Laravel v10 | 5, 6, 7, dev |
version/v1.x | 1.x | Oxygen v4 / Laravel v7 | 4 |
See CHANGELOG.md for release history.
Requirements
- PHP
^8.3 - Composer
- Git
- Node.js and NPM, unless you use
--no-npm
Getting Started
Installation / Update
Install the latest Oxygen Installer globally with Composer:
composer global require emedia/oxygen-installer
The current release is 5.0.0.
Make sure Composer's global vendor bin directory is on your $PATH. Common locations are:
macOS: $HOME/.composer/vendor/bin
Windows: %USERPROFILE%\AppData\Roaming\Composer\vendor\bin
GNU / Linux Distributions: $HOME/.config/composer/vendor/bin or $HOME/.composer/vendor/bin
You can also find Composer's global installation path by running composer global about and checking the first line.
After installation, confirm the version:
oxygen -v
Create a Project
The default install path on 5.x is Laravel 13 with Oxygen 9:
oxygen new myproject
You can also provide common project settings in one command:
oxygen new myproject --name "My Project" --dev_url "localhost.test" --dbname mydatabase --dbuser john --dbpass mypassword --mailuser smtp_username --mailpass smtp_password
Change Oxygen / Laravel Version
Use --o_version when you need an older compatible Oxygen release:
# Install Laravel 13 + Oxygen 9 (default)
oxygen new myproject
# Install Laravel 12 + Oxygen 8
oxygen new myproject --o_version 8
# Install Laravel 10 + Oxygen 7
oxygen new myproject --o_version 7
# Install the dev branch
oxygen new myproject --o_version dev
Frontend Build Behavior
- For Oxygen 8, Oxygen 9, and newer dev builds, the installer runs
npm installand a singlenpm run dev. - Oxygen 7 keeps the previous double
npm run devbehavior. --no-npmskips Node.js and NPM checks entirely, and also skips all frontend install/build steps.
Available Options
| CLI Option | What it Does |
|---|---|
--o_version | Target Oxygen version (7 to 9 or dev) |
--name | Name of the project |
--email | Admin user's email address (to seed the database) |
--dev_url | VirtualHost's APP_URL |
--force | Force installation even if the target directory already exists |
--dbconn | Database connection |
--dbhost | Database host |
--dbport | Database port |
--dbname | Database name |
--dbuser | Database user |
--dbpass | Database password |
--mailer | Mail driver |
--mailhost | Mail host |
--mailport | Mail port |
--mailuser | Mail username |
--mailpass | Mail password |
--mailenc | Mail encryption |
--public_folder | Public folder name |
--no-npm | Skip Node.js / NPM checks and frontend build steps |
Contributing
See CONTRIBUTING.md for developer instructions.
Copyright
Copyright (c) 2026 Elegant Media.