{"id":13687767,"url":"https://github.com/metal-stack/metalctl","last_synced_at":"2026-04-02T00:48:03.828Z","repository":{"id":37753944,"uuid":"249679326","full_name":"metal-stack/metalctl","owner":"metal-stack","description":"The metal-stack CLI for accessing the metal-api.","archived":false,"fork":false,"pushed_at":"2024-09-13T11:20:37.000Z","size":1053,"stargazers_count":20,"open_issues_count":11,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-09-13T23:48:16.174Z","etag":null,"topics":["bare-metal","cli","metal-cli"],"latest_commit_sha":null,"homepage":"","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/metal-stack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-24T10:34:18.000Z","updated_at":"2024-09-13T11:20:24.000Z","dependencies_parsed_at":"2023-10-17T11:43:59.529Z","dependency_job_id":"434ea8a8-a661-4738-afaf-1867db1338d4","html_url":"https://github.com/metal-stack/metalctl","commit_stats":null,"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metal-stack%2Fmetalctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metal-stack%2Fmetalctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metal-stack%2Fmetalctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metal-stack%2Fmetalctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metal-stack","download_url":"https://codeload.github.com/metal-stack/metalctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224266212,"owners_count":17283089,"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":["bare-metal","cli","metal-cli"],"created_at":"2024-08-02T15:01:00.144Z","updated_at":"2026-04-02T00:48:03.766Z","avatar_url":"https://github.com/metal-stack.png","language":"Go","readme":"# metalctl\n\n*metalctl* is the command line client to access the [metal-api](https://github.com/metal-stack/metal-api).\n\n## Installation\n\nDownload locations:\n\n- [metalctl-linux-amd64](https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-linux-amd64)\n- [metalctl-darwin-amd64](https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-darwin-amd64)\n- [metalctl-darwin-arm64](https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-darwin-arm64)\n- [metalctl-windows-amd64](https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-windows-amd64)\n\n### Installation on Linux\n\n```bash\ncurl -LO https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-linux-amd64\nchmod +x metalctl-linux-amd64\nsudo mv metalctl-linux-amd64 /usr/local/bin/metalctl\n```\n\n### Installation on MacOS\n\nFor x86 based Macs:\n\n```bash\ncurl -LO https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-darwin-amd64\nchmod +x metalctl-darwin-amd64\nsudo mv metalctl-darwin-amd64 /usr/local/bin/metalctl\n```\n\nFor Apple Silicon (M1) based Macs:\n\n```bash\ncurl -LO https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-darwin-arm64\nchmod +x metalctl-darwin-arm64\nsudo mv metalctl-darwin-arm64 /usr/local/bin/metalctl\n```\n\n### Installation on Windows\n\n```bash\ncurl -LO https://github.com/metal-stack/metalctl/releases/latest/download/metalctl-windows-amd64\ncopy metalctl-windows-amd64 metalctl.exe\n```\n\n### metalctl update\n\nIn order to keep your local `metalctl` installation up to date, you can update the binary like this:\n\n```bash\nmetalctl update check\nlatest version:v0.8.3 from:2020-08-13T11:55:14Z\nlocal  version:v0.8.2 from:2020-08-12T09:27:39Z\nmetalctl is not up to date\n\nmetalctl update do\n# a download with progress bar starts and replaces the binary. If the binary has root permissions please execute\nsudo metalctl update do\n# instead\n```\n\n### Built from project\n\n```bash\nmake\nsudo ln -sf $(pwd)/bin/metalctl /usr/local/bin/metalctl\n```\n\n## Configuration\n\nSet up auto-completion for `metalctl`, e.g. add to your `~/.bashrc`:\n\n```bash\nsource \u003c(metalctl completion bash)\n```\n\nSet up `metalctl` config, by first creating the config folder (`mkdir -p ~/.metalctl`), then set the values according to your installation in `~/.metalctl/config.yaml`:\n\n```yaml\n---\ncurrent: prod\ncontexts:\n  prod:\n    url: https://api.metal-stack.io/metal\n    issuer_url: https://dex.metal-stack.io/dex\n    client_id: metal_client\n    client_secret: 456\n    hmac: YOUR_HMAC\n    hmac_auth_type: THE_AUTH_TYPE_OF_YOUR_HMAC # Metal-Admin, Metal-Edit or Metal-View\n```\n\nOptional you can specify `issuer_type: generic` if you use other issuers as Dex, e.g. Keycloak (this will request scopes `openid,profile,email`):\n\n```bash\ncontexts:\n  prod:\n    url: https://api.metal-stack.io/metal\n    issuer_url: https://keycloak.somedomain.io\n    issuer_type: generic\n    client_id: my-client-id\n    client_secret: my-secret\n```\n\nIf you must specify special scopes for your issuer, you can use `custom_scopes`:\n\n```bash\ncontexts:\n  prod:\n    url: https://api.metal-stack.io/metal\n    issuer_url: https://keycloak.somedomain.io\n    custom_scopes: roles,openid,profile,email\n    client_id: my-client-id\n    client_secret: my-secret\n```\n\n## Available commands\n\nFull documentation is generated out of the cobra command implementation with:\n\n`metalctl markdown`\n\ngenerated markdown is [here](docs/metalctl.md) and [here](https://docs.metal-stack.io/stable/external/metalctl/README/)\n\n## Development\n\nFor MacOS users, running the tests might throw an error because tests are utilizing [go-mpatch](https://github.com/undefinedlabs/go-mpatch) in order to manipulate the `time.Now` function. The patch allows testing with fixed timestamps.\n\nInstead, MacOS users can utilize the `make test-in-docker` target to execute the tests.\n","funding_links":[],"categories":["cli"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetal-stack%2Fmetalctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetal-stack%2Fmetalctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetal-stack%2Fmetalctl/lists"}