- Added
platform
to all Craft CMS versions, so thatphpstan
will perform checks for the minimum PHP version for each - Add support for
make pest
- Remove docker compose versioning checks
- Updated the
buildchain
to use Vite 6 & Tailwind 4
- Add
nystudio107/craft-cookies
to thecms_v5/composer.json
- Add
nystudio107/craft-minify
to thecms_v5/composer.json
- Add
nystudio107/craft-retour
to thecms_v5/composer.json
- Add
nystudio107/craft-webperf
to thecms_v5/composer.json
- Add
craftcms/commerce
to thecms_v5/composer.json
- Add
codeception
to thecms_v5/composer.json
- Add
putyourlightson/craft-campaign
to thecms_v5/composer.json
- Add
verbb/doxster
to thecms_v5/composer.json
- Add
craftcms/feed-me
to thecms_v5/composer.json
- Add
craftcms/shopify
to thecms_v5/composer.json
- Add
craftcms/digital-products
to thecms_v5/composer.json
- Add
spicyweb/craft-neo
to thecms_v5/composer.json
- Add
libavif
to the PHP containers - Add
nystudio107/craft-typogrify
to thecms_v5/composer.json
- Add
nystudio107/craft-imageoptimize
to thecms_v5/composer.json
- Add
craftcms/aws-s3
to thecms_v5/composer.json
- Add
craftcms/cloud
to thecms_v4/composer.json
&cms_v5/composer.json
- Add
nystudio107/craft-twigpack
to thecms_v5/composer.json
- Add
nystudio107/craft-emptycoalesce
to thecms_v5/composer.json
- Add
nystudio107/craft-templatecomments
to thecms_v5/composer.json
- Add
solspace/craft-calendar
to thecms_v5/composer.json
- Add
nystudio107/craft-templatecomments
to thecms_v5/composer.json
- Add
nystudio107/craft-twigprofiler
to thecms_v5/composer.json
- Add
nystudio107/craft-similar
to thecms_v5/composer.json
- Use
postgres:13-alpine
for Craft 5 support
- Add
nystudio107/craft-autocomplete
to thecms_v5/composer.json
- Add
nystudio107/craft-closure
to thecms_v4/composer.json
- Add
nystudio107/craft-closure
to thecms_v5/composer.json
- Use
phpstan
level5
by default - Add
craftcms/ecs
,craftcms/phpstan
&craftcms/rector
- Update
ecs.php
to be compatible with the latestECSConfig
spec
- Explicitly set
charset
&collation
inconfig/db.php
andexample.env
rather than depending on defaults - Add
craft-code-field
to thecomposer.json
- Add
craft-vite
to thecomposer.json
- Add
craft-seomatic
to thecomposer.json
- Updated
config/vite.php
tosrc/js/app.ts
for reloading through Twig errors
- Fixed the Tailwind CSS content path to the Craft CMS
templates/
directory for the buildchain
- Added
vite_v3.plugindev.local
,vite_v4.plugindev.local
&vite_v5.plugindev.local
as OrbStack domain labels for the buildchain - Added documentation for the
buildchain
- Added support for Craft CMS 5
^5.0.0-alpha.1
for both MySQL and Postgres development. Let the plugin porting commence! - Use
craft-twig-base-templates
for the base layout templates - The
buildchain
now usesvite
^5.0.0
- Updated the db seeds to the latest versions of Craft CMS
- Removed the Project Config files entirely (and rely on the db seeds instead)
- User settings now default to showing field handles, and showing the debug toolbar on the frontend and in the CP
- Remove
ENV PHPIZE_DEPS
, and use the environment variable inherited from the parent Alpine images rather than manually setting it ourselves
- Add
craftcms/shopify
&verbb/vizy
plugins tocomposer.json
- Add
craftcms/digital-products
plugin tocomposer.json
- Moved the PHP Docker config to subdirs
v3
&v4
for bothphp-dev-craft
andphp-prod-craft
so we can pin different PHP versions to different versions of Craft - The default PHP version for Craft 4 is now
8.2
- Add
craftcms/ckeditor
^3.0.0
to the default packages - Add OrbStack support via the local domain
plugindev.local
- Fix Solspace Calendar namespace
- Added an optional
buildchain
to both thecraft_v3
andcraft_v4
projects, which allows you to spin up a Vite buildchain; see theMakefile
for available commands. This is for frontend testing.
- Remove
optimize-autoloader
incomposer.json
to speed up composer installs in local dev (#16) - Added
stop_grace_period: "1s"
to the services that have long-running processes in thedocker-compose.yaml
- Rename the
docker-config/
directory to.docker-config/
so it is tucked away - Ensure permissions are set properly on the entire project in
composer_install.sh
prior to doing acomposer install
- Ensure that flags can be passed down via
make xxx
commands via$(MAKEFLAGS)
. e.g.:make craft make field-type -- --module=test
(simple flags without values like--help
already worked)
- Added
nystudio107/craft-code-field
- Added updated versions of nystudio107 plugins to reflect their beta/release status
- Added
craftcms/generator
to thecraft_v4
composer.json
- Bumped the minimum Craft CMS versions to the latest
- Use fluent model config settings for
general.php
&db.php
- Bumped minimum
craftcms/cms
versions for both Craft 3 and Craft 4 - Updated to reflect the status of the Craft 4 plugins that are out of beta (and what's left to do)
- Prefer release plugin/package versions where available for Craft CMS 4
- Use
craft up
to run migrations & apply Project Config changes
- Determine the container name separator character by checking the Docker Compose API version at runtime
- Add
config/general.php
settings forrequireMatchingUserAgentForSession
&rememberedUserSessionDuration
(#10) - Add Elements Panel plugin (#11)
- Clean up initial check for
composer.lock
orvendor/autoload.php
to ensure the first-time install is done
- Ensure that the mysql/mysql-server image can pick from the ARM64 architecture by using
latest
tag
- Added
config/custom.php
for custom config settings
- Changed
bootstrap.php
to allow.env
-set environment variables override existing injected environment variables (#82)
- Run migrations first via
composer.json
scripts, because Craft won't apply Project Config if there are pending migrations - Added
tty: true
back in now that the issue has been fixed in the Docker Compose API2.4.1
(#9348) - Wait for both
vendor/autoload.php
as we ascomposer.lock
before starting up the queue listener
- Add
disableProcessTimeout
to thepost-craft-update
Composer scripts, and run Project Config before migrations
- Fix
php-dev-craft
Docker image regression by addingWORKDIR
back in
- Ensure permissions on directories Craft needs to write to
- Added more logging to indicate when a container is waiting for another service to start up, and when seeding a database is complete
- Run
composer craft-update
after acomposer install
is done viacomposer_install.sh
- Moved permissions setting to Docker image creation
- Dramatically sped up the startup time for the PHP containers by moving the permissions setting script to run asynchronously in the queue container via the
run_queue.sh
script - Added Codeception via the
make codecept
command via PR (#7)
- Added empty
test
databases for local testing
- Fixed the SiteModule to work properly on Craft 4, removing the additional logging code, as it is not needed. The Craft logger handles it properly as long as
CRAFT_STREAM_LOG=true
- Add a stream logging target for
stderr
so that we can capture thrown exceptions or other errors that would normally be captured only to a specific log file likequeue.log
- Wait until the
composer install
is done by looking for thevendor/autoload.php
file in thequeue
container
- Run migrations / project config changes via the
run_queue.sh
script, only after both db containers respond
- Significantly increased startup times via a
composer_install.sh
script that only runscomposer install
at container startup time ifcomposer.lock
orvendor/
is missing
- Expose ports
33060
for MySQL and port54320
on the host side, to avoid conflicts with other local development environments - Added a
sleep 60
in therun_queue.sh
containers, so they don't run the "keepalive" script until the other containers have started
- Restart the
queue
container after switching betweenmysql
andpostgres
so the queue runner process picks up the new database settings
- Adjust
spaceless
from the root template for easier debugging - Comment out non-Craft specific Rector settings in
rector.php
, for the initial pass - Add Craft Commerce
4.0.0-beta.1
tocms_v4
- Update to Craft CMS
4.0.0-beta.2
- Updated Project Config files for
craft_v3
&craft_v4
- Updated database seeds for
craft_v3
&craft_v4
- Updated for Craft CMS
4.0.0-beta.1
- Add updated Project Config files for
craft_v3
- Added a dual Craft CMS 3 & Craft CMS 4 setup
- Add new
make ssh
command to open up a shell inside the PHP container (#4)
- fix: Go back to using dashes & the Docker Composer v2 API ref
- Use
su-exec www-data
in the Makefile socraft
andcomposer
commands are not run as root
- Fix Composer 2.2.0 error by adding
allow-plugins
- Updated to use a unified
bootstrap.php
- Updated to use
vlucas/phpdotenv
^5.4.0
- Fixed a regression where the Postgres db seed was in
.zip
format, when it should have been in.gz
format to work with the containerentrypoint.sh
(#3)
- Updated the
Makefile
to accommodate another change in Docker that switches back to using_
instead of-
in container names
- Use
tty: true
for nicer output in terminal from the PHP Docker containers
- Move Craft Autocomplete to
require-dev
- Updated the
Makefile
to accommodate the change in Docker to using-
instead of_
in container names
- Add
CRAFT_ALLOW_SUPERUSER
&COMPOSER_ALLOW_SUPERUSER
.env
variables (#2)
- Added
enableGraphqlCaching
setting, defaulting to0
(false) - Added iCalender and Vite plugins to the
composer.json
- Added
compiled_templates
as a bind mount indocker-compose.yaml
for IDE autocompletion - Added
nystudio107/craft-autocomplete
for autocomplete of variables in Twig templates
- Handle both
XDEBUG_SESSION
andXDEBUG_PROFILE
cookies - Added
make nuke
to the Makefile commands to restart from scratch
- Updated the baseline Craft vMS version to
craftcms/cms
^3.7.0
- Removed
putyourlightson/craft-autocomplete
- Added
putyourlightson/craft-autocomplete
for the Twig + Symfony plugin auto-complete, removed FauxTwigExtension.php
- Continue running the
php-fpm
containers as root (sincephp-fpm
uses worker pools with the proper user/group), but switch tosu-exec
to ensure any craft CLI commands are run aswww-data
- Fixed typo in Dockerfile that would cause the PHP container to not build
- Removed
USER
directive in the PHP containers, since the pool runs aswww-data
already - Fix permissions regression
- Cleaned up the
php-dev-craft
&php-prod-craft
Dockerfile file permissions
- Run php container as the
www-data
user to avoid permissions issues
- Added
VITE_PLUGIN_DEVSERVER
environment variable
- Added
logs
andcompiled_templates
directories back in so that they will appear on the client side
- Explicitly designate the
rebrand
mount
- Delegate all of
storage
&cpresources
volumes, let the container own it
- Use the
mysql/mysql-server:8.0
Docker image because the "official" image doesn't support M1 Apple Silicon
- Don't
.gz
compress themysql-db-seed
database seed, because the entrypoint.sh script doesn't support it ref - Silence errors from the root
post-create-project-cmd
script - Don't remove the
README.md
file
- Bring the debug container in line with the production container, allowing it to work with either Postgres or MySQL
- Use separate
phpSessionName
s for MySQL and Postgres, to keep us logged in when switching between them
- Added
make craft
to the Makefile commands
- Use
rm -f
to ensure no errors if the file doesn’t exist
- Added
make update
to update Composer packages - Added
make update-clean
to completely removevendor/
, then update Composer packages
- Better login background pattern
- Fixed the rebrand by adding a bind mount for
storage/rebrand/
in thedocker-compose.yaml
- Add rebrand logo & icon, updated login background
- Updated database seed with entry types & category group
- Fixed
make up
command by removing an errant$
- Added
make clean
to the Makefile - Added Makefile Project Commands to
README.md
- Added
make composer xxx
- runs thecomposer
command passed in, e.g.make composer install
- Added
name
&description
to rootcomposer.json
- Added a
Makefile
for command aliases - Added
make mysql
andmake postgres
for switching between databases
- Add
craftcms/redactor
to the base config - Add
craftcms/commerce
to the base config - Added
soap
PHP extension for Commerce - Multiple sites for testing
- Prefab content with a "blog" channel for testing
- Set
useEmailAsUsername
tofalse
inconfig/general.php
so we can use the generic loginadmin
- Remove
errorTemplatePrefix
and remove theerrors/
templates completely, because, who cares?
- Added Redactor plugin installed by default
- Installed more NYS plugins by default
- Updated seed dbs & Project Config
- Added a default
SITE_NAME
inexample.env
- Updated the seed dbs and Project Config files to no longer include licenses
- Updated
README.md
project creation instructions
- Default to using MySQL
- Updated
README.md
to be more useful
- Remove
require
dependencies - Cleaned up
README.md
- Removed
sitemodule
fromcomposer.json
- Put Craft dependencies back into the project
- Added postgres container
- Dynamic switching between mysql and postgres by just changing a line in
db.php
- Switch to Craft CMS 3.6.7 as a starting base
- Switch to MySQL 8.x
- Initial release
Brought to you by nystudio107