{"id":13657587,"url":"https://github.com/peoples-cloud/pc","last_synced_at":"2025-05-07T03:45:05.629Z","repository":{"id":57528071,"uuid":"75228672","full_name":"peoples-cloud/pc","owner":"peoples-cloud","description":"people's cloud: using the ideas of botnets for good","archived":false,"fork":false,"pushed_at":"2017-06-07T15:31:56.000Z","size":33,"stargazers_count":38,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T03:45:00.658Z","etag":null,"topics":["bot","botnet","ipfs","peoples-cloud"],"latest_commit_sha":null,"homepage":"","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/peoples-cloud.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":"2016-11-30T21:28:00.000Z","updated_at":"2024-05-30T10:31:30.000Z","dependencies_parsed_at":"2022-09-03T19:41:00.764Z","dependency_job_id":null,"html_url":"https://github.com/peoples-cloud/pc","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/peoples-cloud%2Fpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peoples-cloud%2Fpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peoples-cloud%2Fpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peoples-cloud%2Fpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peoples-cloud","download_url":"https://codeload.github.com/peoples-cloud/pc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252810273,"owners_count":21807759,"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":["bot","botnet","ipfs","peoples-cloud"],"created_at":"2024-08-02T05:00:45.876Z","updated_at":"2025-05-07T03:45:05.608Z","avatar_url":"https://github.com/peoples-cloud.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# people's cloud\nusing the ideas of botnets for good  \n\n_the documentation on this page is always under construction :warning:_ \n### aim \u0026 intent\nto create a technological solution so that people with computing power can share it with others.  \n\nin its current iteration, this is focused on botmakers so that botmakers *with* servers can run swarms where botmakers *without* servers, or the monetary means to acquire \u0026 run them, can run their creations, while (hopefully!) reducing the overhead needed for the server people to share their resources.\n\n### what is it\na tool for creating decentralized swarms of computers, where nodes in the swarms can deploy programs to be run on other nodes \n\n### who is it for\nobviously everyone since it is open source, but  \nit's intended for small communities with an already established trust, as technical trust is a complex subject  \nit's for [art bot / folk bot](https://youtu.be/87yiUjGnXdI) people that want to run their bots with the help of their friends  \nit's for private communities that want to experiment with weird stuff    \nbasically, if you don't trust the people you will join the swarm with - **don't run this**\n\n### how do i use it\nfirst make sure you have fulfilled all the requirements (ipfs/docker/go)\n\nthen, in a terminal window, do:  \n`go run pc.go daemon config.toml`\n\nusing another terminal window you can now issue commands to the daemon:\n```sh\ngo run pc.go --help\nUsage:\n  pc [command]\n\nAvailable Commands:\n  create      Create a new swarm\n  daemon      Starts the pc daemon\n  deploy      Deploy a program to be run by a node in the swarm\n  join        Join a new swarm\n  leave       Leave a swarm\n  list        Lists all connected swarms and deployed programs\n  stop        Stop a deployed program\n```\n_binaries are coming. they can also be built using `go build pc.go`_\n\n### terminology\n* nodes\n  * simply a computer running the `pc daemon` command\n* swarms\n  * a group of connected nodes, sharing the load of the deployed programs within the swarm\n* programs\n  * self-contained javascript/python code, e.g. a python twitter bot\n\n### what you can currently do\n* run self-contained nodejs, python2 and python3 programs on other people's computers\n\n#### python 2/3\n* make sure your main file that does all the work is called bot.py\n* have a file called requirements.txt in the same folder as bot.py, which lists all of the modules you've downloaded to make your program or bot run\n\n#### nodejs\n* make sure you have a package.json file that lists the start script (example of this forth-coming - don't worry!)\n\n### requirements\n* ipfs\n* docker\n* go\n\n## coming up\n* binaries \u0026 github releases so you don't have to bother with using go run to run it \n* standalone clients, which would included\n  * binaries with ipfs bundled\n  * binaries without the docker requirement (still mulling this about)\n* support for password protected swarms\n* configuration examples\n* modularizing the code even further, for reuse in other projects\n* investigations into... \n  * a dockerized setup so that you can just download an image and launch that instead\n  * running everything on raspberry pis (i.e. cross-compiling binaries for the pi)\n    * creating a build process to automate cross-compiling, alongside other binaries\n  * exposing ports so potentially webservices could run \u0026 communicate with the outside world\n  * supporting languages other than python \u0026 js\n  * granularity in configuration of your node, allowing you to restrict runtime, RAM usage and the like\n  * technical audits that will allow for traceability of deployed programs (and thus some form of security for hosts)\n  * potentially using pubsub as a communication mechanism\n* exposing under-the-hood details via options for communities that want to tinker\n* bugfixes :bug:\n\n\n## contributions\nwould love some! i'll think about and write some instructions on what kind of format they should follow to make life easier for integrating changes and new features.\n\n## issues/bugs/crashes\n#### alpha version, work in progress etc\nthere are probably lots of bugs lurking around, so let me know if you find any! \n\neither write a nice github issue about it, or ping me on [twitter](https://twitter.com/cblgh)\n\n### credit\norganization branding by [osavox](https://twitter.com/osavox)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeoples-cloud%2Fpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeoples-cloud%2Fpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeoples-cloud%2Fpc/lists"}