{"id":18336227,"url":"https://github.com/openremote/openremote-cli","last_synced_at":"2025-04-06T04:35:11.724Z","repository":{"id":58083272,"uuid":"336346767","full_name":"openremote/openremote-cli","owner":"openremote","description":"Command line tool for managing OpenRemote v3 stack.","archived":false,"fork":false,"pushed_at":"2024-04-20T12:03:34.000Z","size":572,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-05-01T11:38:56.445Z","etag":null,"topics":["cli","iot","openremote"],"latest_commit_sha":null,"homepage":"https://github.com/openremote/openremote","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openremote.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-02-05T17:48:40.000Z","updated_at":"2024-04-20T12:03:38.000Z","dependencies_parsed_at":"2024-04-20T12:41:48.860Z","dependency_job_id":"eaea6390-9acf-4ab1-ba45-fe0be00a574e","html_url":"https://github.com/openremote/openremote-cli","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fopenremote-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fopenremote-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fopenremote-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fopenremote-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openremote","download_url":"https://codeload.github.com/openremote/openremote-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223238121,"owners_count":17111359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","iot","openremote"],"created_at":"2024-11-05T20:06:55.268Z","updated_at":"2024-11-05T20:06:55.821Z","avatar_url":"https://github.com/openremote.png","language":"Python","funding_links":["https://www.paypal.com/webapps/shoppingcart?flowlogging_id=4b5432e8ad1a8\u0026mfid=1616517920020_4b5432e8ad1a8"],"categories":[],"sub_categories":[],"readme":"![CI/CD](https://github.com/openremote/openremote-cli/workflows/CI/CD/badge.svg)\n![docker](https://github.com/openremote/openremote-cli/workflows/docker/badge.svg)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Open Source? Yes!](https://badgen.net/badge/Open%20Source%20%3F/Yes%21/blue?icon=github)](https://github.com/Naereen/badges/)\n[![Donate](https://img.shields.io/badge/donations-appreciated-green.svg)](https://www.paypal.com/webapps/shoppingcart?flowlogging_id=4b5432e8ad1a8\u0026mfid=1616517920020_4b5432e8ad1a8#/checkout/openButton)\n\n# OpenRemote CLI\n\n## Intro\n\nThis is Command Line Interface to OpenRemote IoT platform. It's purpose is to reduce friction of using OpenRemote by Do It Yourself users.\n\nIt is published as a Python package on [PyPi.org](https://pypi.org/project/openremote-cli/)\n\n## About OR\n\nOpenRemote is a great real OpenSource IoT platform.\n\n## Usage\n\nTo install/upgrade the CLI:\n```bash\npip install --upgrade openremote-cli\nor --version\n```\n\n## Docker image\n\nThere is also docker image with embedded openremote-cli and other tools used during\nstack management, like `python`, `aws` or `docker-compose`. Therefore, `docker` is\nthe only tool installed when you need to work on remote host. Example:\n\n```\n% docker run -ti --rm openremote/openremote-cli -V\nopenremote-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\n% docker run -ti --rm --entrypoint bash -v ~/.aws:/root/.aws openremote/openremote-cli\nroot@4438b25d0834:/# aws --version\naws-cli/2.1.39 Python/3.8.8 Linux/5.10.25-linuxkit exe/x86_64.debian.10 prompt/off\n```\n\n### Deploy local OpenRemote stack\n\n```bash\nor deploy\n```\n\nWhen 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\nstart 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.\n\n### Remove local OpenRemote stack\n\n```bash\nor deploy --action remove\n```\n\n### Deploy OpenRemote stack on AWS with DNS entry\n\n```bash\nor deploy --platform aws --dnsname myiot.mydomain.com\n```\n### Check health of the openremote stack\n```bash\nor deploy -a health --dnsname myiot.mydomain.com -v\n```\n\n### Install shell completion extension\n\n#### zsh\n\n```bash\nTODO\n```\n\n#### bash\n\n```\nTODO\n```\n\n## Configure existing OpenRemote instance\n\n### Add users\n\n### Add assets\n\n### Add customization\n\n## Develop openremote-cli\n\nFollowing tools are used:\n- python (pip, poetry, black, PyPI.org)\n- git (pre-commit, actions)\n- docker (docker-compose, swarm)\n- AWS (CloudFormation)\n- make\n\n`poetry run openremote-cli -V`\n### Adding feature\n\nIn this project we use Behavior-driven development (or BDD). BDD is an agile\nsoftware development technique that encourages collaboration between developers,\nQA and non-technical or business participants in a software project.\n\nThis project uses Gherkin to define what features which should be covered. Features\nfiles can be generated by people on manager level or even higher. An example\nof file defining a feature:\n\n```gherkin\nFeature: deploy\n\n  Scenario: deploy to localhost\n    Given we have docker and docker-compose installed\n    When we call openremote-cli --dry-run deploy --action create\n    Then show what will be done\n```\n\nWhen the feature is implemented it can be checked with behave:\n\n```bash\n\u003e behave\nFeature: deploy # features/deploy.feature:1\n\n  Scenario: deploy to localhost                                  # features/deploy.feature:3\n    Given we have docker and docker-compose installed            # features/steps/deploy_steps.py:8 0.453s\n    When we call openremote-cli --dry-run deploy --action create # features/steps/deploy_steps.py:16 0.591s\n    Then show what will be done                                  # features/steps/deploy_steps.py:24 0.000s\n\n1 feature passed, 0 failed, 0 skipped\n1 scenario passed, 0 failed, 0 skipped\n3 steps passed, 0 failed, 0 skipped, 0 undefined\nTook 0m1.044s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenremote%2Fopenremote-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenremote%2Fopenremote-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenremote%2Fopenremote-cli/lists"}