good-karma-kit/README.md

197 lines
8.4 KiB
Markdown
Raw Normal View History

2021-04-14 13:45:15 +08:00
<div align="center">
2021-04-14 14:39:53 +08:00
<h1>The Good Karma Kit</h1>
2021-04-13 05:57:14 +08:00
2021-04-14 14:40:49 +08:00
<img src="https://user-images.githubusercontent.com/511499/114660274-03b9dc00-9cc3-11eb-9db2-19ff3817d5f9.png" width="300px"/><br/>
2021-04-14 14:44:59 +08:00
<i><b>A Docker Compose project to run on servers with spare CPU, disk, and bandwidth.</b><br/>Help the world by contributing your unused computing power to good causes.</i>
2021-04-14 13:45:44 +08:00
2021-04-14 13:45:15 +08:00
</div>
2021-04-14 13:46:25 +08:00
## Quickstart
2021-04-13 05:57:14 +08:00
2021-04-14 15:10:59 +08:00
1. Download [`docker-compose.yml`](https://github.com/pirate/good-karma-kit/blob/main/docker-compose.yml) into an empty directory (or clone this repo)
2021-04-14 14:26:33 +08:00
2. Edit the `docker-compose.yml` file to fill in the environment variables, or comment out any containers you don't want to run
3. `mkdir data && docker-compose up`
2021-04-14 13:47:50 +08:00
4. Finish setting up some projects through their respective web dashboards exposed on localhost (see below)
2021-04-13 05:57:14 +08:00
2021-04-14 14:32:09 +08:00
See the notes below for more info on each container, what it does, and what companies it's affiliated with.
2021-04-14 14:26:33 +08:00
## Caveats
2021-04-14 13:36:22 +08:00
2021-04-14 13:47:50 +08:00
The nature of most of these containers is that you're contributing resources to the public or to specific causes running on the public internet.
2021-04-14 13:36:22 +08:00
Unless otherwise specified or restricted to 127.0.0.1 in the compose file, all ports should be made available to the public internet.
2021-04-14 13:47:50 +08:00
Make sure you understand the risks involved with exposing your machine to WAN. It may be worth running this in an isolated VM on an isolated subnet if it's on your home or corporate network.
2021-04-14 13:36:22 +08:00
2021-04-14 14:26:33 +08:00
Not all the containers are not-for-profit, some either reward you with cryptocurrency, or are affiliated for-profit entities. Each container is marked below with its non-profit/for-profit status.
2021-04-14 14:32:09 +08:00
If there are too many containers for your liking, the top-3 good-karma-earning/positively-impactful ones to run are:
- ⭐️ `archivewarrior`
- ⭐️ `boinc`
- ⭐️ `tor`
2021-04-14 13:36:22 +08:00
## Contents
2021-04-14 13:38:11 +08:00
---
2021-04-14 13:36:22 +08:00
### Autoupdater
#### watchtower
`image: containrrr/watchtower`
2021-04-14 14:22:56 +08:00
> Automatically update & restart docker containers when they have new versions available. (open source helper container)
2021-04-14 13:36:22 +08:00
2021-04-14 14:48:48 +08:00
[https://containrrr.dev/watchtower/](https://containrrr.dev/watchtower/)
[https://github.com/containrrr/watchtower](https://github.com/containrrr/watchtower)
2021-04-14 13:36:22 +08:00
Notes: requires access to system docker socket, and will autoupdate *all* running containers on the host unless scoped with labels.
2021-04-14 13:38:11 +08:00
---
2021-04-14 13:36:22 +08:00
### Distributed networking projects
2021-04-14 14:32:09 +08:00
#### tor ⭐️
2021-04-14 13:36:22 +08:00
`image: thetorproject/obfs4-bridge:latest`
2021-04-14 14:26:33 +08:00
> Run a relay node for the Tor onion routing netowrk that helps people use the internet with as much privacy as possible. (501(c)(3) US nonprofit)
2021-04-14 14:22:56 +08:00
2021-04-14 14:48:48 +08:00
[https://www.torproject.org/](https://www.torproject.org/)
[https://hub.docker.com/r/thetorproject/obfs4-bridge](https://hub.docker.com/r/thetorproject/obfs4-bridge)
2021-04-14 13:36:22 +08:00
#### i2p
`image: divax/i2p:i2p-tor`
2021-04-14 14:22:56 +08:00
> Run a relay node for the i2p routing network (similar to Tor). (501(c)(3) US nonprofit)
2021-04-14 14:48:48 +08:00
[https://geti2p.net/en/](https://geti2p.net/en/)
[https://hub.docker.com/r/divax/i2p](https://hub.docker.com/r/divax/i2p)
2021-04-14 13:36:22 +08:00
2021-04-14 14:32:09 +08:00
---
### Distributed computing projects
#### boinc ⭐️
`image: ghcr.io/linuxserver/boinc`
> Help contribute CPU and GPU power to a wide variety of scientific research projects, including protein folding, alien signal detection, and more! (operated not-for-profit by UC Berkeley and funded by the NSF)
2021-04-14 14:48:48 +08:00
[https://boinc.berkeley.edu/](https://boinc.berkeley.edu/)
[https://hub.docker.com/r/linuxserver/boinc](https://hub.docker.com/r/linuxserver/boinc)
2021-04-14 14:32:09 +08:00
Notes: if you have a GPU, it will help computations greatly, please uncomment the /dev/dri line.
#### foldingathome
`image: ghcr.io/linuxserver/foldingathome`
> Help contribute CPU power to solve protein folding problems in bioscience, crucial to the development of vacienes and our understanding of molecular biology and mechanics. (operated by a research group at Washington University in Saint Louis, a 501(c)(3) non-profit)
2021-04-14 14:48:48 +08:00
[https://foldingathome.org/](https://foldingathome.org/)
[https://hub.docker.com/r/linuxserver/foldingathome](https://hub.docker.com/r/linuxserver/foldingathome)
2021-04-14 14:32:09 +08:00
2021-04-14 13:38:11 +08:00
---
2021-04-14 13:36:22 +08:00
### Distribued storage projects
#### ipfs
`image: ipfs/go-ipfs:latest`
2021-04-14 14:22:56 +08:00
> Run a storage node (free/not-for-profit) on the IPFS distributed storage network and pin files you care about to help serve them to others. (operated by Protocol Labs Inc., a for-profit US company)
2021-04-14 14:48:48 +08:00
[https://ipfs.io](https://ipfs.io)
[https://hub.docker.com/r/ipfs/go-ipfs](https://hub.docker.com/r/ipfs/go-ipfs)
2021-04-14 13:36:22 +08:00
#### storj
`image: storjlabs/storagenode:latest`
2021-04-14 14:22:56 +08:00
> Run a storage node (for profit) on the Storj distributed storage network, automatically contribute your storage space and bandwidth and earn cryptocurrency in return. (operated by Storj Labs Inc., a for-profit US company)
2021-04-14 14:48:48 +08:00
[https://www.storj.io/](https://www.storj.io/)
[https://hub.docker.com/r/storjlabs/storagenode](https://hub.docker.com/r/storjlabs/storagenode)
2021-04-14 13:36:22 +08:00
Notes: 💰 This one earns you money for your storage! Set up your `WALLET` address for payouts.
#### sia
`image: nebulouslabs/sia`
2021-04-14 14:22:56 +08:00
> Run a storage node (free/not-for-profit) on the Sia distributed storage network. (operated by Sia Foundation, a 501(c)(3) US nonprofit, but helps serve Skynet, a for-profit partner entity)
2021-04-14 14:48:48 +08:00
[https://sia.tech/](https://sia.tech/)
[https://hub.docker.com/r/nebulouslabs/sia](https://hub.docker.com/r/nebulouslabs/sia)
2021-04-14 13:36:22 +08:00
2021-04-14 14:48:48 +08:00
Notes: there are concerns with the long-term viability of this project [https://siasetup.info/concerns-about-sia-and-skynet](https://siasetup.info/concerns-about-sia-and-skynet)
2021-04-14 14:22:56 +08:00
2021-04-14 13:38:11 +08:00
---
2021-04-14 13:36:22 +08:00
### Internet Archiving projects
2021-04-14 14:32:09 +08:00
#### archivewarrior ⭐️
2021-04-14 13:36:22 +08:00
2021-04-14 15:26:19 +08:00
`image: atdr.meo.ws/archiveteam/warrior-dockerfile:latest` or `archiveteam/warrior-dockerfile`
2021-04-14 13:36:22 +08:00
2021-04-14 14:48:48 +08:00
> Help contribute CPU and bandwidth to archive parts of the internet automatically before they go down. Has helped save large swaths of the internet from going dark forever by adding them to Archive.org. (operated by an open-source collective, not-for-profit)
[https://warrior.archiveteam.org/](https://warrior.archiveteam.org/)
[https://hub.docker.com/r/archiveteam/warrior-dockerfile/](https://hub.docker.com/r/archiveteam/warrior-dockerfile/)
2021-04-14 13:36:22 +08:00
#### zimfarm
`image: openzim/zimfarm-worker-manager`
2021-04-14 14:22:56 +08:00
> Help contribute CPU and bandwidth to *archive* large content collections for offline use in areas with limited internet. Helps many communities access things like Wikipedia, Project Gutenberg, and more. (operated by the Swiss non-profit Kiwix/OpenZIM)
2021-04-14 14:48:48 +08:00
[https://github.com/openzim/zimfarm](https://github.com/openzim/zimfarm)
[https://hub.docker.com/r/openzim/zimfarm-worker-manager](https://hub.docker.com/r/openzim/zimfarm-worker-manager)
2021-04-14 13:36:22 +08:00
2021-04-14 15:04:42 +08:00
Notes: this one requires a static IP and >1TB of monthly network transfer available! You must [contact Kiwix to get your worker set up](https://github.com/openzim/zimfarm/blob/master/workers/README.md#zimfarm-workers), and get your static IP whitelisted.
2021-04-14 13:36:22 +08:00
#### kiwix
`image: kiwix/kiwix-serve:latest`
2021-04-14 14:22:56 +08:00
> Help contribute bandwidth and disk to *serve* large content collections to users in areas with limited or censored internet. This is the server for the content that `zimfarm` archives. (operated by the Swiss non-profit Kiwix/OpenZIM)
2021-04-14 14:48:48 +08:00
[https://www.kiwix.org/en/](https://www.kiwix.org/en/)
[https://hub.docker.com/r/kiwix/kiwix-serve](https://hub.docker.com/r/kiwix/kiwix-serve)
2021-04-14 15:04:42 +08:00
2021-04-14 14:48:48 +08:00
Notes: this one requires you download some ZIM archives to serve into `./data/kiwix`, get those from here: [https://wiki.kiwix.org/wiki/Content_in_all_languages](https://wiki.kiwix.org/wiki/Content_in_all_languages)
2021-04-14 13:36:22 +08:00
#### archivebox
`image: archivebox/archivebox:latest`
2021-04-14 14:22:56 +08:00
> Use ArchiveBox as a tool to archive sites you care about for offline visiting or rehosting after they go down. (open source project, not-for-profit)
2021-04-14 14:48:48 +08:00
[https://archivebox.io](https://archivebox.io)
[https://hub.docker.com/r/archivebox/archivebox/](https://hub.docker.com/r/archivebox/archivebox/)
2021-04-14 13:36:22 +08:00
Notes: this one is empty by default, add some sites to archive or crawl regulary using the web UI or CLI.
#### pywb
`image: webrecorder/pywb:latest`
2021-04-14 14:22:56 +08:00
> Use PYWB as a tool to archive sites you care about for offline visiting or rehosting after they go down. (open source project, not-for-profit, affiliated with Rhizome/Webrecorder)
2021-04-14 14:48:48 +08:00
[https://github.com/webrecorder/pywb](https://github.com/webrecorder/pywb)
[https://hub.docker.com/r/webrecorder/pywb](https://hub.docker.com/r/webrecorder/pywb)
2021-04-14 13:36:22 +08:00
Notes: this one is empty by default, add some sites to archive or crawl regulary using the web UI or CLI.
---
## Contribute
2021-04-14 15:19:26 +08:00
Contributions, corrections, and documentation improvements are welcome! Please open an issue or PR to suggest a fix or a new container addition.