The ACE SDSSGryphon stack serves the Doerr School of Sustainability. This stack is based on the SU-SWS/ace-gryphon stack.
The primary theme for SDSS is the sdss_subtheme
located in the sdss_profile
.
- Add your ssh key to GitPod
- It is recommended to have a password-less ssh key for simplicity.
ssh-keygen -b 4096
, press enter when asked for the password- Add this ssh public key to the necessary services: Acquia, Github, etc.
- Get the base64 string of your ssh key files
cat id_rsa | base64
for the private keycat id_rsa.pub | base64
for the public key.
- NOTE: Use
-w0
with base64 to remote any white space/line breaks.
- Get the base64 string of your gitconfig
cat ~/.gitconfig | base64
- In GitPod, add a variable named
SSH_PRIVATE_KEY
with the base64 encoded private key - In GitPod, add a variable named
SSH_PUBLIC_KEY
with the base64 encoded public key - In Gitpod, add a variable named
GITCONFIG
with your base64 encoded git config
- It is recommended to have a password-less ssh key for simplicity.
- Recommended, but not required:
- Install the GitPod browser plugin
- Configure your browser settings for an easier experience: https://www.gitpod.io/docs/configure/browser-settings
- Open a gitpod workspace with these instructions
Each site has the ability to determine its own configuration management strategy.
The default site in this repo will be using a configuration management that uses
the configuration from the sdss_profile
. By default this is the behavior
of all other sites unless defined within their own settings.php.
There are three options a site can choose from:
- Do nothing and the configuration sync directory will use what is in
sdss_profile
. - Modify the configuration sync directory to a desired directory such as another profile.
- Modify the configuration sync directory to point to an empty directory. This will bypass any configuration management strategy and the site's configuration will be updated via update hooks.
(See below for Lando config)
BLT provides an automation layer for testing, building, and launching Drupal 8 applications. For ease when updating codebase it is recommended to use Drupal VM. If you prefer, you can use another tool such as Docker, DDEV, Docksal, Lando, (other) Vagrant, or your own custom LAMP stack, however support is very limited for these solutions.
-
Install Composer dependencies. After you have forked, cloned the project and setup your blt.yml file install Composer Dependencies. (Warning: this can take some time based on internet speeds.)
$ composer install
-
Setup a local blt alias. If the blt alias is not available use this command outside and inside vagrant (one time only).
$ composer run-script blt-alias
-
Set up local BLT Copy the file
blt/example.local.blt.yml
and name itlocal.blt.yml
. Populate all available information with your local configuration values. -
Setup Local settings After you have the
local.blt.yml
file configured, set up the settings.php for you setup.$ blt blt:init:settings
-
Get secret keys and settings SAML and other certificate files will be download for local use.
$ blt sws:keys
Optional:
If you wish to not provide statistics and user information back to Acquia run
$ blt blt:telemetry:disable --no-interaction
You can set up this stack as a complete development environment using nothing more than Docker and Lando installed in your linux-like environment.
- Set up Docker on your distro of choice. Instructions for installing Docker in linux can be found here, and these are the MacOS instructions.
- Set up Lando on your distro of choice. Instructions for installing Lando in linux can be found here, and these are the MacOS instructions.
Because Docker works best with Windows Subsystem for Linux V.2, we suggest you proceed that way.
- Install Windows Subsystem for Linux V.2
- Install Docker Desktop for Windows, and enable the WSL2 extensions.
- Install Docker for linux in your WSL2 environment.
- Install Lando for linux in your WSL2 environment. Instructions can be found here.
No other prerequisites are necessary, though you may find it helpful to have PHP 8.1+, Composer 2, and Git installed locally on your system.
- Clone this repo to a convenient place in your environment, and change directories to the location to which you cloned it.
- In the repo root, run
./lando/setup_lando.sh
. - After the basic installation is complete, it will update the drush aliases, and it will sync down the
sustainability
database and files, and your app should be available athttp://sustainability.lndo.site
. SSO will be configured automatically.
-
Set up frontend build and theme. By default BLT sets up a site with the lightning profile and a cog base theme. You can choose your own profile before setup in the blt.yml file. If you do choose to use cog, see Cog's documentation for installation. See BLT's Frontend docs to see how to automate the theme requirements and frontend tests. After the initial theme setup you can configure
blt/blt.yml
to install and configure your frontend dependencies withblt setup
. -
Pull Files locally. Use BLT to pull all files down from your Cloud environment.
$ blt drupal:sync:files
-
Sync the Cloud Database. If you have an existing database you can use BLT to pull down the database from your Cloud environment.
$ blt sync
Additional BLT documentation may be useful. You may also access a list of BLT commands by running this:
$ blt
Note the following properties of this project:
- Primary development branch: 1.x
- Local environment: @default.local
- Local site URL: http://local.example.loc/
BLT projects are designed to instill software development best practices (including git workflows).
Our BLT Developer documentation includes an example workflow.
BLT uses a number of configuration (.yml
or .json
) files to define and customize behaviors. Some examples of these are:
blt/blt.yml
(formerly blt/project.yml prior to BLT 9.x)blt/local.blt.yml
(local only specific blt configuration)box/config.yml
(if using Drupal VM)drush/sites
(contains Drush aliases for this project)composer.json
(includes required components, including Drupal Modules, for this project)