{"id":36486191,"url":"https://github.com/thecasualcoder/dobby","last_synced_at":"2026-01-12T01:51:30.845Z","repository":{"id":48352993,"uuid":"169595193","full_name":"thecasualcoder/dobby","owner":"thecasualcoder","description":"dobby is free and will serve your orders","archived":false,"fork":false,"pushed_at":"2024-07-20T18:55:30.000Z","size":12587,"stargazers_count":32,"open_issues_count":6,"forks_count":25,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-15T00:52:57.373Z","etag":null,"topics":["docker","docker-compose","docs","golang","hactoberfest"],"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/thecasualcoder.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}},"created_at":"2019-02-07T15:37:22.000Z","updated_at":"2024-10-11T19:11:49.000Z","dependencies_parsed_at":"2024-06-18T22:54:06.704Z","dependency_job_id":"56fe52be-b8d3-41e3-bb0f-c13f0b9b5420","html_url":"https://github.com/thecasualcoder/dobby","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/thecasualcoder/dobby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecasualcoder%2Fdobby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecasualcoder%2Fdobby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecasualcoder%2Fdobby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecasualcoder%2Fdobby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecasualcoder","download_url":"https://codeload.github.com/thecasualcoder/dobby/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecasualcoder%2Fdobby/sbom","scorecard":{"id":878109,"data":{"date":"2025-08-11","repo":{"name":"github.com/thecasualcoder/dobby","commit":"dd6da27e3f24161afcee10014db83ab14f1a460f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Code-Review","score":1,"reason":"Found 3/24 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v3.0.0 not signed: https://api.github.com/repos/thecasualcoder/dobby/releases/166281787","Warn: release artifact v2.0.2 not signed: https://api.github.com/repos/thecasualcoder/dobby/releases/47067096","Warn: release artifact v2.0.1 not signed: https://api.github.com/repos/thecasualcoder/dobby/releases/40279988","Warn: release artifact 1.0.0f5238 not signed: https://api.github.com/repos/thecasualcoder/dobby/releases/15426807","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/thecasualcoder/dobby/releases/166281787","Warn: release artifact v2.0.2 does not have provenance: https://api.github.com/repos/thecasualcoder/dobby/releases/47067096","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/thecasualcoder/dobby/releases/40279988","Warn: release artifact 1.0.0f5238 does not have provenance: https://api.github.com/repos/thecasualcoder/dobby/releases/15426807"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 10 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":1,"reason":"9 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2021-0052 / GHSA-h395-qcrw-5vmq","Warn: Project is vulnerable to: GHSA-3vp4-m3rf-835h","Warn: Project is vulnerable to: GO-2023-1737 / GHSA-2c4m-59x9-fr2g","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2024-2611 / GHSA-8r3f-844c-mc37"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/thecasualcoder/dobby/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: build.Dockerfile:1","Warn: containerImage not pinned by hash: build.Dockerfile:6: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: examples/docker/post-boot-actions/post-boot-actions.Dockerfile:1: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: examples/docker/pre-boot-actions/app.Dockerfile:1","Warn: containerImage not pinned by hash: examples/docker/seed-db/psql.Dockerfile:1: pin your Docker image by updating postgres:alpine to postgres:alpine@sha256:3406990b6e4c7192317b6fdc5680498744f6142f01f0287f4ee0420d8c74063c","Warn: containerImage not pinned by hash: examples/docker/wait-for-dependencies/app.Dockerfile:1","Warn: goCommand not pinned by hash: vendor/github.com/json-iterator/go/build.sh:10","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   7 containerImage dependencies pinned","Info:   0 out of   1 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-24T06:52:25.331Z","repository_id":48352993,"created_at":"2025-08-24T06:52:25.331Z","updated_at":"2025-08-24T06:52:25.331Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28331257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"ssl_error","status_checked_at":"2026-01-12T00:36:15.229Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["docker","docker-compose","docs","golang","hactoberfest"],"created_at":"2026-01-12T01:51:30.485Z","updated_at":"2026-01-12T01:51:30.834Z","avatar_url":"https://github.com/thecasualcoder.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dobby\n\n[![Build Status](https://github.com/thecasualcoder/dobby/actions/workflows/ci.yml/badge.svg)](https://github.com/thecasualcoder/dobby/actions/workflows/ci.yml)\n[![Go Doc](https://godoc.org/github.com/thecasualcoder/dobby?status.svg)](https://godoc.org/github.com/thecasualcoder/dobby)\n[![Go Report Card](https://goreportcard.com/badge/github.com/thecasualcoder/dobby)](https://goreportcard.com/report/github.com/thecasualcoder/dobby)\n\n![Dobby GIF](dobby.gif)\n\n## About\n\ndobby is **free** and will serve your orders.\n\nYou can start dobby in Docker using:\n\n```shell\n$ docker run -p 4444:4444 thecasualcoder/dobby\n```\n\nwhich will start dobby server in port `4444`.\n\n## Features\n\nYou can ask dobby any of the following\n\n- [Version](#version)\n- [Metadata](#metadata)\n- [Health](#health)\n    + [About its health](#about-its-health)\n    + [To be healthy](#to-be-healthy)\n    + [To fall sick](#to-fall-sick)\n    + [To recover health after sometime](#to-recover-health-after-sometime)\n- [Readiness](#readiness)\n    + [About its readiness](#about-its-readiness)\n    + [To be ready](#to-be-ready)\n    + [To be unready](#to-be-unready)\n    + [To recover readiness after sometime](#to-recover-readiness-after-sometime)\n- [Disruptions](#disruptions)\n    + [Add load on memory](#add-load-on-memory)\n    + [Add load on CPU](#add-load-on-cpu)\n    + [Kill itself](#kill-itself)\n- [Repeat Http Code](#repeat-http-code)\n    + [To return a given status code](#to-return-a-given-status-code)\n    + [To return a given status code (with requested delay in milliseconds)](#to-return-a-given-status-code-with-requested-delay-in-milliseconds)\n- [Call a service](#call-a-service)\n    + [To call another service](#to-call-another-service)\n- [Configure Proxies](#configure-proxies)\n    + [To proxy a call](#to-proxy-a-call)\n    + [To delete a configured proxy](#to-delete-a-configured-proxy)\n\n### Version\n\n```shell\n$ curl localhost:4444/version\n```\n\n### Metadata\n\n```shell\n$ curl localhost:4444/meta\n```\n\n### Health\n\nAsk dobby\n\n#### About its health\n\t\n```shell\n$ curl -i localhost:4444/health\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:32:02 GMT\nContent-Length: 16\n  \n{\"healthy\":true}\n```\n\n#### To be healthy\n\n```shell\n$ curl -i -X PUT localhost:4444/control/health/perfect\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:33:02 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n\n$ curl -i localhost:4444/health\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:33:16 GMT\nContent-Length: 16\n\n{\"healthy\":true}\n```\n\n#### To fall sick\n\n```shell\n$ curl -i -X PUT localhost:4444/control/health/sick\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:33:29 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n\n$ curl -i localhost:4444/health\nHTTP/1.1 500 Internal Server Error\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:33:48 GMT\nContent-Length: 17\n\n{\"healthy\":false}\n```\n\n#### To recover health after sometime\n\n```shell\n$ curl -i -X PUT \"localhost:4444/control/health/sick?resetInSeconds=20\"\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:34:42 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n\n$ curl -i localhost:4444/health\nHTTP/1.1 500 Internal Server Error\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:34:47 GMT\nContent-Length: 17\n\n{\"healthy\":false}\n\n#  After 20seconds\n$ curl -i localhost:4444/health\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:35:12 GMT\nContent-Length: 16\n\n{\"healthy\":true}  \n```\n\n### Readiness\n\nAsk dobby\n\n#### About its readiness\n\n```shell\n$ curl -i localhost:4444/readiness\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:40:30 GMT\nContent-Length: 14\n\n{\"ready\":true}\n```\n\n#### To be ready\n\n```shell\n$ curl -i -X PUT localhost:4444/control/ready/perfect\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:40:51 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n\n$ curl -i localhost:4444/readiness\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:41:25 GMT\nContent-Length: 14\n\n{\"ready\":true}\n```\n\n#### To be unready\n\n```shell\n$ curl -i -X PUT localhost:4444/control/ready/sick\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:41:41 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n\n$ curl -i localhost:4444/readiness\nHTTP/1.1 503 Service Unavailable\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:41:58 GMT\nContent-Length: 15\n\n{\"ready\":false}\n```\n\n#### To recover readiness after sometime\n\n```shell\n$ curl -i -X PUT \"localhost:4444/control/ready/sick?resetInSeconds=20\"\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:42:39 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n\n$ curl -i localhost:4444/readiness\nHTTP/1.1 503 Service Unavailable\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:42:43 GMT\nContent-Length: 15\n\n{\"ready\":false}\n\n#  After 20seconds\n$ curl -i localhost:4444/readiness\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:43:05 GMT\nContent-Length: 14\n\n{\"ready\":true}\n```\n\n### Disruptions\n\nYou can also ask dobby to\n\n#### Add load on memory\n\n```shell\n# to create a memory spike\n$ curl -i -X PUT localhost:4444/control/goturbo/memory\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 12:00:22 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n```\n\n#### Add load on CPU\n\n```shell\n# to create a cpu spike\n$ curl -i -X PUT localhost:4444/control/goturbo/cpu\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 12:01:07 GMT\nContent-Length: 20\n\n{\"status\":\"success\"}\n```\n\n#### Kill itself\n\n```shell\n$ curl -i -X PUT localhost:4444/control/crash\n# Beware, this is stop the running server\n```\n\n### Repeat Http Code\n\nAsk dobby\n\n#### To return a given status code\n\n```shell\n$ curl -i localhost:4444/return/200\nHTTP/1.1 200 OK\nDate: Sun, 17 May 2020 09:51:13 GMT\nContent-Length: 0\n```\n\n#### To return a given status code (with requested delay in milliseconds)\n\n```shell\n$ curl -i localhost:4444/return/401?delay=300\nHTTP/1.1 401 Unauthorized\nDate: Sun, 17 May 2020 09:50:34 GMT\nContent-Length: 0\n```\n\n### Call a service\n\n#### To call another service\n\n```shell\n# To make a get request to http://httpbin.org/get\n$ curl -i localhost:4444/call -d '{\"url\": \"http://httpbin.org/get\", \"method\": \"GET\"}'\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:46:25 GMT\nContent-Length: 240\n\n{\"args\":{},\"headers\":{},\"url\":\"http://httpbin.org/get\"}\n\n# To make a post request to http://httpbin.org/post\n$ curl -i localhost:4444/call -d '{\"url\": \"http://httpbin.org/post\", \"method\": \"POST\", \"body\": \"{key: value}\"}'\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:49:09 GMT\nContent-Length: 311\n\n{\"args\":{},\"data\":\"\\\"{key: value}\\\"\",\"files\":{},\"form\":{},\"headers\":{},\"json\":\"{key: value}\",\"url\":\"http://httpbin.org/post\"}\n```\n\n### Configure Proxies\n  \n#### To proxy a call\n\n```shell\n$ curl -i localhost:4444/proxy -d '{\"path\":\"/time\",\"method\": \"GET\", \"proxy\": {\"url\":\"http://worldtimeapi.org/api/timezone/asia/kolkata\",\"method\":\"GET\"}}'\nHTTP/1.1 201 Created\nDate: Tue, 16 Mar 2021 11:51:32 GMT\nContent-Length: 0\n\n$ curl -i localhost:4444/time\n# makes a call to http://worldtimeapi.org/api/timezone/asia/kolkata\n```\n\n#### To delete a configured proxy\n\n```shell\n$ curl -i -X DELETE localhost:4444/proxy -d '{\"path\":\"/time\",\"method\": \"GET\", \"proxy\": {\"url\":\"http://worldtimeapi.org/api/timezone/asia/kolkata\",\"method\":\"GET\"}}'\nHTTP/1.1 200 OK\nContent-Type: application/json; charset=utf-8\nDate: Tue, 16 Mar 2021 11:55:22 GMT\nContent-Length: 50\n\n{\"result\":\"deleted the proxy config successfully\"}\n\n$ curl -i localhost:4444/time\nHTTP/1.1 404 Not Found\nContent-Type: text/plain\nDate: Tue, 16 Mar 2021 11:55:46 GMT\nContent-Length: 18\n\n404 page not found\n```\n\n## Run\n\n### Configurations\n\nAvailable configurations:\n\n| Key               | Value  | Purpose                                                    | Default   |\n| ----------------- | ------ | ---------------------------------------------------------- | --------- |\n| VERSION           | String | To set the version of program                              | Build Arg |\n| INITIAL_DELAY     | Int    | Sets the initial delay to start the server (in seconds)    | 0         |\n| INITIAL_HEALTH    | String | Sets the initial health of the program                     | TRUE      |\n| INITIAL_READINESS | String | Sets the initial readiness of the program                  | TRUE      |\n| PORT              | Int    | Sets the port of the server                                | 4444      |\n| BIND_ADDR         | String | Listen address of the process                              | 127.0.0.1 |\n\n### Run in local\n\n```shell\n$ git clone https://github.com/thecasualcoder/dobby.git \u0026\u0026 cd dobby\n$ make compile\n$ ./out/dobby server\n```\n\n### Swagger Docs\n\nSwagger docs will be available at: [http://localhost:4444/swagger/index.html](http://localhost:4444/swagger/index.html)\n\n## Contributing\n\nFork the repo and start contributing\n\n#### Guidelines\n\n- Make sure to run build before raising PR (`make build`)\n- Make sure to generate and check in swagger docs if any added (`make swagger-docs`)\n- Update README.md if necessary\n- Check goreleaser before pushing (`goreleaser --snapshot --skip-publish --rm-dist --debug`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecasualcoder%2Fdobby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecasualcoder%2Fdobby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecasualcoder%2Fdobby/lists"}