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