A modular and automated installer for deploying an Ethereum node using Reth and Lighthouse, including system setup, firewall rules, secure proxies and snapshots
- Checks for root permissions to ensure setup can proceed.
- Validates required environment variables (like
RETH_VERSION,NODE_CLIENT, etc). - Updates the system, installs essential packages like
unzip,screen,zstd, etc. - Creates data directories for Reth and Lighthouse.
- Downloads the correct binaries of Reth and Lighthouse based on your OS and CPU architecture.
- Extracts the binaries into their respective folders.
- Loads environment variables from
.envand default values. - Detects the OS and CPU architecture to ensure compatibility.
- Runs the firewall setup script to allow only required ports using UFW.
- Installs and configures NGINX:
- Generates Basic Auth credentials if not provided.
- Proxies HTTP (6008), WS (6009), and metrics (6007).
- Downloads and extracts snapshot from Merkle (if
SYNC_FROM=merkle). - Creates
systemdservices for bothrethandlighthouse. - Starts the services and enables them on boot.
- Runs a post-install summary to show you how to check logs, endpoints, and service status.
Follow these steps in the given order to set up the project:
- Download the script
git clone git@github.com:jpgonzalezra/reth_installer.git-
Setup your .env (use .env.example)
-
Run the following command to grant execute permissions to the setup_server.sh script:
chmod +x setup_server.sh
chmod +x setup_node.sh- Execute the setup_server.sh script with administrative privileges:
sudo ./setup_server.sh- After reboot, Run the run.sh script as root:
sudo ./setup_node.shThis project wouldn’t exist without the inspiration from reth_helper by @0xSheller
Big thanks also to:
- Paradigm for building Reth
- Sigma Prime for maintaining Lighthouse
If this tool saved you time or helped you deploy your node, consider ⭐️ starring the repo or contributing back!