{"id":13773131,"url":"https://github.com/plunder-app/plunder","last_synced_at":"2025-05-11T05:34:20.415Z","repository":{"id":57501589,"uuid":"157703174","full_name":"plunder-app/plunder","owner":"plunder-app","description":"A Modern automation platform","archived":false,"fork":false,"pushed_at":"2020-05-20T12:30:06.000Z","size":6001,"stargazers_count":173,"open_issues_count":15,"forks_count":13,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-17T02:07:15.713Z","etag":null,"topics":["bare-metal","bootstrap","dhcp","kubernetes","preseed","ssh","tftp"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plunder-app.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-15T11:52:18.000Z","updated_at":"2024-10-30T19:20:39.000Z","dependencies_parsed_at":"2022-09-19T09:10:47.387Z","dependency_job_id":null,"html_url":"https://github.com/plunder-app/plunder","commit_stats":null,"previous_names":["thebsdbox/plunder"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plunder-app%2Fplunder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plunder-app%2Fplunder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plunder-app%2Fplunder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plunder-app%2Fplunder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plunder-app","download_url":"https://codeload.github.com/plunder-app/plunder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253523690,"owners_count":21921815,"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","bootstrap","dhcp","kubernetes","preseed","ssh","tftp"],"created_at":"2024-08-03T17:01:11.817Z","updated_at":"2025-05-11T05:34:19.854Z","avatar_url":"https://github.com/plunder-app.png","language":"Go","funding_links":[],"categories":["Go","Self-hosted tools for bare-metal management"],"sub_categories":["Inactive projects"],"readme":"\n# Plunder\n\nThe complete tool for finding **Infrastructure** gold amongst bits of bare-metal!\n\n![Plunder Captain](./image/plunder_captain.png)\n\n## Overview\n\nPlunder is a single-binary server that is all designed in order to make the provisioning of servers, platforms and applications easier. It is deployed as a server that an end user can interact with through it's **Api-server** in order to control and automate the usage. At this time interacting with the api-server is detailed in the source [https://github.com/plunder-app/plunder/blob/master/pkg/apiserver/endpoints.go](https://github.com/plunder-app/plunder/blob/master/pkg/apiserver/endpoints.go), however documentation will be added soon. \n\nFrom an end-user interaction a plunder control utility has been created: \n\n[https://github.com/plunder-app/pldrctl](https://github.com/plunder-app/pldrctl) - provides the capability to query and create deployments and configurations within a plunder instance.\n\n### Services\n\n- `DHCP` - Allocating an IP addressing and pointing to a TFTP server\n- `TFTP` - Bootstrapping an Operating system install (uses iPXE)\n- `HTTP` - Provides a services where the bootstrap can pull the components needed for the OS install.\n\nAn operating system can be easily performed using either **preseed** or **kickstart**, alternatively custom kernels and init ramdisks can be specified to be used based upon Mac address.\n\n### Automation\n\nFurther more once the operating system has been provisioned there are usually post-deployment tasks in order to complete an installation. Plunder has the capability to do the following:\n\n- `Remote command execution` - Over SSH (key configured above)\n- `Scripting engine` - A JSON/YAML language that also supports plugins to extend the capablities of the automation engine.\n\nA small repository of existing deployment maps has been created [https://github.com/plunder-app/maps](https://github.com/plunder-app/maps)\n\n### Additional features\n\n- `iso support` - Plunder no longer requires a user with elevated privileges to mount an OS ISO in order to read the contents. Plunder can read files directly from the iso file and expose them to an installer through `http`.\n- `online updates` - As all configuration to plunder is exposed and managed through an API, it provides the capability of performing most configuration changes with no down time or restarts.\n- `in-memory configurations` - Plunder will create all deployment configurations and hold them in memory, meaning that it is stateless and it doesn't leave configuration all over a filesystem\n- `VMware deployment support` - Plunder can deploy preseed/kickstart and now vSphere installations.\n- `Management of unclaimed devices` - Plunder will watch and keep a pool of devices that aren't being deployed and can force them to reboot/restart until they're needed for deployment.\n- `Logging of remote execution` - Plunder can now store all execution logs in-memory until told to clear them.\n\n## Getting Plunder\n\nPrebuilt binaries for Darwin(MacOS)/Linux and Windows can be found on the [releases](https://github.com/plunder-app/plunder/releases) page.\n\n### Building\n\nIf you wish to build the code yourself then this can be done simply by running:\n\n```\ngo get -u github.com/plunder-app/plunder\n```\nAlternatively clone the repository and either `go build` or `make build`, note that using the makefile will ensure that the current git commit and version number are returned by `plunder version`.\n\n## Usage!\n\nOne of the key design concepts was to try to simplify the amount of moving parts required to bootstrap a server, therefore `plunder` aims to be a single tool that you can use. It also aims to simplify the amount of configuration files and configuration work required, it does this by auto-detecting most configuration and producing mainly completed configuration as needed. \n\nOne thing to be aware of is that `plunder` doesn't require replacing anything that already exists in the infrastructure.\n\nThe documentation is available [here](./docs/)\n\n### Warning\n\n*NOTE 1* As this provides low-level networking services, only run on a network that is safe to do so. Providing DHCP on a network that already provides DHCP services can lead to un-expected behaviour (and angry network administrators)\n\n*NOTE 2* As DHCP/TFTP and HTTP all bind to low ports \u003c 1024, root access (or sudo) is required to start the plunder services.\n\n# Troubleshooting\n\nPXE booting provides very little feedback when things aren't working, but usually the hand-off is why things wont work i.e. `DHCP` -\u003e `TFTP` boot. Logs from `plunder` should show the hand-off from the CLI.\n\n# Roadmap\n\n- Ability to automate deployments over VMware VMTools\n\n- Windows deployments\n\n- Tidier logging\n\n- Stability enhancements\n\n- Additional plugins\n\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplunder-app%2Fplunder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplunder-app%2Fplunder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplunder-app%2Fplunder/lists"}