{"id":23107800,"url":"https://github.com/kleros/ipfs-proxy","last_synced_at":"2025-07-23T09:06:53.111Z","repository":{"id":47428324,"uuid":"159878360","full_name":"kleros/ipfs-proxy","owner":"kleros","description":"Proxy for Kleros IPFS node","archived":false,"fork":false,"pushed_at":"2023-02-16T02:36:21.000Z","size":2322,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-24T17:46:32.248Z","etag":null,"topics":["backend","ipfs","ipfs-proxy","pin","platform"],"latest_commit_sha":null,"homepage":"","language":"Python","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/kleros.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-30T21:03:27.000Z","updated_at":"2022-06-30T15:42:57.000Z","dependencies_parsed_at":"2023-01-25T12:31:14.588Z","dependency_job_id":null,"html_url":"https://github.com/kleros/ipfs-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kleros/ipfs-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleros%2Fipfs-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleros%2Fipfs-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleros%2Fipfs-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleros%2Fipfs-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kleros","download_url":"https://codeload.github.com/kleros/ipfs-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleros%2Fipfs-proxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266649176,"owners_count":23962181,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["backend","ipfs","ipfs-proxy","pin","platform"],"created_at":"2024-12-17T01:16:10.390Z","updated_at":"2025-07-23T09:06:53.084Z","avatar_url":"https://github.com/kleros.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kleros IPFS Proxy\n\nKleros hosts an IPFS node so that we can pin files that are submitted through our UI's.\nSometimes our UI's need to make api calls to our node. Instead of opening up the entire\nIPFS api to the world we run this proxy in front to make the calls for us.\n\n## Quickstart\n\n- (Recommended) Install a `virtualenv` using Python 3.x.\n- `pip install -r requirements.txt`\n- `python application.py`\n\n## Routes\n\n### `POST /add`\n\nAdd files to IPFS. By default it will pin the file and use a directory to preserve filename and extension.\n\n#### Request Body\n\nExpects a JSON body that includes:\n\n```typescript\n{\n  fileName: string,\n  buffer: Buffer\n}\n```\n\n#### Response Body\n\n```typescript\n{\n  data: [\n    {\n      path: string,\n      hash: string\n    },\n    {\n      path: \"/\",\n      hash: string\n    }\n  ]\n}\n```\n\n### `GET /ipfs/\u003cpath\u003e`\n\nFetch a file from the node.\n\n#### Response Body\n\nThe contents of the file.\n\n\n### `POST /add-zipped-directory` (experimental)\n\nAdds a zipped directory to IPFS. It will extract the zip file into a folder with the same name and upload it.\n\n#### Request Body\n\nExpects a `multipart/form-data` body with a `file` field:\n\n```typescript\n----FormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"\u003cfilename\u003e.zip\"\nContent-Type: application/zip\n\n(data)\n----FormBoundary7MA4YWxkTrZu0gW\n```\n\n#### Response Body\n\n```typescript\n{\n  data: [\n    ...\n    {\n      path: string,\n      hash: string\n    },\n    {\n      path: \"/\",\n      hash: string\n    }\n  ]\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkleros%2Fipfs-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkleros%2Fipfs-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkleros%2Fipfs-proxy/lists"}