SPT Items

  • You can use either of the two drone pipeline types:
  • Some enhancement ideas can be found here

Required secrets

secret name description example
spt_items_hostname The remote server where spt-items-finder will be reachable
used for the frontend resolution
spt-items.my.server.com
deploy_path The path to deploy to in the remote machine /var/www/html/aki/Website/items
deploy_hostname The remote server where to deploy
used by Ansible SSH
my.server.com
deploy_username The default username to use on the remote server
used by Ansible SSH
www-data
deploy_user_group The default user group to use on the remote server
used to set permission on the website folder
www-data
deploy_ssh_key The content of the ssh private key used to connect to the remote server
The key needs to be in RSA in "RSA PRIVATE KEY" format
The ssh publick key needs to already be in the user used in the remote server ~/.ssh/authorized_keys
-----BEGIN RSA PRIVATE KEY-----
The key
-----END RSA PRIVATE KEY-----
deploy_ssh_key_passphrase The passphrase to decrypt the SSH private key test

⚠ Important notes for the deployment ⚠

  • Add all required secrets in Drone
  • Server permissions:
    1. The server must be able to use apt package manager
    2. The deploy_usernam must exists, be part of the group deploy_user_group and be able to SSH into the server
    3. If the parent folder of deploy_path already exists, deploy_username must have read and write permissions on it
  • PHP:
    1. php8.0-fpm and all its dependencies must already be installed
    2. php8.0-fpm must be configured to use deploy_username (to ensure the cache created by Laravel can be deleted before every new deployment)
  • Nginx:
    1. Nginx must be using uses the user group deploy_user_group
    2. Nginx must be configured to use HTTPS
    3. Nginx must be configured to listen to spt_items_hostname and to point to the deploy_path

The pipeline summary

  1. Each push will:
    1. Builds the frontend
    2. Move the build frontend in the backend public folder
  2. IF Promoted to production, deploys to the server

The pipeline walkthrough

see Walkthrough.md

Some enhancement ideas

  • Store the build so that it is not rebuilt on any promote event
  • Use a volume or a cache for Yarn install