This project is based on the official Craft 3 starter project
- Environment Considerations
- New Project Setup
- Miscellaneous Information
- Project Specific Information
- About Craft CMS
Run: $ xcode-select --install
and follow the instructions. It can take a few minutes to install.
You can download MAMP here and find the installation instructions here.
CraftCMS v3 now uses PHP Composer to manage Craft updates, plugins, and other things related to CraftCMS. While there are installation instructions for various operating systems, we have found that the most common setup (i.e. MacOSX and Ubuntu Linux) can be installed by doing the following:
- Ensure that you have PHP installed
- Download and save the Composer installer here: https://getcomposer.org/installer
- Open a terminal and go to the directory in which you saved the Composer installer.
- Run the following command from the terminal in order to install Composer globally (assuming the file you downloaded and saved is named "installer":
$ php installer --install-dir=/usr/local/bin --filename=composer
- Run
$ composer --version
to verify that the installation was successful.
If all goes well and you were able to install Composer globally, then this is the only time you will have to install Composer.
CraftCMS v3 projects based on craft-boilerplate
utilize nodejs
, npm
, and laravel mix
, in order to run SASS processing, javascript minifcation, and autoprefixing.
Find out how to download and install node
for your environment here (which includes npm
): https://nodejs.org/en/download/
Follow these instructions when you need to start a brand new CraftCMS from scratch, utilizing this bootstrap project as a foundation and a starting point.
- Ensure that you have installed all required software - see Environment Considerations
- Download the latest archive master version of the craft-boilerplate project, found here
- Create a new directory for the new project and unzip the craft-boilerplate archive into this directory.
- Open up a terminal and change the directory where you unzipped the archive above.
- Run
$ composer install --no-scripts
, which will download Craft and all associated plugins. - Run
$ composer run-script post-create-project-cmd
, which will guide you through the "CraftCMS Initialization" steps that ultimately create an .env file and set your security key. - Add a new site/database to MAMP and make sure a database is available for Craft to be installed into.
- MAMP users need to make sure and uncomment a line in the
.env
forBACKUP_COMMAND
,RESTORE_COMMAND
, andDB_SOCKET
- Run
$ ./craft setup
and follow the instructions, which will fill out the rest of the fields in your .env file and set up the database for first-time use. - Run
$ npm install
, which will install all Node dependencies for this project. - Access your control panel at
/admin
and login using the credentials you created during installation. Browse to Settings -> Plugins, and install each of the plugins listed.
This CraftCMS project expects certain files to be in specific locations in order to be used.
- assets/ - Parent directory where javascripts/sass files are stored
- assets/javascript/ - Your project's javascript files go here.
- assets/sass/ - Your project's SASS files go here (Tailwind CSS by default).
- config/ - Parent directory which holds configuration files
- config/db.php - Database configuration, but mostly pulled from
.env
- config/general.php - General CraftCMS configuration file
- config/license.key - License key that gets generated upon site bootstrap.
- config/project.yaml - Project Config settings to help sync your fields/sections/settings across environments.
- config/db.php - Database configuration, but mostly pulled from
- modules/ - Holds any custom Yii modules you might be using
- public/ - Project's site root according to your webserver
- public/images/ - Project's non-asset images are stored here (git controlled)
- public/index.php - Root PHP file read by the webserver
- public/uploads/ - Parent directory for all uploaded assets (not git controlled)
- public/assets/ - Compiled assets (js/sass/etc) get put here (not git controlled)
- scripts/ - Utility shell scripts to perform various functions
- storage/ - CraftCMS dynamically generated files, such as logs and backups.
- templates/ - The location for all Twig templates
- .env.example - Example
.env
file - composer.json - PHP Composer configuration file
- composer.lock - PHP Composer package information lock file
- craft - CraftCMS PHP console application
- craft.bat - CraftCMS console loader for Windows
- favicon.js - Automated utility for saving favicon and other files like that
- tailwind.config.js - Tailwind css configuration
- webpack.mix.js - Laravel Mix configuration (sass/js compilation, etc)
- package.json - npm packages configuration file
- package-lock.json - npm packages information lock file
More detailed information about the default structure can be found here: https://docs.craftcms.com/v3/directory-structure.html
- Database and environment name are set in the .env file when you craft setup
- This file is not tracked in git, helping to keep passwords more secure
- My development environment is setup using apache which I find a tad simpler to work with locally
- Refer to this repo if the staging/prod environment is not using our setup scripts
- It may be a little heavy handed so an alternative with the least amount of required bits is here
- Laravel Mix makes webpack implementation very easy and has a fairly basic setup for Sass and JS merging
- No database is included.
- Add a blank database to your local host and then fill in the details of that when running
./craft setup
- Go to yourdomain.test/admin and craft will install a new version into that empty database
- Tailwind CSS is included in the project
- Use these scripts to pull down db and assets
- Change the settings in the
/scripts/.env.sh
file to match your local machine and the remote server
Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web and beyond.
In technical terms, it’s a self-hosted PHP 8 application backed by a MySQL or Postgres database. Read more in the official documentation.
Psst! Looking for the Craft source code? Need to file a bug report or feature request? Check out craftcms/cms
.
📯 If you just heard about Craft: Take a feature tour on our website—then spin up a demo project to try them out for yourself.
👷♀️ If you are eager to start building: You’re in exactly the right place!
This repository is a bare-bones Composer “project,” intended for use with the composer create-project
command. It contains only the folders and files absolutely required to run Craft.
Note Our tutorial covers this setup process in greater depth. If you get stuck, give it a once-over; if things still aren’t clicking, help is never far away in our community or via official support.
You can also find these instructions (and some other helpful tips) in the documentation.
The best way to spin up your first project is with DDEV, a cross-platform, Docker-based PHP development environment.
- Install DDEV
- Choose a folder for your project and move into it:
cd /path/to/web/projects mkdir my-project cd my-project
- Configure a new DDEV project, and install Craft:
ddev config --project-type=craftcms --docroot=web --create-docroot # Use this package as a starting point: ddev composer create -y --no-scripts craftcms/craft # Run the Craft CMS installer (use all defaults): ddev craft install
- Run
ddev launch
to open the project in your browser.
Craft’s control panel is located at /admin
. The rest is up to you! Pick up where we left off in the tutorial, or dive right in on modeling your own content:
- 🗃️ Elements: Learn about Craft’s core content types, and how to customize them.
- 📐 Fields: Create precisely the data structure and authoring experience you need.
- ✏️ Templating: Start using your data in a totally custom front-end.
Craft comes with a ton of official and community resources.