- Fixed a bug where the
create
command wasn’t setting correct environment variable names for Craft 4. (#464) - Fixed a bug where
opcache_validate_timestamps
wasn’t getting set correctly. (#435) - Fixed a bug where the
share
command wasn’t working with Ngrok 3. (#466) - Fixed an error that could occur when executing the
trust
command when using WSL. (#461)
- Added support for PHP 8.1.
- Added support for more Linux distributions when installing certificates. (#380, #414)
- Removed the
blackfire
command.
- Added the
db destroy
command, for removing database engines. (#325) - Added the ability to extend the Nginx configuration with a
nitro.conf
file at the root of a project. (#18)
- Added support for validating multiple hostnames with the
alias
command. (#341) - The
stop
command no longer returns an error code when no containers are running. (#336) - The
add
andcreate
commands now setDB_USER
andDB_PASSWORD
variables in the.env
file. (#310) - The
ls
command now outputs the internal and external ports for containers.
- Deprecated the
clean
command.apply
will automatically remove unused containers. - Deprecated the
validate
command.
- Fixed a bug where the
apply
command would not remove unused containers unless it was run twice. (#321) - Fixed a bug where the
container new
command didn’t allow entering a port. (#318)
- Added the
container remove
command. (#303) - Added the
ls
command, which outputs useful information about Nitro. - Added support for local certificates on Fedora, CentOS, and RHEL distributions.
- The
blackfire
,bridge
,iniset
,remove
,restart
,share
,ssh
,start
,stop
,xoff
, andxon
commands now accept a site argument. (#283, #320) - The
iniset
command now supports theopcache_validate_timestamps
setting. (#302) - The
db import
command now accepts a--name
flag. (#293) - The proxy container now exposes ports
3000
and3001
, for webpack dev server routes. - Improved support for Linux users and file permissions. (#308, #280, #264)
- Improved various commands’ output. (#316, #322)
- Fixed a bug where the
craft
andqueue
commands weren’t forwarding command flags to Craft. (#301) - Fixed a bug where sites’ Nginx configs weren’t getting updated when their web root was changed in
nitro.yaml
. (#326)
- Fixed a bug where the
initset
command wasn’t updating OPcache settings. (#298) - Fixed an error that was preventing Linux users from using Xdebug. (#288)
- Fixed a bug where the
trust
command output was mangled for Windows users. (#291) - Fixed a bug where command completion wasn’t working for ZSH shells. (#295)
- Added the
php
command, for executing PHP commands within a site container. (#276)
- Fixed a bug where MySQL permissions weren’t getting set properly. (#275)
- Fixed an error that could occur when paths included spaces. (#277)
- Fixed certificate installation for POP!_OS Linux.
- Nitro will now verify and start containers automatically if not running.
- Fixed an error that could occur when the
version
command was executed beforeinit
. (#270) - Fixed an error that could occur if Nitro wasn’t able to detect the database engine from a backup. (#269)
- Fixed a bug where the
iniset
command was not updating PHP settings for sites. (#268)
- Fixed a bug that could occur when executing the
nitro add
command beforenitro init
.
- Fixed a bug where the
self-update
command was not updating.
- Nitro now runs on Docker rather than Multipass. (#224, #222, #215, #205, #182, #181, #180, #152, #22, #18, #216)
- Added support for Arm CPUs, including M1 Macs.
- PHP versions and settings are now applied on a per-site basis. (#200, #105, #225)
- Xdebug is now applied on a per-site basis.
- Added support for SSL. (#10)
- Added support for PHP 8.
- Added support for Xdebug 3 when using PHP 7.2 or later.
- Added the
alias
command. - Added the
blackfire on
andblackfire off
commands. - Added the
bridge
command, for sharing a site over a local network. - Added the
clean
command. - Added the
composer
command. - Added the
container new
command, which creates new containers based on any available Docker image. (#170) - Added the
container ssh
command. - Added the
craft
command, which will runcraft
commands within a site’s container. (#189) - Added the
db new
command, which creates new database engine containers. - Added the
db ssh
command. - Added the
enable
anddisable
commands. - Added the
extensions
command. - Added the
iniset
command. - Added the
npm
command. - Added the
portcheck
command. - Added the
queue
command. (#189) - Added the
share
command, which shares a site via Ngrok. (#2) - Added the
trust
command. - Added the
validate
command. - Added the
version
command.
- Improved Linux and Windows support.
- Nitro now has a single
~/.nitro/nitro.yaml
file to manage everything, instead of a YAML file per machine. - Most Nitro commands are now context aware of the directory they are executed in. (#167)
- All commands that rely on an existing config file now prompt to run the
init
command if no config file is found. - The
apply
command will only update thehosts
file if it has changed. (#117) - The
create
command now accepts custom GitHub repositories and installs Composer and Node dependencies automatically. (#101) - The
db import
command can now import database backups that live outside the project directory. - The
destroy
command now removes entries from thehosts
file. (#235) - The
init
command will now use MariaDB rather than MySQL on Arm-based computers. (#234) - The
init
command now has a--skip-trust
flag, which skips importing Nitro's root certificate. - The
ssh
command now has a--root
flag, which will SSH into the container as the root user. - It’s now possible to set the default ports for HTTP, HTTPS, and the API to avoid any port collisions using
NITRO_HTTP_PORT
,NITRO_HTTPS_PORT
, andNITRO_API_PORT
. - Nitro will now check for port collisions during
init
and when adding database engines. - Sites’ containers’
hosts
files now list their own host names. (#150) - Windows users are now prompted to update their
hosts
file. - Xdebug is no longer supported for PHP 7.0.
- Added the
nitro create
command, which will set up a new Craft installation without PHP or Composer installed locally. (#101) - Added the
--silent
flag to thexon
,xoff
, andphp iniset
commands.
- The
db import
command can now import zip and gzip files. - The
db import
command will now detect the database backup type and automatically select the appropriate database engine, if the backup file was uncompressed. (#132) - The
db import
anddb add
commands now replaces dashes (-
) with underscores (_
) in the specified database name, to work around a SQL error. (#212) - The
php iniset
command can now set thedisplay_errors
config setting. (#172) - The
display_errors
config setting is now set toOn
by default.
- Fixed a bug where
php iniset memory_limit
was listed as an available command. - Fixed a bug where
php iniset
commands weren’t always setting the correct values. (#207) - Fixed a bug where
php iniget
commands weren’t always returning the correct values. - Fixed a bug where the system’s
hosts
file wasn’t getting updated on Linux machines. (#213)
- Composer is now installed by default on new machines.
- The default Nginx site is now a friendly landing page with helpful links.
- Fixed an error that occurred when checking for the latest version of Nitro. (#199)
- Added the
support
command to quickly create GitHub issues pre-populated with environment info.
- The
info
command now displays additional info such as IP, PHP version, and links to common tasks.
- Fixed a bug confirmation prompts would take just about any input as a “yes”. (#190)
- Fixed an issue that occurred when creating new machines.
- Added the
nginx start
,nginx stop
, andnginx restart
commands. - Added the
php start
,php stop
, andphp restart
commands. (#57) - Added the
php iniget
command, which can be used to see current php.ini values. - Added the
php iniset
command, which can be used to modify themax_execution_time
,max_input_vars
,max_input_time
,upload_max_filesize
,max_file_uploads
, andmemory_limit
php.ini settings. (#138) - Added the
xon
andxoff
commands, which are shortcuts forxdebug on
andxdebug off
. - Added the
nitrod
daemon that runs in the virtual machine and exposes a gRPC API on port 50051. - Enabling and disabling Xdebug is now performed via the gRPC API, and is much faster now.
Improved Composer performance when run from inside the virtual machine. (#186)
- Fixed a bug where the default PHP version was not getting updated when running the
apply
command. (#192) - Fixed command completion when pressing the Tab key.
- Added support for a
NITRO_EDIT_HOSTS
environment variable so that when set tofalse
, Nitro will never edit the host machine’shosts
file.
- The
destroy
command now has a--skip-hosts
option.
- The
add
now has a--skip-hosts
option. (#163) - The
db add
command now validates the database name. (#160)
- Fixed a bug with the Nginx config template (run
nitro refresh
for the change to take effect).
- Newly-created site configs are now based on the Nginx config provided by https://github.com/nystudio107/nginx-craft (run
nitro refresh
for the change to take effect). (#35)
- Fixed an error that could remove mounted sites. (#162)
- Fixed a bug where the
apply
command wasn’t removing deleted sites’ hostnames from the hosts file. (#161) - Fixed a bug where the
apply
command wasn’t removing deleted sites’ Nginx configurations from the virtual machine.
- Fixed a bug where keys transferred into the machine did not have the proper permissions. (#154)
- Fixed a bug where the
init
command was not editing the hosts file. (#155) (#156) - Fixed a bug where the
db import
command was not working on PostgreSQL.
- Removed an unnecessary debug command.
- Added Windows support.
- Added support for MySQL 8.0. (#97)
- The PostgreSQL and MySQL client tools are now installed on new machines. (#54, #139)
- Added the
install postgres
,install mysql
,install composer
, andinstall mailhog
commands.
- New machines now use Ubuntu 20 LTS.
- Renamed the
--no-backups
option to--skip-backup
for thedestroy
command. - Composer is no longer installed on machines by default, but can be installed by running
nitro install composer
. - The
init
command now sets the default CPU count based on the number of CPUs on the host machine. - MySQL 5 and 8 now use version-specific configuration directories (
/home/ubuntu/.nitro/databases/mysql/conf.d/<version>/
). - Removed the
xdebug configure
command, and moved its logic into thexdebug on
command.
- Fixed a bug where Nitro wasn’t removing Nginx server configs when removing sites.
- Fixed a bug where the
apply
command wasn’t removing deleted mounts’ root directories within the machine. (#96) - Fixed a bug where the
init
command could return an exit code of 100. (#96) - The OPcache extension is no longer installed by default. (#129)
- Added the
keys
command which prompts which keys should be imported into a machine. (#141) - Added the
--no-backups
flag todestroy
which will skip database backups. - Added
completion
commands forbash
andzshrc
.
- The
destroy
command creates individual databases backups. (#146) - The
mysql
system database is no longer backed up usingdb backup
ordestroy
. (#147)
- Fixed a bug where the
refresh
command was failing silently. - Fixed a permissions issue. (#145)
- Fixed an issue when importing mysql databases using
db import
. - Fixed an issue installing composer on new machines. (#149)
- Added the
--skip-hosts
option to theapply
command. (#110) - The
add
command will now prompt to create a machine if it does not exist. (#103) - The
init
command will edit the hosts file if sites are present in the config. (#123) - Added the
db restart
,db stop
,db add
,db remove
, anddb backup
commands. Theimport
command has also been renamed todb import
. - Added the
refresh
command, which helps keep scripts and configs updated between versions of Nitro. - Databases now support custom configuration files. (#133)
- Nginx is now configured to allow file uploads up to 100MB. (#126)
- Databases are now backed up automatically when a machine is destroyed. (#136)
- When creating a new machine, the
DB_USER
andDB_PASSWORD
are automatically set in the environment. (#119) - The default database is now called
nitro
for MySQL engines, to be consistent with PostgreSQL. - The
destroy
command now prompts for confirmation. (#116) - The
init
command now prompts to initialize a new machine if there is no config file. - The
add
command now mounts project files in/home/ubuntu/sites/<name>
instead of/nitro/sites/<name>
. (#134) - The
apply
command now provides more information. (#95) - The
init
command now checks if the machine already exists before prompting for input (#102)
- Fixed a bug where the
self-update
command would non-interactively prompt to initialize the primary machine. (#115) - Fixed a bug where
import --help
didn’t show the required SQL file argument in the usage example. (#124) - Fixed a bug where the
apply
command wasn’t applying changes to sites’ web roots. (#113)
- Fixed an error when using the select prompt. (#104)
- Improved the
init
command workflow. - Changed the input package to use pixelandtonic/prompt.
- Removed MySQL 8.0 support for now.
- Removed PHP 7.0 and 7.1 support.
- Fixed a potential permission error when installing/updating.
- Fixed a broken test which prevented a release.
- The GMP and BCMath PHP extensions are now installed by default.
- Composer is now installed globally on machines. (#92)
- Fixed a permission error when provisioning a PostgreSQL database.
- Fix a bug where the
import
command wasn’t importing. - Fixed an issue where the machine DNS was not resolving in some environments. (#91)
- Fixed an error when trying to create a database during PostgreSQL import. (#94)
- The
init
command now prompts for how many CPU cores should be assigned to the machine.
- Added the
rename
command to allow users to quickly rename sites.
- The
destroy
command now has a--clean
option which will delete a config file after destroying the machine. - The
nitro
database user now has root privileges formysql
andpostgres
databases. (#79) - Added the
php
option back to the config file. - All commands that perform config changes (e.g.
add
,remove
, andrename
) now use the same logic as theapply
command. - When importing a database using the
import
command, users will be prompted for the database name which will be created if it does not exist. - The
apply
command will automatically update the machine's hosts file. - The
destroy
command will now remove any sites in the machine config from the hosts file. - The
init
command will use an existing config file and recreate the entire environment. - Commands now output more statuses where possible to provide the user more feedback.
- When using the
add
command, the config file checks for duplicate sites and mounts. (#86) - Fixed an issue when using some commands on Windows. (#88)
- Fixed an issue in the
apply
command that would not detect new changes to the config file.
Warning: This release contains breaking changes. See the upgrade notes for details.
- Added the
init
command, which initializes new machines. - Added the
remove
command, which removes a site from a machine.
- All machine configs are now stored saved in
~/.nitro/
. - All commands now have an
-m
option, which can be used to specify which machine to work with. (The-f
option has also been removed.) - The
apply
command now creates any new database servers that it finds in the config file. - The
machine destroy
command has been renamed todestroy
, and it now permanently destroys the machine (as opposed to archiving it), and removes any hostnames added to your hosts file that point to its IP address. - The
machine restart
command has been renamed torestart
. - The
machine start
command has been renamed tostart
. - The
machine stop
command has been renamed tostop
. - Renamed
get.sh
toinstall.sh
.
- Removed the
machine create
command. Use the newinit
command to create new machines instead.
- Fixed a bug where users could get a segfault when adding a site. (#78)
- Fixed a bug where it wasn’t possible to import databases using relative paths. (#75)
- Fixed a bug where the
machine create
command listed MySQL 5.8 as an option. - Fixed a bug where php-fpm wouldn’t restart after running the
xdebuf off
command.
- Fixed an issue when importing database backups using relative paths (#75)
- Added
import
command to let users import a database backup from their system into nitro. (#1)
- Nitro now installs the PHP SOAP extension by default.
- Nitro will now walk users through the creation of a machine when no config file is present (#44).
- Nitro now prompts you to modify your hosts file after using
add
(#40).
- Added
edit
command to edit a nitro.yaml config. (#70) - Added
logs
command to checknginx
,database
, anddocker
logs.
apply
now checks if sites are setup in the machine and configures them if they are missing.
- Added checksum support for
get.sh
when downloading and updating. (#56)