{"id":16251134,"url":"https://github.com/joelnb/example-caddy-build-server","last_synced_at":"2025-10-26T01:03:19.596Z","repository":{"id":77682972,"uuid":"548388633","full_name":"joelnb/example-caddy-build-server","owner":"joelnb","description":"A simple example Go server which enables the same endpoint as the Caddy download page","archived":false,"fork":false,"pushed_at":"2025-09-10T08:27:20.000Z","size":41,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-10T10:58:55.691Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/joelnb.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-09T13:20:34.000Z","updated_at":"2025-09-10T07:23:36.000Z","dependencies_parsed_at":"2023-03-02T10:30:22.405Z","dependency_job_id":"a23c1ec1-a2ca-4823-a2ba-99f9d6249b99","html_url":"https://github.com/joelnb/example-caddy-build-server","commit_stats":{"total_commits":31,"total_committers":2,"mean_commits":15.5,"dds":0.4516129032258065,"last_synced_commit":"054acf4ff59eb0fc7bdbdf90f73692569ba9fb2c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joelnb/example-caddy-build-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelnb%2Fexample-caddy-build-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelnb%2Fexample-caddy-build-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelnb%2Fexample-caddy-build-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelnb%2Fexample-caddy-build-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joelnb","download_url":"https://codeload.github.com/joelnb/example-caddy-build-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelnb%2Fexample-caddy-build-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017930,"owners_count":26086213,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-10T15:09:02.085Z","updated_at":"2025-10-14T04:46:14.207Z","avatar_url":"https://github.com/joelnb.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Example Caddy Build Server\n\n## Motivation\n\nCurrently the [caddy-ansible role](https://github.com/caddy-ansible/caddy-ansible) defaults to downloading builds from github. If the user requests plugins however these are not available on github \u0026 the role defaults to using the caddy download page to perform the download. This works fine but the service is provided for free by the caddy project maintainers \u0026 should not be relied on, especially by people managing many machines.\n\nThis repo aims to show how a simple server can be setup which supports the same download endpoint as the caddy download page. This can then be used with the ansible role to provide a location controlled by the user from which to download.\n\n## Usage\n\nI wouldn't really recommend using this code unless you have read and understand it fully. I definitely wouldn't call it 'production-ready'. I created it for my own simple usage \u0026 to show how simply a compatible server can be created.\n\nIf you have read that and still want to give it a try you can run a local instance with:\n\n```bash\ndocker run -p 127.0.0.1:8080:8081 --rm -it joelnb/example-caddy-build-server\n```\n\nAnd then download the caddy binary with this example `curl` command:\n\n```bash\ncurl -v \"localhost:8080/api/download?os=linux\u0026arch=amd64\u0026p=github.com/caddy-dns/lego-deprecated\" --output caddy\n```\n\nIf you wanted to share this between multiple machines then adding a reverse proxy with TLS termination would be recommended.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoelnb%2Fexample-caddy-build-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoelnb%2Fexample-caddy-build-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoelnb%2Fexample-caddy-build-server/lists"}