{"id":19294601,"url":"https://github.com/web3-storage/minibus","last_synced_at":"2025-11-14T19:15:05.713Z","repository":{"id":37423364,"uuid":"501186903","full_name":"web3-storage/minibus","owner":"web3-storage","description":"A edge block service to store IPFS data structures","archived":false,"fork":false,"pushed_at":"2022-07-23T13:55:55.000Z","size":8771,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-05T21:11:27.319Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/web3-storage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-08T09:39:08.000Z","updated_at":"2022-07-01T14:36:10.000Z","dependencies_parsed_at":"2022-07-07T11:15:09.336Z","dependency_job_id":null,"html_url":"https://github.com/web3-storage/minibus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3-storage%2Fminibus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3-storage%2Fminibus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3-storage%2Fminibus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3-storage%2Fminibus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/web3-storage","download_url":"https://codeload.github.com/web3-storage/minibus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240397614,"owners_count":19794894,"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":[],"created_at":"2024-11-09T22:38:52.795Z","updated_at":"2025-11-14T19:15:00.678Z","avatar_url":"https://github.com/web3-storage.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# minibus 🚐\n\n\u003e A edge block service to store IPFS data structures\n\n## Getting started\n\nOne time set up of your cloudflare worker subdomain for dev:\n\n- `npm install` - Install the project dependencies from the monorepo root directory\n- Sign up to Cloudflare and log in with your default browser.\n- `npm i @cloudflare/wrangler -g` - Install the Cloudflare wrangler CLI\n- `wrangler login` - Authenticate your wrangler cli; it'll open your browser.\n- Copy your cloudflare account id from `wrangler whoami`\n- Update `wrangler.toml` with a new `env`. Set your env name to be the value of `whoami` on your system you can use `pnpm start` to run the worker in dev mode for you.\n\n  [**wrangler.toml**](./wrangler.toml)\n\n  ```toml\n  [env.bobbytables]\n  workers_dev = true\n  account_id = \"\u003cwhat does the `wrangler whoami` say\u003e\"\n  ```\n\n- Add secrets\n\n  ```sh\n    wrangler secret put SENTRY_DSN --env $(whoami) # Get from Sentry (not required for dev)\n    wrangler secret put LOGTAIL_TOKEN --env $(whoami) # Get from Logtail\n    wrangler secret put SECRET --env $(whoami) # open `https://csprng.xyz/v1/api` in the browser and use the value of `Data`\n  ```\n\n- Add R2 bucket (Note that it is only available as Private Beta at the time of writing)\n\n  ```sh\n  wrangler r2 bucket create blockstore --env $(whoami)\n  # 🌀  Creating bucket \"blockstore\"\n  # ✨  Success!\n  ```\n\n- `npm run publish` - Publish the worker under your env. An alias for `wrangler publish --env $(whoami)`\n- `npm dev` - Run the worker in dev mode. An alias for `wrangler dev --env $(whoami)`\n\nYou only need to `npm dev` for subsequent runs. PR your env config to the `wrangler.toml` to celebrate 🎉\n\n## High level architecture\n\nThe Edge HTTP internal API to store IPFS data structures on R2.\n\n![High level Architecture](./minibus.web3.storage-api.jpg)\n\n## Usage\n\nYou can see full HTTP API specification at https://web3.storage/block-service-docs.\n\n### 🔒 `POST /`\n\n\u003e Store individuals blocks by multihash in R2.\n\n```sh\necho -e '{\"hello\":\"world\"}' | curl -X POST  -H 'Authorization: Basic ACCESS_KEY=' --data-binary @- https://minibus.web3.storage\n```\n\n### 🔒 `GET /:multihash`\n\n\u003e Multihash block read interface.\n\nThe block data is retrieved and discovered by multihash, in order to enable the same data to be referred to with different codecs.\n\n```sh\ncurl -X GET -H 'Authorization: Basic ACCESS_KEY' https://minibus.web3.storage/bciqjhirzogurjzpkzpykrusrktg2gcodyhds7o4zctkhyyhtznublca\n```\n\n## Authentication\n\nMinibus uses HTTP basic token for authentication. A secret needs to be provided and must correspond to the secret injected in the worker.\n\nThe TOKEN needed can be found in 1password vault for web3.storage project.\n\nFor development, Miniflare can be used to run this worker. A global with TOKEN should be injected in order to allow creation of dev tokens.\n\n## Contributing\n\nFeel free to join in. All welcome. [Open an issue](https://github.com/web3-storage/edge-block-service/issues)!\n\n## License\n\nDual-licensed under [MIT + Apache 2.0](https://github.com/web3-storage/edge-block-service/blob/main/LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3-storage%2Fminibus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweb3-storage%2Fminibus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3-storage%2Fminibus/lists"}