Releases: kovshenin/sail
0.10.1
Some minor work around domains/DNS and support for .deployignore (docs here).
- Changed: Postfix and postfix-related blueprints now support namespaces under the hood
- Changed:
sail destroy
will now delete DNS records for all associated domains, use--skip-dns
to bypass - Changed:
sail domain delete
will no longer delete orphaned subdomains when given a parent domain - Changed:
sail domain delete
will now attempt to delete the DNS zone only if no more records exist in that zone - Changed:
sail domain delete
now accepts a--zone
flag which forces a DNS zone delete (and orphaned subdomains form config.json) - Added: Support for the Mailgun EU region in
mailgun.yaml
blueprint - Added: Support for a
.deployignore
file to remove certain patters from deployment
0.10.0
What's new?
Environments and namespaces are here! These allow users to deploy and work with multiple WordPress applications, sharing the same environment. Please refer to our namespaces and environments guide for usage information.
We've also overhauled a lot of the existing routines in Sail CLI, making them fully client-side, so you no longer have to rely on (or share secrets with) our API service. The only remaining thing powered by the API service is the DNS management for the internal .justsailed.io subdomains.
Note: This release contains breaking changes. If you have existing Sail projects, please refer to the upgrade notes at the end of the announcement.
Changelog
- Added: Namespaces and environments to run multiple applications in the same environment. Use
--namespace
and--environment
withinit
. - Added: New
pre-deploy
hooks in .sail, these will run every time deploy is invoked - Added: New
sail diff
command, shortcut forsail deploy --dry-run
andsail download --dry-run
- Added: A new
install.sh
script to install and update Sail CLI - Changed: New
--skip-hooks
or--no-verify
options tosail deploy
to skip running hooks - Changed: Blueprints now fully client-side
- Changed: Provision and destroy are mostly client-side (API calls only to control justsailed.io DNS)
- Changed: Sizes and regions now client-side
- Changed: Domains, primary and HTTPS fully client-side, domains settings in .sail/config.json
- Changed: Provision now uses cloud-config instead of a Docker image, removed
--host
option from ssh commands
Migrating 0.9.x projects to 0.10.0
If you have an existing 0.9.x project, don't rush to upgrade your Sail CLI yet. If you did, don't worry, you can install any version you like using our new installer.
- Go to your existing 0.9.x project, and run
sail backup
to perform a full site backup - Run
sail domain list
and note down the list of all domains associated with your project - Backup any custom configs/hacks/etc. you might have made on the 0.9.x server
- Upgrade Sail CLI to 0.10.x using any of the install methods
- Create a new directory for your project and run
sail init
- Copy the new
wp-config.php
to a safe place, this will contain new database credentials - Restore the backup from step 1:
sail restore /path/to/old/project/.backups/backup-filename.tar.gz
- After the restore is successful, run
sail download
to make sure your local copy in fresh - Update
wp-config.php
with the database credentials you stored in a safe place - Deploy the new
wp-config.php
and verify that it's working:sail wp option get home
- Add your domains to the new project
sail domain add
- Set the primary domain with
sail domain make-primary example.org --no-replace
- After the DNS changes have propagated, you can request new SSL certificates for the domains with
sail domain make-https example.org www.example.org
After your site has been successfully migrated and is live, you can shutdown the old 0.9.x project with sail destroy
.
If you need any assistance with migrating existing projects to this new release, please join the #help channel on our Slack community and we'll be happy to help you out!
0.9.18
Some housekeeping.
- Added: New
sail ssh run
command - Added: New
apt
section for blueprints - Added: New
site-verification.yaml
blueprint to add TXT records - Changed: Deploys, rollbacks and release-tracking are now 100% client-side
- Changed: Split
--host
and--root
arguments forsail ssh shell
- Changed: Use Fabric instead of SSH subprocess in db and full backups
- Changed: Some overall refactoring
0.9.17
0.9.16
- Added: New
profile clean
command to delete local and remove profiling data - Added:
php-xml
andphp-zip
packages to the core image - Added: Support for the newer justsailed.io internal subdomains
- Fixed: When deleting a parent domain orphaned subdomains were not deleted
- Fixed: Poor performance navigating the profile browser with > 5k entries
0.9.15
0.9.14
- Added: New
mailgun.yaml
andmailgun-dns.yaml
blueprints to deploy a working Mailgun configuration - Added: New
postfix
blueprint component and postfix.yaml default BP - Added: New
fail2ban
blueprint component and fail2ban.yaml default BP - Added: A new
type
attribute tovars
in blueprints, supports bool, int, float, str - Added: New
--postfix
or--mail
flags tosail logs
to query postfix items in syslog - Added: New
dns
blueprint component to add DNS records to your application domains - Fixed: Plugin activation error when no custom plugins specified
- Fixed: Theme activation mismatch in blueprints, when custom theme above wporg themes
0.9.13
- Added: Blueprints are here!
sail blueprint path/to/blueprint.yaml
to apply - Added: End-to-end tests around blueprints, tweaked testing a bit, added GitHub workflows to run tests on push/PR
- Changed: Fixed system journal requiring a restart for
sail logs
to work - Changed: Fixed .com.br and .com.tr now treated as TLDs when working with domains
- Changed: Make sure new Droplet is assigned an actual IP address prior to using it
- Changed: Updated readme to reflect BPs, added push-to-deploy links
0.9.12
- Added: New
--skip-dns
flag fordomain add
anddomain delete
which skips making any DNS changes - Added: Long-awaited
sail restore
command, to restore complete site backups to production - Added: New
--skip-replace
argument fordomain make-primary
, to skip the search-replace ops - Added: Sparse deploys via an optional
path
argument fordeploy
, to specify one or more subtrees to process - Added: Sparse downloads, similar to deploys with optional
path
argument fordownload
- Changed:
deploy
now prepares the new release directory with a copy from the live release - Changed: Added a new
util.rsync()
function to standardize usage across all commands - Changed: End-to-end test now includes multiple scenarios for
deploy
anddownload
routines - Changed: Slight refactoring, regrouping of commands, simpler ones went to a new misc.py instead of their own files
- Removed:
--delete
argument fromdeploy
since it was not really implemented (in a correct way) anyway
0.9.11
- Added: New
destroy
command to shutdown and delete a droplet - Added: First couple unit tests and a short end-to-end test
- Added: New
--dry-run
flag fordeploy
anddownload
commands - Added: New
db export
anddb import
commands - Changed: Renamed
mysql
command todb
group, shell withsail db cli
now - Changed: Lots of moving files around and reorganizing code
- Changed: Shorthand
-v
flag to display version - Changed: The
backup
command now uses a database export routine similar todb export