# Design and Development
We use CraftCMS and Laravel Forge.
# Domain Access
Have the client grant us access to their domain or register a new domain and grant us access.
Add domain access information in 1Password Webmaster Vault.
Ensure the client's domain is set to auto renew.
Set Up DNS Linode Cloud Manager (opens new window)
- Log in to Linode Cloud Manager
- Create a DNS zone for the client's domain.
- Add their current DNS records.
- Configure a SendGrid API key for the client.
- Add SPF records for their email.
- Add sender authentication records provided by SendGrid.
- Set the DNS for the client's domain to Linode's nameservers.
# Set Up Local Development
# Install CraftCMS
We are in transition to using php composer-based starter packages for our different types of sites.
# business site
composer create-project harvest-media/craft-business <name_of_directory>
# church site
# Coming soon
Next, run the setup shell script. The shell script checks to see if the following are installed and accessible on the commandline:
- valet
- mysql
- mysqlshow
It also checks to see if you have a ~/.my.cnf
file. If you do not, it creates one for you. This
file is used to access your local mysql without using a password on the commandline. The assumption for
local dev is that you are using the root user with no password.
# change directory into the new project you just created with composer
cd <name_of_directory>
# run the setup script
# ./setup.sh <db_name_to_create> <site_name> <local_dev_address>
# notice for the local address that we are not adding .test to it. The script will do that.
./setup.sh "example_local" "My Example Install Site" "example"
Once the script is finished running, your CraftCMS .env file will be populated for local dev and you
can go to http://example.test/admin
and login with:
- User: dev@harvestmedia.com
- Password: CoffeeIsAwesome
# Finish Repository Setup
When you are ready for your initial commit, use the SourceTree client to add the local repository that was created by the setup.sh script. Make your initial commit and create the remote repo at the same time.
Then, login to BitBucket, find the new repo, create a project for it and make sure it is in the Harvest Media account.
# Configure the Client
Update the README.md file
Change password on Harvest Media admin user account and record it in 1Password
Update settings in config / general
Update settings in Craft / settings
Update settings in SEOmatic
Update asset volume settings (Amazon S3)
Or use an alternative S3 compatible storage solution such as Linode
When installing fortrabbit object storage, you need to change the php version in the composer.json file to 7.4 or the plugin will not install.
See bucket policies to limit access
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-policies-s3.html (opens new window)
Configure SMTP settings to use sendgrid api.
Generate favicons with https://realfavicongenerator.net/ (opens new window)