Overview
SSV Node provides official Docker images for easy deployment. This guide covers deploying SSV Node using Docker and Docker Compose for both single-node and multi-node configurations.Prerequisites
Before deploying SSV Node with Docker, ensure you have:- Docker Engine (v20.10 or later)
- Docker Compose (v2.0 or later)
- Access to Ethereum Execution (ETH1) and Consensus (ETH2) nodes
- Operator private keys (see Generating Operator Keys)
- At least 4GB RAM and 50GB disk space
- Ports 12001 (UDP) and 13001 (TCP) available and open
Docker Image
The official SSV Node Docker image is available at:Generating Operator Keys
Before deploying, generate your operator keys:pk) and private key (sk). Save these securely.
Single Node Deployment
Step 1: Create Configuration File
Environment Variables
Key environment variables used by the SSV Node container:| Variable | Description | Default |
|---|---|---|
CONFIG_PATH | Path to configuration file | ./config.yaml |
GODEBUG | Go runtime debug flags | netdns=go |
Volume Mounts
The container requires the following volume mounts:| Host Path | Container Path | Purpose |
|---|---|---|
./config.yaml | /config.yaml | Configuration file |
./data | /data | Database and logs |
Port Mappings
| Port | Protocol | Purpose |
|---|---|---|
| 13001 | TCP | P2P communication |
| 12001 | UDP | P2P discovery |
| 15000 | TCP | Metrics API |
| 16000 | TCP | SSV API (optional) |
Docker Compose Deployment
For production deployments, Docker Compose provides better management and configuration.Basic Configuration
Create adocker-compose.yaml file:
Starting the Node
Multi-Node Local Cluster
For development or testing, you can run a multi-node SSV cluster locally.Multi-Node Docker Compose Configuration
Multi-Node Docker Compose Configuration
config.yaml:Updating the Node
Check Current Version
Update to Latest Version
For Docker Compose:
Health Checks
Add health checks to your Docker Compose configuration:Troubleshooting
Container Won’t Start
-
Check logs:
-
Verify configuration file syntax:
-
Ensure ports are not in use:
Network Issues
- Verify firewall rules allow UDP 12001 and TCP 13001
- Check if
HostAddressis correctly set in config.yaml - Ensure execution and consensus node URLs are accessible
Permission Issues
If you encounter permission errors with volume mounts:Next Steps
- Configure Production Best Practices
- Review Security Hardening
- Set up Monitoring and Metrics
