CANcloud is an open source S3 browser for managing your CANedge2/CANedge3 CAN loggers and data.
The tool is a simple front-end that can be hosted on a web server and accessed via your browser. No backend functionality is included - the backend is purely your own S3 bucket.
At CSS Electronics, we always host the latest version of CANcloud - but you can build, customize & host it yourself as well.
1. Securely login to any S3 server by providing your endpoint, credentials and bucket name
2. List all objects within an S3 bucket in a folder structure hierarchy
3. Easily navigate between connected CANedge2/CANedge3 devices via the sidebar
4. Download, share & delete objects - or upload files (e.g. firmware.bin or certs_server.p7b for over-the-air updates)
5. Configure CANedge devices via an online editor - and submit for easy over-the-air updates
6. Encrypt configuration passwords using the built-in encryption tool
7. Add device meta data (incl. pictures and searchable meta name)
8. Easily customize the portal with your own logo and CSS styling (see `src/browser/index.html`)
For more details on CANcloud and the CANedge2 see below:
- CANcloud intro
- CANcloud docs
- CANedge2 2 x CAN/LIN logger with WiFi
- CANedge3 2 x CAN/LIN logger with 3G/4G
You can easily host CANcloud on your own web server by unzipping the latest release contents to your target folder.
If you wish to customize your self-hosted version of CANcloud, you can do so without building the tool. To add your own logo, simply replace the logo files in the images/ folder. Further, in the customize-css folder you'll find a customize.css file that lets you easily modify the most relevant styles to create custom branding for your self-hosted CANcloud solution.
- Clone the repository
- Run
npm installin the folder to install application dependencies (tested onnode: 'v16.16.0'andnpm: '8.11.0') - Run
npm startto run application in development mode
- Run
npm run build - Copy the contents of the
sitefolder to your web server
You can now access your own self-hosted version of CANcloud - incl. any customizations made.
If you have set up e.g. an AWS S3 server and bucket, your login details could look as below:
endpoint: https://s3.amazonaws.com
accessKey: LBIDJHBOIZQ3XBJ23UUQ
secretKey: Jxasdeue3324e3/wqe9wewdcxsa219421Hsj
bucket: aws-cancloud-bucket
Note the following:
- When logging into a MinIO server the port should be included (e.g.
http://5.123.138.42:9000) - You need to create your bucket before you can login (i.e. outside of CANcloud, e.g. in your AWS console)
- For some S3 servers (e.g. AWS), you may need to change the CORS config - see the getting started docs
CANcloud ships a Jest + Enzyme unit-test suite living alongside the source under src/browser/js/**/__tests__.
- Run the full suite:
npm test(or, on Windows, double-click / runrun-tests.bat) - Run a subset by name:
run-tests.bat objectsornpx jest --runInBand objects
Notes:
- Tests run serially (
--runInBand). On the pinned toolchain (jest 23 / node 16.16.0) parallel workers can contend and produce empty output. - The suite is fully client-side: the S3 layer (
web) is mocked, so no live server or credentials are needed to run the tests.
The CANcloud versioning is inspired by the semantic versioning system.
Each version is assigned three two digit numbers: MAJOR, MINOR, PATCH:
MAJOR: Incompatible changes (e.g. requires new browser settings)MINOR: New backwards-compatible functionality (e.g. new features)PATCH: Backwards-compatible bug fixes (e.g. minor patches)
Example: version 04.01.01
Feature suggestions, pull requests or questions are welcome!
You can contact us at CSS Electronics below:
- www.csselectronics.com
- Contact form
- contact[at]csselectronics.com
CANcloud uses a number of libraries - the most important are:
minio: CANcloud utilizes some of the core structure & S3 SDK calls from the MinIO browser- config-editor-base: This library serves as the basis for the built-in configuration editor
- config-editor-tools: This library adds various supporting config editor tools