💁♀️ Lisa CLI is a command line tool that will help you to automate the process of creating a new site based on the lisa-app and the lisa-api
The features that is included now is the following:
- Setup repos on GitHub based on the lisa-app and the lisa-api repos.
- Setup site with Valet, including dependencies installation and local database creation.
- Reencrypt all vault files with a new password
- Create a development database
- Add all the config needed to be able to deploy the site to Kinsta with Trellis
You will need to install and configure the following stuff to use Lisa CLI:
- Node version >= 12
- GitHub CLI (setup instructions) version >= 2.6
- ansible-vault (comes from Ansible) version >= 2.12
- WP-CLI version >= 2.5
- Trellis CLI version >= 1.5
- Valet version >= 2.18
- Vercel CLI version >= 28.0
- AWS CLI version >= 2.4
- 1Password CLI version >= 2.18
npm i -g @triggerfishab/lisa-cli
-
Setup a new site on Kinsta, with both staging and production environments.
-
4.1 Fill your template
-
Run
lisa init --config-file <kinsta-config-file.yml>
Use this command to setup a local Lisa site that already has been configured.
Read more
If you want to setup an already existing Lisa site for local development, you can just run the following command:
Example: lisa clone
Use this command to configure all the necessary API keys.
Read more
Before setting up your first site, you will need to run this command to enter all the necessary API keys that the program uses. All of these can be found in the "Lisa CLI" item in 1Password.
Example: lisa configure [service]
If you've entered incorrect values or need to change them, use the --reset
option below. 💡 Pass an argument for which service to configure to not reset all of them.
Use this option with the configure
command to reset your previously configured API keys.
Example: lisa configure --reset
Use this argument for which service to configure, available services: aws
, godaddy
, sendgrid
Use this command to import a database from the production/staging environment of your site.
Read more
Use this command to import a database from the production/staging environment of the site that you're working on. A prompt will ask you whether you will import it from staging or production
This command will ask for the project name and try to find the correct repos that you should use. If not the correct repos are found, the prompt will let you specify them manually.
Use this command to create a new Lisa site.
Read more
This command will create a new Lisa site for you. You will get both a WordPress API and a Next.js application for the frontend.
The following will be included:
- GitHub repos
- Amazon AWS S3 bucket for media handling
- Amazon AWS Cloudfront CDN for media files
- GoDaddy records for DNS
- Sendgrid subuser for email sending
When the command is done, you will have the following on your computer:
- API site linked to Valet on the domain https://{projectName}-api.test
- Next.js frontend app on http://localhost:3000
Specify the location of your Kinsta config file that you have created via the command lisa kinsta
Use this command to create a site on Kinsta or get a template file for all your Kinsta configuration values.
Read more
Use this command to create a site on Kinsta or get a template file for all your Kinsta configuration values.
Example: lisa kinsta [action]
create
After the site has been created, an email will be sent to the provided email address.
show-config
After the file has been created, update all existing values with the corresponding values from the site at Kinsta that you created earlier.
Use this command to set (or get) your global sites path.
Read more
Use this command to set (or get) your global sites path. This needs to be set to inform Lisa CLI where to do it's 🪄magic🪄.
Example: lisa path [path]
Specify a path to set that as your Lisa path. If not specified, you will be given your current Lisa path as output instead.
Use this command to show your Lisa status.
Read more
Use this command to show your Lisa status. You will get output including your current Lisa path and all versions of your packages.
Example: lisa status
Use this command to create a new page component in a Lisa project.
Alias: pcc
Read more
Use this command to create a new page component in a Lisa project.
It will create basic ACF fields in the api, create a GraphQL fragment, type definitions and a base component in the app.
Example: lisa page-component create
Use this command to create services for S3, CloudFront & GoDaddy without all the other Lisa stuff.
Read more
Example: lisa cdn create
Use this command to create user account and generate api key for SendGrid
Read more
Example: lisa sendgrid create
Update WordPress and Composer dependencies.
Read more
Examples:
lisa wp update
lisa wp update --fast
commands that will be run:
without --fast
composer require composer/installers -W
composer require roots/acorn -W
composer require roots/wordpress -W
composer require rector/rector -W --dev
composer require squizlabs/php_codesniffer -W --dev
composer require johnbillion/query-monitor -W --dev
with --fast
composer require composer/installers roots/acorn roots/wordpress -W
composer require rector/rector squizlabs/php_codesniffer johnbillion/query-monitor -W --dev
Use this command to create DNS-records in GoDaddy. I.e. for validation and pointing in Kinsta.
Read more
Example: lisa godaddy create
This command creates an aws iam user that's restricted to specific bucket(s).
Read more
Once the user's been created access keys will be generated and stored in the AWS vault in 1password. Copy these keys and paste them in the vault-file of your site/project.
Example: lisa aws user create
This command creates lifecycle rule for objects in the bucket
Read more
Create lifecycle rule for dealing with deletion of non-current versions of objects after 1 day. Objects with a delete flag will be removed after 30 days.
Example: lisa s3 bucket set-lifecycle-policy
Generate a new .vault_pass file for the project.
Read more
This command will generate a new .vault_pass file for the project. This is used to encrypt and decrypt the vault files in the project.
Example:
lisa vault-pass-generate