Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,10 @@ export default defineConfig({
label: "Overview",
link: "/public-pool/about",
},
{
label: "Self-Hosting",
link: "/public-pool/selfhost",
},
],
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/public-pool/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
52 changes: 52 additions & 0 deletions src/content/docs/public-pool/selfhost.md
Original file line number Diff line number Diff line change
@@ -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`
Comment on lines +31 to +32
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this obviously needs to be expanded


## 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`
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also needs expansion

- `npm start`
- point your miners to your _lan_ ip address
- profit (hopefully)