All apps · 0 apps
public-pool
Docker app from D0ooo's Repository
Overview
Run your own solo MINING POOL with web UI using public-pool & public-pool-ui. This Unraid template supports custom IP, ports, and direct Bitcoin node integration.
***** IMPORTANT NETWORK INFORMATION: *****
The External IP Address field must be set to the IP address where miners will connect to your pool.
- If using bridge network (default): This should be your Unraid server's IP address
- If using host network: This should be your Unraid server's IP address
- If using custom network: This should be the IP you assigned to the container
The ports shown below (3333, 3334, 8080) are used internally and can be mapped to different ports on your host if needed. Standard web UI access will be http://YOUR-Unraid-IP:8080
Readme
View on GitHubDescription
A Nestjs and Typescript Bitcoin stratum mining server.
Installation
$ npm install
create an new .env file in the root directory and configure it with the parameters in .env.example
Running the app
# development
$ npm run start
# watch mode
$ npm run start:dev
# production build
$ npm run build
Test
# unit tests
$ npm run test
# test coverage
$ npm run test:cov
Web interface
See public-pool-ui
Deployment
Install pm2 (https://pm2.keymetrics.io/)
$ pm2 start dist/main.js
When running the worker app in PM2 cluster mode, start the PM2 daemon with OS-level connection scheduling. The environment variable must be present when the PM2 daemon starts, not only in the worker configuration.
$ NODE_CLUSTER_SCHED_POLICY=none pm2 start ecosystem.config.js
Cluster-mode connection dropping requires Node.js 22.12.0 or newer.
STRATUM_MAX_CONNECTIONS_PER_LISTENER is enforced per worker and Stratum port.
Size it using the busiest port: worker count * limit. For example, 28 workers
with the default limit of 10000 allow up to 280000 connections on one port.
Docker
Build container:
$ docker build -t public-pool .
Run container:
$ docker container run --name public-pool --rm -p 3333:3333 -p 3334:3334 -p 8332:8332 -v .env:/public-pool/.env public-pool
Docker Compose
Build container:
$ docker compose build
Run container:
$ docker compose up -d
The docker-compose binds to 127.0.0.1 by default. To expose the Stratum services on your server change:
ports:
- - "127.0.0.1:3333:3333/tcp"
- - "127.0.0.1:3334:3334/tcp"
+ - "3333"
+ - "3334"
note: To successfully connect to the bitcoin RPC you will need to add
rpcallowip=172.16.0.0/12
to your bitcoin.conf.
Install public-pool on Unraid in a few clicks.
Find public-pool in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
animai/public-poolRuntime arguments
- Web UI
http://[IP]:[PORT:8080]/- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Directory where Public Pool stores shares, stats and worker data.
- Target
- /app/data
- Default
- /mnt/user/appdata/public-pool
- Value
- /mnt/user/appdata/public-pool
Directory where the SQLite database is stored.
- Target
- /app/mainnet-DB
- Default
- /mnt/user/appdata/public-pool/mainnet-DB
- Value
- /mnt/user/appdata/public-pool/mainnet-DB
Mining port for stratum connections. Miners will connect to YOUR-EXTERNAL-IP:3333 (or the port you map this to)
- Target
- 3333
- Default
- 3333
- Value
- 3333
API port for backend services
- Target
- 3334
- Default
- 3334
- Value
- 3334
Port for the web UI. Access via http://YOUR-EXTERNAL-IP:8080 (or the port you map this to)
- Target
- 8080
- Default
- 8080
- Value
- 8080
RPC URL of your Bitcoin node (e.g. http://192.168.1.100)
- Target
- BITCOIN_RPC_URL
- Default
- http://192.168.1.100
- Value
- http://192.168.1.100
RPC port of your Bitcoin node (default: 8332)
- Target
- BITCOIN_RPC_PORT
- Default
- 8332
- Value
- 8332
Username defined in your bitcoin.conf
- Target
- BITCOIN_RPC_USER
- Default
- rpcuser
- Value
- rpcuser
Password defined in your bitcoin.conf
- Target
- BITCOIN_RPC_PASSWORD
- Default
- rpcpassword
- Value
- rpcpassword
ZMQ address of your Bitcoin node (e.g. tcp://192.168.1.100:28334)
- Target
- BITCOIN_ZMQ_HOST
- Default
- tcp://192.168.1.100:28334
- Value
- tcp://192.168.1.100:28334
RPC timeout in ms (default: 10000)
- Target
- BITCOIN_RPC_TIMEOUT
- Default
- 10000
- Value
- 10000
IMPORTANT: Set this to YOUR unRAID server's IP address (or the IP where miners will connect). Required for UI to display miners correctly.
- Target
- EXTERNAL_IP
- Default
- 192.168.1.100
Custom name for your pool (e.g. Home-Pool, Unraid-Pool)
- Target
- POOL_IDENTIFIER
- Default
- public-pool
- Value
- public-pool
Bitcoin network to use (mainnet or testnet)
- Target
- NETWORK
- Default
- mainnet
- Value
- mainnet
Set to 'true' to enable HTTPS. Default is 'false' (HTTP only). Enable only if you have a proper reverse proxy or certificate setup. Only enable HTTPS if you know what you're doing.
- Target
- API_SECURE
- Default
- false
- Value
- false