diff --git a/astro.config.mjs b/astro.config.mjs index aadb051..ebcb8a2 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -110,6 +110,10 @@ export default defineConfig({ label: "Overview", link: "/public-pool/about", }, + { + label: "Self-Hosting", + link: "/public-pool/selfhost", + }, ], }, { diff --git a/src/content/docs/public-pool/about.md b/src/content/docs/public-pool/about.md index 24dcf21..3ce5114 100644 --- a/src/content/docs/public-pool/about.md +++ b/src/content/docs/public-pool/about.md @@ -3,7 +3,7 @@ title: About Public Pool discordChannel: https://discord.com/channels/1091348375301013615/1120846282672590918 githubRepo: https://github.com/benjamin-wilson/public-pool --- -Public Pool is fully open source, solo Bitcoin mining pool. There is an official instance of the pool available at [web.public-pool.io](https://web.public-pool.io), where you can point your miners, but you also have the option to host it yourself. +Public Pool is fully open source, solo Bitcoin mining pool. There is an official instance of the pool available at [web.public-pool.io](https://web.public-pool.io), where you can point your miners, but you also have the option to [host it yourself](./selfhost). The official instance is managed by [Ben](https://github.com/benjamin-wilson). The backend runs on hardware under his physical control, and only the GUI relies on cloud infrastructure. Public Pool was developed from scratch with the goal of offering easy installation, a modern interface, maintainability, and low complexity. diff --git a/src/content/docs/public-pool/selfhost.md b/src/content/docs/public-pool/selfhost.md new file mode 100644 index 0000000..5c8a657 --- /dev/null +++ b/src/content/docs/public-pool/selfhost.md @@ -0,0 +1,52 @@ +--- +title: Self-Hosting Public Pool +--- + +bla bla overview here, something about being able to do this on your home pc but dedicated hardware is nice too (and especially note old pcs are perfectly fine) + +## Installing Dependencies + +TODO: `git` and `npm` lts + +### 💻 Windows + +### 🍏 MacOS + +- use homebrew to install the latest node lts + the version needs to be specified + +### 🐧 Linux + +#### Debian, Ubuntu, and Derivatives +- install git with `apt install git` +- select the node.js runtime, your distro, and the latest lts version from https://nodesource.com/products/distributions + +#### Arch and Derivatives +- install git with `pacman -S git` +- use your favorite aur helper to install the latest node lts, or install nvm, then use nvm to install and activate the latest node lts + +## Installing Bitcoin Core + +- download latest release from https://bitcoin.org/en/download + TODO: note about knots and btcd being usable as well +- extract everything in `bitcoin-XX.X/bin` to `/usr/local/bin`, and everything in `bitcoin-XX.X/share` to `/usr/local/share` + +## Setting up your Bitcoin node + +### Bitcoin Core/Knots + +MAYBE: have a community mining config? +TODO: note about pruning, prefer 10-30gib of space for the chain + not everyone casually has 1 tib of free space +### btcd + + +## Setting up your private Public-Pool + +- `git clone https://github.com/benjamin-wilson/public-pool.git` +- `cd ./public-pool` +- install dependencies with `npm install` +- copy `.env.example` to `.env` and fill in `BTC_RPC_URL` and `BTC_RPC_COOKIEFILE` +- `npm start` +- point your miners to your _lan_ ip address +- profit (hopefully)