{"id":15175848,"url":"https://github.com/hashicorp/waypoint-plugin-examples","last_synced_at":"2025-10-01T14:30:59.659Z","repository":{"id":39625212,"uuid":"299647027","full_name":"hashicorp/waypoint-plugin-examples","owner":"hashicorp","description":"An example repository that demonstrates how to create and run an external Waypoint plugin","archived":true,"fork":false,"pushed_at":"2023-08-30T13:55:41.000Z","size":4325,"stargazers_count":20,"open_issues_count":13,"forks_count":19,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-01-08T13:07:48.187Z","etag":null,"topics":["example","golang","grpc","hashicorp","plugin","waypoint"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hashicorp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-29T14:43:29.000Z","updated_at":"2024-07-09T16:58:53.000Z","dependencies_parsed_at":"2024-06-18T22:40:24.532Z","dependency_job_id":"8290fcc8-c61e-4695-9bda-1e32c1b9c5d2","html_url":"https://github.com/hashicorp/waypoint-plugin-examples","commit_stats":{"total_commits":58,"total_committers":15,"mean_commits":"3.8666666666666667","dds":0.5689655172413793,"last_synced_commit":"4de211b2db819932ebfa832d97594183ca57eebf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fwaypoint-plugin-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fwaypoint-plugin-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fwaypoint-plugin-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fwaypoint-plugin-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashicorp","download_url":"https://codeload.github.com/hashicorp/waypoint-plugin-examples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234878282,"owners_count":18900676,"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":["example","golang","grpc","hashicorp","plugin","waypoint"],"created_at":"2024-09-27T12:43:08.395Z","updated_at":"2025-10-01T14:30:54.276Z","avatar_url":"https://github.com/hashicorp.png","language":"Go","readme":"# waypoint-plugin-examples\nExample external plugins for Waypoint\n\nFor a full guide on building plugins with Waypoint please see the\n[Extending Waypoint](https://www.waypointproject.io/docs/extending-waypoint) documentation\n\n## [Plugin Template](./template)\n\nThis template can be used to scaffold new Waypoint plugins. All the main Waypoint components and interfaces are\nimplemented in this sample.\n\n## [Go Builder Plugin](./plugins/gobuilder_final)\n\nThis plugin is the final example code from the plugin development guide in the Waypoint documentation.\n\n## [Filepath Plugin](./plugins/filepath)\n\nPlugin which implements Registry, Platform, and ReleaseManager which interacts with the local file system\n\n## Running the Sample App\n\n1. Build the sample plugins\n\nThis command will build the plugins and move them to the ./plugins/example_app/.waypoint/plugins folder\n\n```shell\ncd plugins\nmake\n\n### Build Go Builder Plugin\nmake -C gobuilder_final\nmake[1]: Entering directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/gobuilder_final'\n\nBuild Protos\nprotoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./builder/output.proto\n\nCompile Plugin\ngo build -o ./bin/waypoint-plugin-gobuilder ./main.go \nmake[1]: Leaving directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/gobuilder_final'\n\n\n### Build Filepath Builder Plugin\nmake -C filepath\nmake[1]: Entering directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/filepath'\nprotoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./registry/output.proto\nprotoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./platform/output.proto\nprotoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./release/output.proto\nmake[1]: Leaving directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/filepath'\n\n\n### Install Plugins\nmkdir -p ./example_app/.waypoint/plugins\ncp ./gobuilder_final/bin/* ./example_app/.waypoint/plugins\ncp ./filepath/bin/* ./example_app/.waypoint/plugins\n```\n\nThe ./plugins/example_app folder has a simple Golang application and the following Waypoint file\n\n\n```hcl\nproject = \"custom-waypoint-plugin\"\n\napp \"example\" {\n\n  build {\n    use \"gobuilder\" {\n      output_name = \"app\"\n      source = \"./\"\n    }\n\n    registry {\n      use \"filepath\" {\n        directory = \"./bin\"\n      }\n    }\n  }\n\n  deploy {\n    use \"filepath\" {\n      directory = \"./deployments\"\n    }\n  }\n\n  release {\n    use \"filepath\" {}\n  }\n}\n```\n\nYou can build the application using the following command:\n\n```shell\ncd ./example_app\n\nwaypoint init\n✓ Configuration file appears valid\n✓ Local mode initialized successfully\n✓ Project \"guides\" and all apps are registered with the server.\n✓ Plugins loaded and configured successfully\n✓ Authentication requirements appear satisfied.\n\nProject initialized!\n\nYou may now call 'waypoint up' to deploy your project or\ncommands such as 'waypoint build' to perform steps individually.\n```\n\nAnd then:\n\n```shell\nwaypoint init\nwaypoint up\n\n» Building example...\n✓ Application built successfully\n✓ Application binary pushed to registry\n\n» Deploying example...\n✓ Created deployment deployments/app.1.deployment\n\n✓ File is ready!\n\n» Releasing example...\n✓ Created release deployments/release\n\n✓ Symlink to File is ready!\n\nThe deploy was successful! A Waypoint deployment URL is shown below. This\ncan be used internally to check your deployment and is not meant for external\ntraffic. You can manage this hostname using \"waypoint hostname.\"\n\n   Release URL: deployments/release\nDeployment URL: https://seemingly-settled-weevil--v20.waypoint.run\n```\n\n## Community Built Plugins\n\nHere are a list of plugins which have been created by folks within the Waypoint\ncommunity.\n\n - [swisscom/waypoint-plugin-cloudfoundry](https://github.com/swisscom/waypoint-plugin-cloudfoundry) - Plugin for Waypoint that adds support to deploy artifacts on Cloud Foundry.\n - [scaleway/waypoint-plugin-scaleway](https://github.com/scaleway/waypoint-plugin-scaleway) - Plugin for Waypoint that adds support to deploy [containers](https://www.scaleway.com/en/serverless-containers/).\n - [seaplane-io/waypoint-plugin-seaplane](https://github.com/seaplane-io/waypoint-plugin-seaplane) - Plugin to use [Seaplane](https://www.seaplane.io) compute services with Waypoint.\n\n### Adding a plugin\n\nIf you are creating a plugin and would like to be featured on this list please\nsubmit a PR and add your plugin to the list above using the following format.\n\n```markdown\n- [organization/Plugin Name](url to plugin repository) - Brief description of plugin\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Fwaypoint-plugin-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashicorp%2Fwaypoint-plugin-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Fwaypoint-plugin-examples/lists"}