122 lines
3.3 KiB
Bash
Executable File
122 lines
3.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# Create user and group if they don't exist
|
|
if ! getent group p2pool >/dev/null; then
|
|
addgroup --system p2pool
|
|
fi
|
|
|
|
if ! getent passwd p2pool >/dev/null; then
|
|
adduser --system --ingroup p2pool --no-create-home \
|
|
--home /var/lib/p2pool --shell /usr/sbin/nologin \
|
|
--gecos "P2Pool Service" p2pool
|
|
fi
|
|
|
|
# Create data directory
|
|
mkdir -p /var/lib/p2pool/data-api
|
|
chown -R p2pool:p2pool /var/lib/p2pool
|
|
chmod -R 750 /var/lib/p2pool
|
|
|
|
# Create example params.conf if it doesn't exist
|
|
if [ ! -f /var/lib/p2pool/params.conf ]; then
|
|
cat > /var/lib/p2pool/params.conf << 'CONF'
|
|
# P2Pool Configuration File
|
|
# Edit this file with your settings and restart the service
|
|
|
|
# Monero node connection
|
|
host = 127.0.0.1
|
|
rpc-port = 18081
|
|
zmq-port = 18083
|
|
|
|
# Use SSL for RPC connection
|
|
# rpc-ssl = true
|
|
|
|
# RPC credentials (if applicable)
|
|
# rpc-login = username:password
|
|
|
|
# Your Monero wallet address (REQUIRED)
|
|
wallet = YOUR_MONERO_WALLET_ADDRESS
|
|
|
|
# P2P settings
|
|
p2p = 0.0.0.0:37889
|
|
|
|
# API settings
|
|
data-api = /var/lib/p2pool/data-api
|
|
local-api = true
|
|
|
|
# Logging
|
|
log-file = /var/log/p2pool/p2pool.log
|
|
loglevel = 3
|
|
|
|
# Mining mode (uncomment to enable mini sidechain)
|
|
# mini = true
|
|
|
|
# Merge mining (optional - uncomment to enable Tari merge mining)
|
|
# merge-mine = tari://TARI_NODE_IP:18142 TARI_WALLET_ADDRESS
|
|
|
|
# Stratum server (for miners to connect)
|
|
# stratum = 0.0.0.0:3333
|
|
CONF
|
|
chown p2pool:p2pool /var/lib/p2pool/params.conf
|
|
chmod 640 /var/lib/p2pool/params.conf
|
|
fi
|
|
|
|
# Create log directory
|
|
mkdir -p /var/log/p2pool
|
|
chown p2pool:p2pool /var/log/p2pool
|
|
chmod 750 /var/log/p2pool
|
|
|
|
# Set binary permissions
|
|
chown root:root /opt/p2pool/p2pool
|
|
chmod 755 /opt/p2pool/p2pool
|
|
|
|
# Reload systemd and handle service restart on upgrade
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl daemon-reload
|
|
|
|
# On upgrade: restart service if it was enabled
|
|
if [ "$1" = "configure" ] && [ -n "$2" ]; then
|
|
# $2 is the previously installed version (only set on upgrade)
|
|
if systemctl is-enabled --quiet p2pool.service 2>/dev/null; then
|
|
echo "Restarting p2pool service after upgrade..."
|
|
systemctl start p2pool.service || true
|
|
fi
|
|
fi
|
|
# Note: On fresh install, service is NOT auto-enabled or auto-started
|
|
# Users should manually enable the service:
|
|
# systemctl enable p2pool.service
|
|
# systemctl start p2pool.service
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ P2Pool installed successfully!"
|
|
echo ""
|
|
echo "📋 Before starting P2Pool, you MUST configure your settings:"
|
|
echo ""
|
|
echo "1. Edit the configuration file:"
|
|
echo " sudo nano /var/lib/p2pool/params.conf"
|
|
echo ""
|
|
echo " Set your Monero wallet address and adjust other settings as needed."
|
|
echo ""
|
|
echo "2. Start P2Pool:"
|
|
echo " sudo systemctl enable p2pool.service"
|
|
echo " sudo systemctl start p2pool.service"
|
|
echo ""
|
|
echo "3. Check status:"
|
|
echo " sudo systemctl status p2pool.service"
|
|
echo " sudo journalctl -u p2pool -f"
|
|
echo ""
|
|
echo "📁 Important paths:"
|
|
echo " Config file: /var/lib/p2pool/params.conf"
|
|
echo " Data directory: /var/lib/p2pool"
|
|
echo " Log directory: /var/log/p2pool"
|
|
echo " Binary: /opt/p2pool/p2pool"
|
|
echo ""
|
|
echo "💡 Tip: Your params.conf will NOT be overwritten during package upgrades."
|
|
echo ""
|
|
echo "For help:"
|
|
echo " /opt/p2pool/p2pool --help"
|
|
echo ""
|
|
|
|
exit 0
|