{"id":17648465,"url":"https://github.com/chabad360/covey","last_synced_at":"2025-05-07T07:11:37.404Z","repository":{"id":55086111,"uuid":"266872543","full_name":"chabad360/covey","owner":"chabad360","description":"A lightweight Linux cluster orchestration system written in Go (Under active development, just working on plugins https://github.com/chabad360/plugins)","archived":false,"fork":false,"pushed_at":"2021-02-28T04:09:06.000Z","size":21367,"stargazers_count":9,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-25T22:43:25.908Z","etag":null,"topics":["cluster-manager","go","monitoring","restful-api","server-management"],"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/chabad360.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null},"funding":{"github":["chabad360"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://cash.app/$chabad360"]}},"created_at":"2020-05-25T20:20:09.000Z","updated_at":"2024-10-04T06:04:54.000Z","dependencies_parsed_at":"2022-08-14T11:31:19.350Z","dependency_job_id":null,"html_url":"https://github.com/chabad360/covey","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fcovey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fcovey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fcovey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fcovey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chabad360","download_url":"https://codeload.github.com/chabad360/covey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242912532,"owners_count":20205681,"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":["cluster-manager","go","monitoring","restful-api","server-management"],"created_at":"2024-10-23T11:18:51.587Z","updated_at":"2025-03-10T19:31:30.931Z","avatar_url":"https://github.com/chabad360.png","language":"Go","funding_links":["https://github.com/sponsors/chabad360","https://cash.app/$chabad360"],"categories":[],"sub_categories":[],"readme":"# Covey\n\n## A lightweight Linux cluster orchestration server written in Go\n\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/b6e797a0fb5a498199b2a2d3ae494c82)](https://www.codacy.com/manual/chabad360/covey?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=chabad360/covey\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/b6e797a0fb5a498199b2a2d3ae494c82)](https://www.codacy.com/manual/chabad360/covey?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=chabad360/covey\u0026utm_campaign=Badge_Coverage)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4095/badge)](https://bestpractices.coreinfrastructure.org/projects/4095)\n[![Chat on discord](https://img.shields.io/discord/727820939013783582?logo=discord\u0026logoColor=white)](https://discord.gg/kWXPrWg)\n\nCovey is a project designed to fill a certain void, the lack of a nice lightweight cluster management system.\nThere are tools like Rundeck (which Covey takes after), that are quite capable, but are far too heavy to be useful.\n\n### Features\n\nCovey has, and will gain (in the coming weeks/months) a variety of features, including:\n\n* RESTful API (with swagger docs!)\n* Plug-able Modules (ish, it's very broken at the moment)\n* Web Interface (basic)\n* Node Monitoring (using Netdata)\n* Automated Setup (Almost there)\n* Crash-only design (pretty much)\n\n---\n\n### Current Roadmap\n\n#### V0.1 MVP\n\n* [x] Create MVP\n\n#### V0.2 The Refactor\n\n* [x] Major Refactor\n\n#### V0.3 Web Interface\n\n* [x] Design and implement the basic web interface\n* [x] Implement basic authentication\n* [x] Begin adding tests\n* [x] Switch away from mux (too slow...)\n\n#### V0.4 Monitoring\n\n* [x] Fix some issues with the plugin system\n* [x] Rework the task module\n* [x] Create Node Agent\n* [x] Persistent queue\n* [x] Add relevant UI elements\n* [x] Automatically install agent\n* [x] Add SystemD service file to the agent\n* [x] Integrate with [Netdata](https://github.com/netdata/netdata) for monitoring\n* [ ] ~~Add tests~~\n\n#### V0.5 A Better API\n\n* [x] ~~Evaluate designing a very basic framework (for keeping things cleaner)~~\n* [x] ~~Evaluate GraphQL for the API~~\n* [x] Redesign DB using Gorm\n* [x] Fully implement (and test) the API\n* [x] Swagger (OpenAPI)\n* [x] Fully document the API\n\n#### V0.6 Alpha\n\n* [ ] Fix the plugin system (in progress, checkout [github.com/chabad360/plugins](https://github.com/chabad360/plugins)\n  for more details)\n* [x] Provide configuration system\n* [x] Switch to `//go:embed` (this might need to wait)\n* [x] CI/CD\n* [x] Big Refactor\n* [ ] Add and refactor tests (Aim for 80% Coverage)\n* [ ] Complete the web UI\n* [x] ~~Add a Makefile (?)~~\n* [x] Refactor agent\n\n---\n\n## State of the Project\n\nCovey is in active development, it's written in Go, and uses Postgres as the database. If you are interested in helping\nwith development, open a PR with your changes. At the moment, I'm currently polishing off the plugin system and fixing\nup the CI/CD process.\n\n### Installation Instructions\n\n```console\n$ git clone https://github.com/chabad360/covey\n$ cd covey\n$ goreleser build --snapshot --rm-dist\n$ createdb covey\n$ ./dist/Covey_linux_amd64/Covey # This will crash, it's meant to (will be fixed)\n$ psql -U postgres covey \u003c\u003cEOF\nINSERT INTO users(username, password_hash) VALUES(\u003cusername\u003e, crypt(\u003cpassword\u003e, gen_salt('bf')));\nEOF\n$ ./dist/Covey_linux_amd64/Covey -plugins-folder=./plugins\n```\n\nUse the following command to build covey with live file system changes support:\n\n```shell\n$ goreleaser build --snapshot --rm-dist\n$ go build -tags=live -trimpath github.com/chabad360/covey\n```\n\n--- \n\n### Build Signing\n\nThe builds are signed with the following public key:\n\nhttps://keys.openpgp.org/vks/v1/by-fingerprint/63192DE48E0FBE543127B71C8CD4B302F58542C6\n\n```\n-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n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\nhjCsLQ1WqqTk7lkBYQ==\n=d1Jz\n-----END PGP PUBLIC KEY BLOCK-----\n```\n\n### Fossa\n\n[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B10111%2Fgithub.com%2Fchabad360%2Fcovey.svg?type=large)](https://app.fossa.com/projects/custom%2B10111%2Fgithub.com%2Fchabad360%2Fcovey?ref=badge_large)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchabad360%2Fcovey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchabad360%2Fcovey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchabad360%2Fcovey/lists"}