Dockerized Ethereum / Swarm Node
A dockerized Ethereum related node setup, using docker-compose.
- The docker-compose setup builds images locally, since official docker images are only built for x86_64 and I wanted this to compile onto ARM variants as well. Make sure the system has enough resources to do the compilation (500MB of RAM should do).
- This setup was designed for running on locally networked hardware. I take no responsibility if services are exposed to the Internet and you are not adequately firewalled.
Secrets are handled through environment variables, which can be set by renaming
.config.env and changing account values to your own.
Grafana default credentials are
admin:admin. Change them as soon as Grafana is up and running.
- Clone this repository:
git clone https://github.com/Chadsr/ethereum_node.git
- Init and update Git submodules
git submodule init git submodule update
- Copy the example config to
cp .config.env.example .config.env
- Edit the values in
.config.envto your preference.
Note: An Ethereum account will NOT automatically be generated. It is assumed that you have already created one.
An example systemd unit file:
[Unit] Description=Ethereum Dockerized Services Requires=docker.service After=docker.service [Service] EnvironmentFile=/path/to/ethereum_node/.config.env WorkingDirectory=/path/to/ethereum_node Restart=always ExecStart=/usr/bin/docker-compose up --build ExecStop=/usr/bin/docker-compose down [Install] WantedBy=multi-user.target
Write the above to a file named
/etc/systemd/system/ethereum.serviceand update the working directory to point to the cloned repository.
Enable the systemd service:
sudo systemctl enable ethereum.service
- Start the systemd service:
sudo systemctl start ethereum.service
- (Optionally) monitor the output of your newly running service:
sudo journalctl -f -u ethereum.service
Since this setup is designed to build the docker images locally, it should work on any common CPU architecture. I am personally running it on aarch64 (ARMv8).
Current version: v1.9.11
Current version: v0.5.7