Skip to main content

Deploying

The deployment model that we recommend is inspired by the Capistrano deployment tool.

The proposed deployment can support multiple clients and protocols and can do a rollback in case of emergency.

Deploy one data-listener per protocol. All client configs are pre-protocol.

Take a look at the folder structure:

/opt/pointgrab/CLIENT_NAME/
/opt/pointgrab/CLIENT_NAME/shared
/opt/pointgrab/CLIENT_NAME/shared/log
/opt/pointgrab/CLIENT_NAME/shared/data
/opt/pointgrab/CLIENT_NAME/shared/config/config.toml
/opt/pointgrab/CLIENT_NAME/releases
/opt/pointgrab/CLIENT_NAME/releases/20240118132715/
/opt/pointgrab/CLIENT_NAME/releases/20240118132715/data-listener
/opt/pointgrab/CLIENT_NAME/current -> /opt/pointgrab/releases/20240118132715/
  • /opt/PROTOCOL each protocol will have it's own folder and instance of data-listener
    • ./releases/TIMESTAMP - each new version will be stored in new folder, easy to rollback
    • ./shared - will hold the data still during the deploys. Logs, recieved data and configs will survive the deploys.
    • ./shared/[configs, logs, data] - The client configs are stored in "configs", their
    • ./current - soft link to the latest ./releases/TIMESTAMP