Simple cloud service with HTTPs based REST API interface.
- Store files
- Upload
- Update
- Download
- Set tags (alphanumeric string)
- Set version
- Set access rights
- User management
- Add user
- Modify user
- Remove user
- Grant/revoke access to actions
- HTTPs interface
- Public port accessible to everybody
- Private port accessible only to authenticated clients
- Client authentication is based on signed certificate
- Create custom plug-in processes
- Submit reports
Initialize all submodules
git submodule init && git submodule update --remote
Following command will attempt to download and install all required packages, therefore it must be executed under priviledged (root) user
sudo ./src/range-build-tools/prereqs.sh
Next build directory needs to be created
mkdir build
cmake -S src -B build
cmake --build build --parallel
cmake --install build --prefix <install-dir>
Where <install-dir>
is a directory where software binaries and deployment script and configuration will be installed.
cmake --build build --target package
Following command will prepare complete directory structure, certificates and configuration for Cloud.
$ <install-dir>/scripts/cloud_setup.sh \
--cloud-directory=<deploy-dir> \
--public-http-port=4011 \
--private-http-port=4012 \
--range-ca=/path/to/range-ca \
--country=US \
--state=TX \
--location=Houston \
--organization=My Cloud \
--organization-unit=Cloud \
--common-name=my-cloud-host.com \
[email protected]
Where <deploy-dir>
is a directory where cloud instance will be deployed.
NOTE: There can be multiple deployments on the same host.
Following command will start Cloud as a background process.
$ <deploy-dir>/scripts/cloud_start.sh
Following command will stop Cloud running as a background process.
$ <deploy-dir>/scripts/cloud_stop.sh
$ <deploy-dir>/bin/cloud-tool --host-key=<path_to_public_host_key> \
--private-key=<path_to_client_private_key> \
--private-key-password=<client_private_key_password> \
--public-key=<path_to_client_public_signed_key> \
--test-request
Plugin processes are stored in /<path_to_cloud>/processes/
.
To trigger hello_world
plug-in process execute following command using cloud-tool
.
$ <deploy-dir>/bin/cloud-tool --host-key=<path_to_public_host_key> \
--private-key=<path_to_client_private_key> \
--private-key-password=<client_private_key_password> \
--public-key=<path_to_client_public_signed_key> \
--process --json-content='{ "name": "hello-world", "arguments": { "<value2>": "value2", "<value1>": "value1" } }'
To download already built binaries please visit http://range-software.com
- Qt - https://www.qt.io/