All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, adheres to Semantic Versioning, and is generated by Changie.
- Update project dependencies.
- Update Go version to 1.23
- Update GitHub Actions to Ubuntu 24.04
- The start flag
remove-default-plugins
has been renamed toremovedefaultplugins
for consistency - The config options for the initial admin user have been changed to remove the "." from the option.
admin.email
is nowadminemail
,admin.username
is nowadminuser
andadmin.password
is nowadminpassword
.
- Fix an error that could prevent default plugins from being installed.
- Improve test runs on all branches
- Update Traefik to version 3.1.
- Kana settings has been significantly refactored to allow easier updating
- Renamed the
mariadb
config option todatabaseVersion
to better accomodate different database options. - The
ImageUpdateDays
settings has been renamed toUpdateInterval
. This will allow it to be reused more easily, where appropriate.
- Add the ability to use SQLite as a database in place of MariaDB
- Add option to use MySQL in addition to MariaDB and SQLite
- Kana will now check that the database is ready before continuing site setup. This should result in more reliable site startup.
- When outputting JSON results, the extra line break at the end of the output should be removed
- When saving changes to various settings the type of the setting will now be maintained in the config file.
- Update project dependencies.
- Improve testing throughout the project
- The
settings
package has been heavily refactored to help ensure stable development in the future. - Update GitHub Actions for more reliable releases and testing
- Ensure WordPress always has access to the files and can install plugins/themes or do other file operations from the Dashboard
- Update project dependencies.
- Don't display install theme message when it isn't needed.
- Update project dependencies.
- The primary domain for Kana, kana.li, has been replaced with
kana.sh
.
- The list command will now highlight the site path in yellow if it no longer exists.
- Fixes an issue with the automatic WordPress login that prevented login if the admin user differs from the configured user.
- Ensure we're properly using the automaticLogin setting to allow or prevent logins.
- Update project dependencies
- Ensure type detection message ends with a line break.
- Fix an error when starting a theme due to a false positive in default theme detection.
- Update project dependencies
- Fix an error that prevented a site from starting when the current folder was detected as a plugin or a theme.
- Update projecct dependencies
- Shorthand flags for string parameters have been removed. For example, the
name
flag must use the full "--name=" syntax and the "-n=" has been removed. - Rename
adminLogin
setting toautomaticLogin
- Adds a "theme" option to set a default theme (not available for sites where the type is set to "theme")
- Sort
config
command output alphabetically - Add
plugins
flag to install specified plugins on start. - Allow for global configuration of default plugins
- Always ensure that all default plugins are installed and activated on site start
- Update project dependencies
- Update Traefik to 3.0.0 (https://traefik.io/blog/traefik-3-0-ga-has-landed-heres-how-to-migrate/)
- Automatically login to wp_admin when opening a wp_admin URL
- Introduce the
adminLogin
config variable to allow users to disable automatic login into the WordPress Dashboard - Introduce the
IS_KANA_ENVIRONMENT
env variable to allow developers to verify they're working in a Kana development environment
- Fixed a warning in the Traefik rules due to an improper rule
- WordPress will no longer display an email send error if Mailpit is running
- Fix documentation of default PHP version
- Update project dependencies
- Update Traefik container name to make format of other containers.
- Ensure the current Docker context is always used as appropriate
- Update project dependencies
- Update project dependencies
- Rename repository from
kana-cli
tokana
- Fix a bug preventing wp-cli commands running on named sites.
- Update project dependencies
- Ensure wp-cli can run on plugins and themes.
- Ensure we can run interactive wp-cli commands such as help
- Update project dependencies
- Add further testing including full command tests
- Add an
admin
flag to the open command to make accessing the WordPress dashboard easier.
- Save proper site name and version when creating mu plugin
- Don't show a "directory not empty" error for named sites.
- Fix
xdebug
command description - Fix an issue that caused a fatal error when running
kana db export
- Refactor: use simpler function names to make the naming convention easier.
- Update project dependencies.
- Switch to PHP 8.2 as the default PHP version for new sites
- Update Traefik from 2.10 to 2.11
- Removed
theme
andplugin
start flags in favor of the singletype
start flag. - Removed the self-updater. For now the app will stick with Homebrew for updates.
- Update project dependencies.
- Update to Go 1.22
- Fixed a bug whereby SCRIPT_DEBUG wasn't accurately accounted for when using the
export
command. - Abort the update check without failing if we can't conact the server.
- Update project dependencies.
- Fixed an error that could break numerous commands as the correct site type was not being set.
- Add
changelog
command to help users understand what has changed between versions. - Add
update
command to self-update Kana for installations that didn't use Homebrew. - Will check for updates and warn users of a newer version if one is available.
- Removes the
local
flag and related configuration items. All sites that don't use thename
flag now store their WordPress and database in the folder from which the site was initiated.
- Kana will ask for confirmation when starting a new site in a non-empty folder to avoid file conflicts with WordPress.
- Environment will now be properly handled on export.
- Update project dependencies.
- Updated Moby to version 25.x.
- Added configuration items for
scriptdebug
which controls the wp-configSCRIPT_DEBUG
configuration item. - Added config option for
environment
which controls the wp-configWP_ENVIRONMENT_TYPE
setting. - Default
WP_ENVIRONMENT_TYPE
tolocal
to better reflect the nature of a given site in the tool.
- Update GitHub actions to use Ubuntu 22.04 on all actions for consistency and ensure all actions are up to date.
- Update GitHub action versions
- Allow for abstract PHP and MariaDB versions in the config.
- Kana will now detect if a folder where a site is started is a theme or a plugin and start the appropriate site type.
- Cleanup Go modules with go mod tidy
- Update project dependencies
- Change default image update check from 1 day to 7 days
- Update project dependencies
- Only add Kana's SSL certificate to the MacOS keychain when it needs to be used.
- Adds a
trust-ssl
command for Mac to easily add the SSL cert to the Mac system Keychain
- Ensure the local SSL setting is respected to load the correct URL
- Ensures the --ssl start flag is properly implemented and set.
- Update project dependencies
- The
list
command no longer requires that Docker be running for use. - Add config setting that will delete the default WordPress plugins when starting a new site
- Ensure we're properly checking for errors when files and other streams are closed.
- Ensure the
export
command properly handles thedatabaseClient
andmultisite
settings.
- Update Go dependencies
- Use the current Docker context to find the correct Docker host. This results in more reliable connections to Docker, particularly with Docker Desktop.
- Kana will no longer try to start Docker automatically if it cannot connect to it on Mac.
- Removed the extra information that reiterated the empty site list on the
list
command as the table format has since made it redundant. - Upate confirmation text on
stop
command to make it easier to read.
- Update project dependencies
- Update project dependencies
- Update CI/CD processes to Go 1.21
- Added the ability to open a database directly in TablePlus instead of PhpMyAdmin.
- Add support for both subdirectory and subdomain multisite installations
- Ensure the config item
imageUpdateDays
isn't case sensitive - Ensure the proper error message is displayed when a CLI command fails
- Remove erroneous debugging statement when using the "activate" flag on startup.
- Update Go dependencies
- Update GoLang upstream dependencies
- Update GoReleaser config to fix deprecations.
- Added
flush
command which flushes the cache and deletes all transients
- Renamed
phpmyadmin
flag todatabase
on the open command to better reflect its operation. - Changed default MariaDB version from 10 to 11.
- Users can now choose between MariaDB 10 or 11 using the config command or settings files.
- PHP version will properly revert to default if an invalid configuration is entered into settings
- Ensure Xdebug can be installed when running Kana on Linux
- Add
xdebug
command to make managing Xdebug easier - Suppress non-JSON output when downloading new images if
--output-json
flag is set on the command.
- Show an empty array rather than
null
when there are no sites and thekana list
command is used with the--output-json
flag
- Update Go project dependencies
- Kana now requires Docker Desktop 4.20.0 or greater or Docker Engine 24 or greater
- Add ability to only check for image updates with configurable
ImageUpdateDays
config setting - Kana will automatically activate
plugin
ortheme
projects when starting a new site. This can be turned off with theactivate
config option
- Remove duplicate image checks
- Ensure project is available for wp-cli commands if type is set as "plugin" or "theme"
- Fixed a bug that would cause the
list
command to fail
- Updated upstream Go dependencies
- Update base Traefik image to 2.10
- Update Go's Docker module per Dependabot (#18)
- Improve Xdebug output by setting PHP's
html_errors
totrue
and settingxdebug.mode
todebug,develop,trace
. This will give much more informative and readable debugging output. - Introduced
wpdebug
setting to ensure WP_DEBUG is always available when needed. - Always show pull status for Docker images.
- Improved output ot
list
command with better messaging when the list is empty. - Prevent users from starting a new site using their homedir as the working directory
- Update project dependencies
- Sites no longer start with forced SSL by default. See the
ssl
config item to adjust - Remove PhpMyAdmin configuration and flag. It will now open on demand
- Add SSL config item to make it easier to use https or http in site configurations
- Kana will no longer error out when running the open command on Mailpit of PhpMyAdmin if the apps haven't been started. Instead it will start the apps and open as appropriate.
- Fix various typos and default settings the the project README
- Ensure Mailpit configuration item is in export
- PhpMyAdmin will now open and operate correctly on Linux
- Update test suite and increase test coverage
- Add hidden, persistent
output-json
flag to allow me to abstract the CLI more easily in other applications - By default download progress of images will not be shown unless the
verbose
flag is used for the given command - Add "app" flag to
open
command to allow for easily opening phpmyadmin - Add Mailpit to allow for email intercept and troubleshooting.
- Lock Mariadb version to '10' instead of 'latest' to avoid breakage in the future
- Ensure site names always use dashes instead of underscores
- Do not always force https redirect in dev environment
- Update upstream GoLang dependencies
- The
confirm-destroy
flag on thedestroy
command has been replaced with theforce
flag
- Simplified image pulling status by using Docker's default status display
- Add
list
command to list all known Kana sites and their current status - Hides the
completion
command that was added by the library I had been using
- Kana on Mac now requires Docker Desktop 4.14.0 or later or a version prior to 4.13.0 due to a breaking change in Docker Desktop 4.13.0 that has since been reversed.
- Always ensure the docker images are up to date when starting a site
- Add golangci-lint to project to ensure higher-quality code
- Fixes the "plugin" flag on new sites so that it will now work as intended
- Lock Traefik image to 2.9 instead of "latest" to prevent future issues.
- Update GoLang project dependencies
- Add support for PHP 8.2 (enable this in your site or app configuration)
- Heavy refactor of the application to better reflect how its use has evolved as well as to be more performant.
- Removed the redundant "Commit Hash" from the version command
- Default "config" command will now list local site values as well as global app configuration values
- The default PHP version for new installs is now 8.1
- Assign a random port to bind the database to the host. This allows external DB apps like TablePlus to be able to access the DB directly
- Add phpMyAdmin to local sites using the
phpmyadmin
setting or start flag - Add initial Linux support
- Linux version can now be installed via Homebrew and .deb and .rpm files are available on GitHub releases
- Only install default plugins that aren't already installed
- Warn the user (without failing) if a default plugin cannot be installed
- Using the "name" flag now works with sites that had originally been started with the "--local" flag
- Update Go dependencies
- Added "db import" and "db export" command to make working with existing databases a bit easier.
- Kana will now properly warn when running a command that requires a site that is running
- Prompt for confirmation when "destroy" is used or automatically confirm with
--confirm-destroy
flag - Improve output messages for easier determination of command results
- Added a global "verbose" flag which will display a trace when an error occurs as well as other more detailed output to more easily troubleshoot what is going on
- Kana will no longer create a site config folder when running commands other than "start"
- Show a more usable error message when using the
open
command on a site that hasn't been started - WP-CLI will now use the same PHP version as the local site
- Update project's dependencies
- Fix issue where Docker Desktop 4.13 breaks Kana due to no longer setting /var/run/docker.sock (see https://docs.docker.com/desktop/release-notes/#docker-desktop-4130)
- Update project dependencies
- Ensure wp-cli commands work on theme and plugin projects.
- Update changelog to make more sense on files
- Test release to ensure changelog is properly populating
- Improve installation instructions for homebrew usage
- Add Homebrew support for easier installation
- Use .zip instead or .tar.gz for distributed files
- Prevent site failure if an existing wp-config is already present when using the "local" flag. #3
- Prevent race condition that can occur due to Traefik not finishing full SSL config before we check the site.
- Initial release