# Design and Development

We use CraftCMS and Laravel Forge.

# Domain Access

  1. Have the client grant us access to their domain or register a new domain and grant us access.

  2. Add domain access information in 1Password Webmaster Vault.

  3. Ensure the client's domain is set to auto renew.

  4. 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

  1. Update the README.md file

  2. Change password on Harvest Media admin user account and record it in 1Password

  3. Update settings in config / general

  4. Update settings in Craft / settings

  5. Update settings in SEOmatic

  6. Update asset volume settings (Amazon S3)

  7. Or use an alternative S3 compatible storage solution such as Linode

  8. 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.

  9. See bucket policies to limit access

  10. https://aws.amazon.com/premiumsupport/knowledge-center/s3-console-access-certain-bucket/ (opens new window)

  11. https://docs.aws.amazon.com/AmazonS3/latest/dev/example-policies-s3.html (opens new window)

  12. Configure SMTP settings to use sendgrid api.

  13. Generate favicons with https://realfavicongenerator.net/ (opens new window)

Last Updated: 3/25/2021, 6:42:18 AM