{"id":21886800,"url":"https://github.com/develatio/nebulant-cli","last_synced_at":"2025-04-15T09:47:54.694Z","repository":{"id":44700598,"uuid":"444145814","full_name":"Develatio/nebulant-cli","owner":"Develatio","description":"Infrastructure as code in a visual and imperative way","archived":false,"fork":false,"pushed_at":"2025-03-13T01:05:33.000Z","size":7400,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T18:55:02.607Z","etag":null,"topics":["aws","azure","cli","cloud","go","golang","hetzner","hetzner-api","hetzner-cloud","imperative","imperative-programming","infrastructure","infrastructure-as-code","low-code","nebulant","no-code"],"latest_commit_sha":null,"homepage":"https://nebulant.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Develatio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2022-01-03T17:30:32.000Z","updated_at":"2024-12-22T23:23:21.000Z","dependencies_parsed_at":"2024-06-21T16:37:48.581Z","dependency_job_id":"df933e9b-3472-4b95-87b9-92629ea414d6","html_url":"https://github.com/Develatio/nebulant-cli","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Develatio%2Fnebulant-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Develatio%2Fnebulant-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Develatio%2Fnebulant-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Develatio%2Fnebulant-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Develatio","download_url":"https://codeload.github.com/Develatio/nebulant-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249048556,"owners_count":21204304,"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":["aws","azure","cli","cloud","go","golang","hetzner","hetzner-api","hetzner-cloud","imperative","imperative-programming","infrastructure","infrastructure-as-code","low-code","nebulant","no-code"],"created_at":"2024-11-28T11:07:27.758Z","updated_at":"2025-04-15T09:47:54.674Z","avatar_url":"https://github.com/Develatio.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Nebulant CLI\n============\n\n![Nebulant](https://raw.githubusercontent.com/develatio/nebulant-cli/main/logo.png)\n\nThe Nebulant CLI tool is a single binary that can be used as a companion tool\nfor the web editor (providing live-run and autocomplete features) or as a\nstandalone executor of Nebulant blueprint files (suitable for CI/CD\nenvironments).\n\nThe Nebulant project is a simple yet powerful UI-based tool that allows you to\ndefine and execute a chain of actions. Think of it as \"cloud automation\ntoolkit\" that you can use to script and automate actions performed on your cloud\nproviders, without writing code.\n\nActions can be anything, from simple operations such as `sleep` or `print`, to\nexecution control with conditional evaluation and loops, to API calls (e.g.\n`create an AWS EC2 instance`) performed on your favorite cloud provider.\n\nNebulant is an imperative way of controlling resources, which means that instead\nof describing the final result you're willing to obtain, you have the power to\ndefine exactly how and when each action should be done.\n\nFor more information, see the [website](https://nebulant.app) of the Nebulant.\n\n\u003cbr /\u003e\n\n📖 Documentation\n--------------------------------------------------------------------------------\n\nFind information about how to use the CLI, showcases, supported cloud providers\nand much more at\n[our docs website](https://nebulant.app/docs/cli/).\n\n\u003cbr /\u003e\n\n🏁 Quick Start\n--------------------------------------------------------------------------------\n\nThere are **two** main ways you can use this CLI:\n\n* as a companion tool for the [Nebulant Builder](https://builder.nebulant.app)\n* in a CI/CD pipeline\n\nLet's start with the first one:\n\nRunning the CLI as a companion tool for the\n[Nebulant Builder](https://builder.nebulant.app) will allow you to enjoy\nadditional features such as:\n\n* real time data retrieval from your cloud providers\n* blueprint execution directly from the browser\n* faster searching in specific cloud providers pre-fetched datasets (e.g., AWS's\nAMIs)\n\nIn order to execute this mode, run the CLI tool with the `serve` command:\n\n```shell\n$ ./nebulant serve\n```\n\nThe CLI should start listening at port `15678` in your `localhost`, which will\nallow you to connect to it from the\n[Nebulant Builder](https://builder.nebulant.app)\n\nTODO: \u003c^ PUT HERE A SHORT VIDEO OF THE ABOVE ^\u003e\n\nThe second way that you can use this CLI is by running blueprints directly with\nit. You'll most probably want to do this in any of the following situations:\n\n* you've finished creating your blueprint and you want to run it in a CI/CD pipeline\n* you found a blueprint in the\n[Nebulant Marketplace](https://builder.nebulant.app) and you want to run it.\n\nExecuting a blueprint is as simple as:\n\n```shell\n$ ./nebulant run -f your_blueprint.nbp\n```\n\nYou can also fetch and run blueprints directly from the marketplace:\n\n```shell\n$ ./nebulant run organization/collection/blueprint\n```\n\nOr from your own private organization, which requires you to sign up and create\na token from the [Nebulant Panel](https://builder.nebulant.app) (check the\n`Nebulant CLI configuration` section for more info):\n\n```shell\n$ export NEBULANT_TOKEN_ID=...\n$ export NEBULANT_TOKEN_SECRET=...\n$ ./nebulant run organization/collection/blueprint\n```\n\nTODO: \u003c^ PUT HERE A SHORT VIDEO OF THE ABOVE ^\u003e\n\n\u003cbr /\u003e\n\n⚙️ Building locally\n--------------------------------------------------------------------------------\n\nIf you want to compile the source code yourself, you can follow these steps:\n\nUsing Docker:\n\n```shell\n$ docker compose -f docker-compose.yml build --no-cache\n$ docker compose -f docker-compose.yml run --rm buildenv all\n```\n\nThis will build the source code for all supported OSs and architectures.\n\nYou can build the code for a specific combination of OS and architecture by\nreplacing `all` with the desired target in the second command. Example:\n\n```shell\n$ docker compose -f docker-compose.yml run --rm buildenv linux-amd64\n```\n\nCheck the table of supported OSs and architectures.\n\n\u003cbr /\u003e\n\n🖥️ Supported OSs and architectures:\n--------------------------------------------------------------------------------\n\n|         | arm | arm64 | 386 | amd64 |\n| ------- | --- | ----- | --- | ----- |\n| linux   | ✅  |  ✅   | ✅  | ✅   |\n| freebsd | ✅  |  ✅   | ✅  | ✅   |\n| openbsd | ✅  |  ✅   | ✅  | ✅   |\n| windows | ✅  |  ✅   | ✅  | ✅   |\n| darwin  | N/A |  ✅   | N/A | ✅   |\n\n\u003cbr /\u003e\n\n🧰 Reproducible Build\n--------------------------------------------------------------------------------\n\n[Reproducible builds](https://reproducible-builds.org/) *are a set of software\ndevelopment practices that create an independently-verifiable path from source\nto binary code.*\n\nAt Develatio, we believe in transparency, and we emphasize the safety of our\nproducts. For this reason, we offer you the means to build the source code\nyourself and verify that the resulting binaries match the ones that we provide.\n\nTo reproduce ***nix** and **windows** builds follow these steps:\n\n1. Clone the repo: `git clone https://github.com/Develatio/nebulant-cli.git`\n2. Checkout the version you'd like to build (e.g. `git checkout v0.6.0`)\n3. Build the source code (check the `Building locally` section)\n4. Run `diff` between the binary that you just built and the binary that we\nprovide. Make sure that both binaries have the same **version**, **OS** and\n**architecture**. You should see no differences, meaning that the binary that\nyou downloaded contains the exact same code as the binary you just compiled.\n\nTo reproduce **darwin** (aka MacOS) builds, the first 3 steps are the same, but\nbefore running the 4th step you need to perform an extra action.\nThe binaries that we provide are signed with our private certificate, while the\nbinaries that you can build from the source code aren't, which means that\n`diff`ing the darwin binaries will yield differences. You must remove the\nsignature from the binary that we provide in order to be able to compare both\nbinaries.\n\nRemoving the signature is as easy as:\n\n```shell\n$ codesign --remove-signature nebulant-darwin-arm64\n$ xxd nebulant-darwin-arm64 \u003e unsigned-nebulant-darwin-arm64\n```\n\nNow you should be able to follow the 4th step and see no differences.\n\n\u003cbr /\u003e\n\nNebulant CLI Configuration\n--------------------------------------------------------------------------------\n\nOnce you have created an account and logged in the\n[Nebulant Panel](https://builder.nebulant.app) you can create multiple tokens.\nEach token gives you full access to all the blueprints your user has access to.\nIf you're the **administrator** of the organization, that would be **all\nblueprints** in the organization. On the contrary, if you're a **member** of an\norganization, that would be all **the blueprints** of all the collections you've\nbeen granted access to.\n\nThe CLI can store tokens under profiles, which allows you to easily switch\nbetween them. For example, you might have generated multiple users, each one granted\naccess only to certain collections of blueprints. Or you might have accounts in\nmultiple organizations.\n\nYou can switch to a profile by either setting the following environment\nvariable:\n\n```shell\n$ export NEBULANT_CONF_PROFILE=my_profile\n```\n\nOr by interactively selecting the desired profile:\n\n```shell\n$ ./nebulant auth profiles \u003c- ?????\n```\n\nAlternatively, if you don't want to use profiles, you can set the following\nenvironment variables:\n\n```shell\n$ export NEBULANT_TOKEN_ID=...\n$ export NEBULANT_TOKEN_SECRET=...\n```\n\nNote that environment variables will take precedence over config files.\n\n\u003cbr /\u003e\n\n🫡 Contributing\n--------------------------------------------------------------------------------\n\nIf you find an issue, please report it to the\n[issue tracker](https://github.com/develatio/nebulant-cli/issues/new).\n\n\u003cbr /\u003e\n\n📑 License\n--------------------------------------------------------------------------------\n\nCopyright (c) Develatio Technologies S.L. All rights reserved.\n\nLicensed under the [MIT](https://github.com/develatio/nebulant-cli/blob/main/LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelatio%2Fnebulant-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelatio%2Fnebulant-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelatio%2Fnebulant-cli/lists"}