{"id":13555302,"url":"https://github.com/victorb/pincoop","last_synced_at":"2025-07-10T06:35:09.441Z","repository":{"id":148376961,"uuid":"44856811","full_name":"victorb/pincoop","owner":"victorb","description":"Pin your hashes all over the world","archived":false,"fork":false,"pushed_at":"2015-11-10T19:15:10.000Z","size":248,"stargazers_count":68,"open_issues_count":14,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-28T16:16:18.460Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://openipfs.xyz","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/victorb.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-24T07:33:49.000Z","updated_at":"2024-01-31T04:16:53.000Z","dependencies_parsed_at":"2023-04-12T12:15:27.849Z","dependency_job_id":null,"html_url":"https://github.com/victorb/pincoop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/victorb/pincoop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fpincoop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fpincoop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fpincoop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fpincoop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/victorb","download_url":"https://codeload.github.com/victorb/pincoop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fpincoop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264538586,"owners_count":23624437,"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-08-01T12:03:08.249Z","updated_at":"2025-07-10T06:35:09.401Z","avatar_url":"https://github.com/victorb.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"## PinCoop\n\nDISCLAIMER: This project is in Beta stage and hugely unstable. Installation\nwithout docker is not guaranteed to succeed. Use at your own risk\n\n### Introduction\n\nPinCoop is a set of API endpoints and WebUI for adding public daemons, retrieve a list\nof all of them and to add hashes to be pinned on those public daemons.\n\n### Goal\n\nThe goal is to provide a starting point for openly share hashes of interest,\non a large set of open daemons contributed by the community.\n\nIPFS works the way that the more hosts pin a hash, the more resilient that\nhash becomes. By providing a starting point for open hosting of these hashes,\nI hope that we can share more resources with each others.\n\nAll in a very open and transparent way.\n\n### Contributing\n\nThere are mainly three ways you can contribute.\n\n1. Donate money to people willing to hosts node. As project owner, I'm willing to host nodes in a location of your chosing, and manage the node for use in PinCoop. Donate via Bitcoin `1MFZHmG3HAtQLHv3yvRn5VWRmF1Aa7u8FC` or Paypal `victorbjelkholm+paypal@gmail.com` and open an issue about your donation, so I can tell you the progress of setting up the node for PinCoop.\n2. You can manage your own node and copy-paste the public multiaddr directly in http://pincoop.xyz/nodes/add. You'll need to set the API config in ~/.ipfs/config to listen to 0.0.0.0. Better security will come in the future.\n3. Third way of contributing is to help with the software behind PinCoop. There are two parts, the backend that does polling of the nodes and sends API requests to the connected nodes, and the frontend which is a redux application.\n\n### Installation\n\nEasiest is to use docker to run PinCoop in your own network.\n\n* `docker pull victorbjelkholm/pincoop`\n\n* `docker run -d -p your_port:3000 victorbjelkholm/pincoop`\n\nReplace `your_port` with the port you want the WebUI to be available on.\n\nIt'll take a few seconds for the server to boot after running `docker run`, so\njust hang tight for a while before loading...\n\n### Screenshots\n\nSome screenshots on how it looks currently\n\n##### Homepage\n![Homepage](http://i.imgur.com/amwccoW.png)\n\n##### Pinning content\n![Pinning content](http://i.imgur.com/naZTfK7.png)\n\n##### Live nodes\n![Live nodes](http://i.imgur.com/KDcfO4M.png)\n\n##### Adding a node\n![Adding a node](http://i.imgur.com/zY4Edbe.png)\n\n##### About\n![About](http://i.imgur.com/ADcHfDF.png)\n\n### Endpoints\n\n`GET /daemons`\n\nReturns a list of currently added daemons with `alive` status, list of hashes\nthat will be pinned and hashes that been pinned before\n\n`POST /daemons`\n\nAdds a new daemon to the list of daemons. The endpoint accepts JSON only, be sure\nto include the `multiaddr` attribute on the root object. Returned is the created\ndaemon in the API.\n\n`POST /pin/:hash`\n\nPins a new hash. This is an asynchronous operation, it always return true. Use\n`GET /daemons` or `GET /pin/:hash` to see the status of that pinning operation\n\n`GET /pin/:hash`\n\nSee the status of a current pinning, made from `POST /pin/:hash`\n\n### Installation\n\n* Clone the repository into your local/remote machine\n* Run `npm install`\n* Run `npm start`\n* Done! Now the API+Frontend is running on `PORT` from environment variables or if\nthat is not set, port 3000\n\n### Development\n\nThe stack is as follows:\n* Express + middlewares for handling API requests\n* node-ipfs-api for handling requests to the daemons added to the service\n* Redux+React+Webpack for the frontend\n\nA local daemon is always added on startup! Don't worry if you're not running\na daemon where the API is deployed, it'll soon be removed if it's not up.\n\nYou want to contribute to the API/Server/Daemon logic? Take a look in the `/api`\ndirectory\n\nYou want to make the frontend a bit nicer and more sense-looking? Take a look in\nthe `/frontend` directory.\n\nMakes sense? No? Change it and send a PR :)\n\n### Contributing\n\nYou can contribute in a number of ways. Either, add your own public daemon to\nthe service, so other people can pin content on your daemon, or, take a look\nat the issues in this repository and see if it's something you can fix. If\nyou already looked at the code or used the service, open a new issue for everything\nthat looks weird (I bet some parts are filled with weird stuff!). If someone\nis asking something you know, please answer them! This is a project we do together,\nso feel free to basically do whatever you want.\n\n\n### License\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Victor Bjelkholm\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictorb%2Fpincoop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictorb%2Fpincoop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictorb%2Fpincoop/lists"}