The Cloudify Console provides User Interface for managing and analyzing Cloudify Manager.
The following requirements should be met prior starting the application:
- Node.js (version >= 12.16.x) installed
- With NVM installed just execute
nvm use
to set proper version of Node.js
- With NVM installed just execute
- PostgreSQL (version >= 9.5.x) installed and configured:
- Make a database named
stage
- Make a user named
cloudify
withcloudify
as password - You can do this easily with docker:
docker pull postgres docker run --name postgres-cfy -e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER=cloudify -e POSTGRES_DB=stage -p 5432:5432 -d postgres
- Make a database named
- Cloudify Manager (version >= 5.x) accessible from your local machine
To setup development environment and start the application follow the steps below.
-
Configuration
- Create
conf/me.json
file basing onconf/me.json.template
. - Change
<MANAGER_IP>
into real IP of your Cloudify Manager in that file.
- Create
-
Dependencies installation
Run
npm run beforebuild
to install application dependencies. -
Database setup
Run
cd backend && npm run db-migrate
to initialize database. -
Application start
You can run the application by starting the stage backend server and starting webpack dev server serving client side:
-
In
backend
folder, runnpm run devStart
to start backend server
NOTE: you will need to have write permissions to/var/log/cloudify/stage
). For more information and troubleshooting visit backend. -
And also run
npm run devServer
to start webpack dev server.
-
At this point you should have development environment configured and running. Open http://localhost:4000 page in your web-browser to see if application is running.
Changes in the source code shall be loaded to the development version of the application:
- for changes in app and widgets directory you need to reload page to see your updates,
- for changes in backend directory you don't need to reload page as backend server will automatically be restarted.
You can create application package and deploy it on a remote Cloudify Manager server.
You can create either tarball package or RPM package.
To create tarball package:
- Create production build by running:
npm run build
. - Pack all necessary files into archive by running:
npm run zip
. - Application package will be in
stage.tar.gz
file in repository main directory.
To create RPM package:
- Push branch with your changes to the remote.
- Your RPM package will automatically be created by CircleCI (check Artifacts tab on the
build-rpm
job).
To upload the package to the remote Cloudify Manager:
- Copy private SSH key to access Cloudify Manager to
~/.ssh/cloudify.key
or explicitly define path to it:export SSH_KEY_PATH=<PATH>
. - Define Cloudify Manager IP address by specifying
manager.ip
inconf/me.json
or by exporting environment variable:export MANAGER_IP=<MANAGER_IP>
. - Make sure tarball package (
stage.tar.gz
) is built or explicitly define path to the tarball or RPM package:export STAGE_PACKAGE=<PATH>
. - Run uploading script:
npm run upload
. - Open browser and go to page
http://<MANAGER_IP>
to see if application is running.
Package tarball archive contains the following resources:
backend
- Stage Backend - whole backend folderconf
- configuration files (see Configuration for details)dist
- Stage Frontend - directory created by Webpack according to the production configurationappData
- built-in application datatours
- built-in tours - whole tours folderwidgets
- built-in widgets<widget-name>
- every widget has its own folderwidget.js
- minified widget bundle file (+ gzip-compressed widget bundles)widget.js.gz
- (optional) gzip-compressedwidget.js
README.md
- documentation filewidget.png
- widget thumbnail
- ...
templates
- built-in templates - whole templates folderpages
- built-in pages - whole templates/pages folder
static
- static filesimages
- image filesfonts
- font filesjs
- JavaScript bundlesmain.bundle.js
- bundle created from client-side application source code (+ gzip-compressed bundle)main.bundle.js
- gzip-compressedmain.bundle.js
vendor.bundle.js
- bundle created from client-side application external dependenciesvendor.bundle.js.gz
- gzip-compressedvendor.bundle.js
index.html
- main HTML file (created from app/index.tmpl.html)
userData
- user application data (empty in clean package)widgets
- custom widgets (empty in clean package)templates
- custom templates (empty in clean package)pages
- custom pages (empty in clean package)
RPM package has all the files present in tarball package. In addition all files from packaging/files directory are installed.
Go to test/README.md.
-
Source Code documentation
-
Documentation way-of-work
See this to learn how this project is documented.
To get community support join Cloudify Community Slack.