This is Command Line Interface to OpenRemote IoT platform. It's purpose is to reduce friction of using OpenRemote by Do It Yourself users.
It is published as a Python package on PyPi.org
OpenRemote is a great real OpenSource IoT platform.
To install/upgrade the CLI:
pip install --upgrade openremote-cli
or --version
There is also docker image with embedded openremote-cli and other tools used during
stack management, like python
, aws
or docker-compose
. Therefore, docker
is
the only tool installed when you need to work on remote host. Example:
% docker run -ti --rm openremote/openremote-cli -V
openremote-cli/0.6.46 3.8.10 (default, May 12 2021, 15:56:47) [GCC 8.3.0] Linux/#1 SMP Tue Mar 23 09:27:39 UTC 202
% docker run -ti --rm --entrypoint bash -v ~/.aws:/root/.aws openremote/openremote-cli
root@4438b25d0834:/# aws --version
aws-cli/2.1.39 Python/3.8.8 Linux/5.10.25-linuxkit exe/x86_64.debian.10 prompt/off
or deploy
When it finishes you should be able to open https://localhost and login with admin:secret to the manager. Depending on your machine it can take few minutes to
start or services (usually less than 10 minutes). If it does not work yet, check it with docker ps
to see if all services are in healthy or starting stage.
or deploy --action remove
or deploy --platform aws --dnsname myiot.mydomain.com
or deploy -a health --dnsname myiot.mydomain.com -v
TODO
TODO
Following tools are used:
- python (pip, poetry, black, PyPI.org)
- git (pre-commit, actions)
- docker (docker-compose, swarm)
- AWS (CloudFormation)
- make
poetry run openremote-cli -V
In this project we use Behavior-driven development (or BDD). BDD is an agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project.
This project uses Gherkin to define what features which should be covered. Features files can be generated by people on manager level or even higher. An example of file defining a feature:
Feature: deploy
Scenario: deploy to localhost
Given we have docker and docker-compose installed
When we call openremote-cli --dry-run deploy --action create
Then show what will be done
When the feature is implemented it can be checked with behave:
> behave
Feature: deploy # features/deploy.feature:1
Scenario: deploy to localhost # features/deploy.feature:3
Given we have docker and docker-compose installed # features/steps/deploy_steps.py:8 0.453s
When we call openremote-cli --dry-run deploy --action create # features/steps/deploy_steps.py:16 0.591s
Then show what will be done # features/steps/deploy_steps.py:24 0.000s
1 feature passed, 0 failed, 0 skipped
1 scenario passed, 0 failed, 0 skipped
3 steps passed, 0 failed, 0 skipped, 0 undefined
Took 0m1.044s