- Update
global-variables.twig
to apply{% spaceless %}
around everything (#91) - Unregister lingering service workers (#92)
- Removed a reference to pollyfill.io, which is a security risk due to a supply-chain attack https://sansec.io/research/polyfill-supply-chain-attack
- Fixed the hashbang in the node container script (#94)
- Updated
tab-handler.twig
to fix broken link and JavaScript code (#93)
- 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
- Ignore
max-line-length
rule
- Fix eslint errors pinning
vite-plugin-eslint
to1.3.0
- Clean up initial check for
composer.lock
orvendor/autoload.php
to ensure the first-time install is done
- Changed
bootstrap.php
to allow.env
-set environment variables override existing injected environment variables (#82)
- Changed the hostname from
mysql
tomariadb
in thecomposer_install.sh
andrun_queue.sh
scripts, since we're using MariaDB
- Use
"eslint": "^7.0.0"
to avoid package version conflicts withvite-plugin-eslint
- Add correct at-rule-no-unknown config (#80)
- 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
- Fix
WORKDIR
inphp-prod-craft
container somake craft
etc. commands work as expected - Fix
WORKDIR
innode-dev-vite
container somake npm
etc. commands work as expected - Fix linting issue with
import.meta.hot
- Remove deprecated
useProjectConfigFile
fromconfig/general.php
- Remove
platform
fromcomposer.json
- Add
disableProcessTimeout
to thepost-craft-update
Composer scripts, and run Project Config before migrations - Add
import.meta.hot.accept()
to accept HMR as per: https://vitejs.dev/guide/api-hmr.html
- 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
- Switch the main branch to
craft-vite
so the default project now uses Vite.js - Significantly increased startup times via a
composer_install.sh
script that only runscomposer install
at container startup time ifcomposer.lock
orvendor/
is missing - Significantly increased startup times via a
npm_install.sh
script that only runsnpm install
at container startup time ifpackage-lock.json
ornode_modules/
is missing
- Run migrations / project config changes via the
run_queue.sh
script, only after the db container responds - refactor: Remove
tty: true
which causes console output to not appear in Docker Composer API 2.3.0. ref: docker/compose#9288
- fix: Use
su-exec www-data
in the Makefile socraft
andcomposer
commands are not run as root
- Fixed an issue with Critical CSS not generating properly out of the box
- Fix
node-dev-webpack/Dockerfile
sonpm install
is run
- 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
- Updated to Tailwind CSS
^3.0.0
- Use Node 16 for the webpack buildchain container
- Updated deps for native ARM buildchain container
- 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 & webpack Docker containers
- Move Craft Autocomplete to
require-dev
poll
->usePolling
- Updated the
Makefile
to accommodate the change in Docker to using-
instead of_
in container names
- Handle both
XDEBUG_SESSION
andXDEBUG_PROFILE
cookies - Added
compiled_templates
as a bind mount indocker-compose.yaml
for IDE autocompletion - Added
nystudio107/craft-autocomplete
for autocomplete of variables in Twig templates
- Added
putyourlightson/craft-autocomplete
for the Twig + Symfony plugin auto-complete, removed FauxTwigExtension.php
- Add
publicPath
back in, and fixallowedHosts
location in the config
- Fix breaking changes due to
webpack-dev-server
^4.0.0-rc.0
- Remove
storage/
dir
- 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
- Removed whitelist settings in
tailwind.conf.js
- 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
logs
andcompiled_templates
dirs back in, so they appear on the client side
- Silence errors from the root
post-create-project-cmd
script
- Fixed a breaking change of
dev
todevMiddleware
inwebpack-dev-server
^4.0.0-beta.3
- Delegate all of
storage
&cpresources
volumes, let the container own it
- Added
make craft
to the Makefile commands
- Use
rm -f
to ensure no errors if the file doesn’t exist
- Use Tailwind CSS
^2.1.0
with JIT
- Added
make update
to update Composer & NPM packages - Added
make update-clean
to completely removevendor/
andnode_modules/
, then update Composer & NPM packages
- Fixed
make up
command by removing an errant$
- Add
storage/config-deltas/
to prevent permissions issues
- Added
make clean
to the Makefile - Added Makefile Project Commands to
README.md
- Added
make composer xxx
&make npm xxx
commands
- Remove deprecated
scripts/docker_prod_build.sh
in favor ofmake build
- Fixed an issue with the
webpack-dev-server
version^4.0.0-beta.1
by moving theoverlay
config setting toclient
(#54)
- Added
make
command aliases
- Use
@tailwindcss/jit
for the CSS generation
- Fix webpack buildchain pipeline
- Use aliases for import paths
- Remove version, require, autoload, and config from the project
composer.json
- Use Tailwind CSS
^2.0.3
- Use official MariaDB images
- Use
craftcms/cms
version^3.6.7
- Updated db-seed & Project Config to match
craftcms/cms
version^3.6.7
- Use PHP 8.0 Alpine images for the prod & dev containers
- Ensure that the
cms/config
directory has the right permissions
- Updated
buddy.yaml
to match with Alpine update
- Fixed an issue with favicon generation caused by changes in
favicons-webpack-plugin
- Use
get-webpack-config
package
- Fix setting that’d cause HMR to fail to work unless a production build existed
- Changed
return 0
toexit 0
in thecomposer.json
scripts
- Fixed an issue where the default ImageOptimize transform was set to ServerlessSharp, causing mayhem and confusion
- Changed
--interactive 0
to--interactive=0
just for consistency (either works)
- Added Docker bind mount for
compiled_templates
so XDebug can be used with Twig templates
- Remove vestigial
HotModuleReplacementPlugin
- Set
--interactive=0
on console commands in thecomposer.json
to force non-interactivity for CI commands
- Set the minimum platform reqs to PHP
7.2.5
- Clean up AMP CSS approach
- Change AMP CSS URL to a path, so we can include it server-side
- Strip
!important
rules from AMP CSS - Clean up critical CSS config
gzip
the seed database- Update to deps required for
favicons-webpack-plugin
^5.0.0-alpha.4
- Update to Axios
^0.21.1
- Tabs -> Spaces in the Dockerfiles
- Use slimmed down Alpine images for Docker
- Added
--no-install-recommends
to allapt-get install
commands - Put complete output in each config
- Remove
imagemin-gifsicle
due to build issues (and also we rarely use.gif
files)
- Refactored
output.path
toapp.config.js
- Remove unused base Docker configs
- Use PHP 7.4
- Added some useful PostCSS plugins
- Don't try to remove
vendor/
after project install - Use named
chunkIds
- Allow HMR through Craft CMS error pages by including the now-separate
runtime.js
- Ensure poll is always an integer
- Updated seed db
- Updated to latest buildchain semver deps
- config/redactor/Standard.json → Default.json
- Unlicense → BSD Zero Clause License
- Fixed import WebpackManifestPlugin from webpack-manifest-plugin 3.x
- Fixed craftcms/redactor#278
- Added
nodemon
sowebpack-dev-server
will automatically restart if we change any of the webpack configs
- Use
webpack-dev-server
version^4.0.0-beta.0
for additional speed & better webpack 5 support
- Remove
postcss-preset-env
, addautoprefixer
&postcss-nested
- Change
mysql-client
tomariadb-client
- Add
mysql-client
in thephp-dev-craft
&php-prod-craft
MariaDB containers so we getmysqldump
- Added image optimization tools to the
php-dev-craft
&php-prod-craft
MariaDB containers
- Ignore
/admin
routes in the Service Worker
- Removed
xdebug.remote_connect_back
from thephp-dev-base
container'sxdebug.ini
file to allow xdebug to connect properly
- Removed unused
path
attribute passed toMiniCssExtractPlugin
in theproduction.config.js
- Sync Craft version
- Updated buildchain to a modular webpack config system, using webpack 5 & PostCSS 8
- Added
yiisoft/yii2-shell
torequire-dev
- Add
--no-dev --no-progress
to the composer install command
- Ignore Nginx requests for
favicon.ico
- Removed deprecated
links
fromdocker-compose.yaml
- Use Composer 2.x
- Added
/cms/web/dist/*
to root.gitignore
- Use a separate
php_xdebug
container only when theXDEBUG_SESSION
cookie is set, so regular requests are more performant
- Add
run_queue.sh
keep alive script
- Added a
db-seed
directory, and moved theseed_db.sql
there - Added
--set-gtid-purged=OFF
to thecommon_mysql.sh
to avoid permissions issues with some database dumps - Explicitly set the
user
that the PHP & queue containers run as towww-data
- Removed unneeded
composer dump-autoload
from the projectcomposer.json
- Explicitly set
id
from APP_ID and usekeyPrefix
for cache component - Add docker_prod_build script
- Sessions should use
REDIS_DEFAULT_DB
- Better nginx config for local dev, based on
nystudio107/nginx
- Added a
queue
docker container to run queue jobs via./craft queue/listen
- Removed
dotenvy
- Removed https://repo.repman.io from
repositories
- Remove the use of
craft on
andcraft off
because they create pointlessdateUpdated
changes toproject.yaml
- Added image optimizers to the
php-dev-craft
Docker image - Added the default
DB_PORT
of3306
toexample.env
andexample.env.sh
- Updated the
css-loader
config to ignore embedded URLs
- Changed
project-config/sync
->project-config/apply
- Updated the
buddy.yaml
with the latest Prep Craft script
- Added a
queue
component with a longerttr
- Refactor composer scripts to handle Craft not being installed, leveraging craft
install/check
- Boilerplate now requires
craftcms/cms
^3.5.8
- Modern config only for local dev, fixing multi-compiler issues with HRM
- Remove
[hash]
from dev config to eliminate potential memory errors - Use
[contenthash]
in production instead of hash or chunkhash
- Added
init
to thedocker-compose.yml
to processes are sent signals - Added
--no-tablespaces
to the mysqldump command options to work around changes in MySQL
- Fix redis session config to use
App::sessionConfig()
- Add native image lazy loading
- Slim Docker containers after build
- Refactored Docker config to use more sane contexts during builds, speeding up build time immensely 🎩 Patrick
- Change
throwExceptions
deprecator config to useApp::env('DEV_MODE')
- Disable the ForkTS plugins for now
- Added TypeScript support
- Use Vue.js 3.0
- Added
buddy.yml
for atomic deployments
- Replaced moment with vanilla JavaScript
- Replaced
getenv()
withApp::env()
- No longer use DSN for db connections
- Switch from TSLint to ESLint
- Fixed config path in the module
helpers/Config.php
- Use DSN for database connections
- Added baked-in support for xdebug
- Always do a
composer install
&npm install
when starting up viadocker-compose up
- Fixed tab handler not adding the class to the
<body>
- Added support for repo.repman.io Packagist proxy global CDN
- Use the CSS hash for Critical CSS cookie value
- Fixed Asset Bundle namespace casing
- Remove project
composer.lock
file - Use separate app config files for web/console requests
- Removed
SITE_NAME
from the.env
vars; it's not a secret, and it doesn't change per environment
- Remove Craft & Plugin Licenses from .env — not necessary except for public repos
- Synced up the
project.yaml
with theseed_db.sql
so it can properly propagate - Added a default
SECURITY_KEY
inexample.env
- Skip a superfluous copy operation in the Nginx container
- Added
SERVERLESS_SHARP_CLOUDFRONT_URL
to theexample.env
- Added plugin licenses environment variables to
project.yaml
- Added
SERVERLESS_SHARP_CLOUDFRONT_URL
to the ImageOptimized default settings inproject.yaml
- Added
seed_db.sql
to seed the initial database
- Numerous setup changes/tweaks
- Switch base config setup to MariaDB instead of Postgres
- Switch to Docker for local dev
- Remove
craft.twigpack.includeCssRelPreloadPolyfill()
- Use a regular function for our ServiceWorker registration JS, because IE11
- Remove the
include
setting fromconfigureBabelLoader()
- Add
sourceType: 'unambiguous'
to better handle different types of modules
- Set
'defaultTokenDuration' => 'P2W'
inconfig/general.php
for longer preview tokens
- Added
settings.babelLoaderConfig.include
- Removed entirely the concept of a "modern" and "legacy" build from the
webpack.dev.js
; we don't need legacy builds withwebpack-dev-server
- Changed deprecated use of
cacheFirst
toCacheFirst
in the Workbox config
- Added a default
config/project.yaml
for base setup
- Updated
.gitignore
and.env.example
- Ignore CP and
.php
for Service Worker runtime caching - Remove
siteUrl
, since it is now set via Project Config
- Added
maxUploadFileSize
togeneral.php
- Added
/web/dist/*
to.gitignore
- Refactored the error pages out to a single channel
- Added generic login image background
- Numerous template changes to get the base build working
- Updated to use modern webpack config
- Updated to use Craft 3.2 as the baseline
- Removed references to the Craft RC in the
composer.json
- Added SEOmatic to the list of base plugins
- Change the Critical CSS loader to
onload="this.onload=null;this.rel='stylesheet'"
for IE 11 compatibility
- Updated
composer.json
to reflect the updated dependencies - Fixed the site module's controller namespacing
- Added
sort-packages
to thecomposer.json
- Added
async-queue
plugin
- Fixed composer dependencies to reflect the
nystudio107/craft-
renaming
- Tell Composer to install PHP 7.0-compatible dependencies
- Fixed
sitemodule
namespacing
- Switched from
craft.app.config.general.custom.baseUrl
toalias('@baseUrl')
- Added
post-install-cmd
tocomposer.json
- Synced the
modules/site
withsite-module
and pluginfactory.io generated modules
- Added a static asset filename-based cache busting
LocalValetDriver.php
for Laravel Valet
- Added a better PurgeCSS pipeline
- Added a
purgecssWhitelist
topackage.json
- Execute JavaScript when doing Critical CSS
- Added a
criticalWhitelist
topackage.json
- Added SiteModule framework to nystudio107/craft
- Added a
post-update-cmd
tocomposer.json
to recreate any symlinks that may have been removed after acomposer update
orcomposer install
- Added
purgecss
to production builds - Added automatic incrementing of
staticAssetsVersion
for production builds
- Updated to use the latest
critical
package, adjustedgulpfile.js
base path
- Slurp whitespace with the minify tags
- Fix favicon URLs/meta
- Fix manifest
- Fixed asset versioning in
sw.js
- Run all inline JavaScript through
js-babel
for ES6 goodness
- Added base VueJS and Axios support
- Updated for Craft CMS 3 RC1 release
- Fixed deprecation errors
- Cleaned up the default ServiceWorker in
sw.js
- Added Fontello CSS to the
package.json
- Added PhpStorm Craft app API type hinting
- Added accessible tabhandler.js
- Added Tailwind CSS
- Added support for Redis via
app.php
- Fixed
package.json
paths forweb/
- Cleaned up the default templates
- Added
src/conf/
for Nginx or other configuration files
- Initial release
Brought to you by nystudio107