🚗 Autoscout is now available, providing a simple one-click explorer deployment with Blockscout’s optimized hosting infrastructure. Use it for early testing, modifications, and launching a full production-grade explorer. Get Started Now and have your explorer up-and-running in minutes.
Please see https://github.com/blockscout/blockscout/tree/master/docker-compose for all required information.
Prerequisites
- Docker v20.10+
- Docker-compose 2.x.x+
- Running Ethereum JSON RPC client
Building Docker containers from source
Note: you can use
docker compose
instead of docker-compose
, if compose v2 plugin is installed in Docker.Note: if you don’t need to make backend customizations, you can run
docker-compose up
in order to launch from pre-build backend Docker image. This will be much faster.docker-compose.yml
by-default, which builds the backend of the explorer into the Docker image and runs 9 Docker containers:
- Postgres 14.x database, which will be available at port 7432 on the host machine.
- Redis database of the latest version.
- Blockscout backend with api at /api path.
- Nginx proxy to bind backend, frontend and microservices.
- Blockscout explorer at http://localhost.
- Stats service with a separate Postgres 14 DB.
- Sol2UML visualizer service.
- Sig-provider service.
Note for Linux users: Linux users who run Blockscout in docker with a local node need to run the node on http://0.0.0.0/ rather than http://127.0.0.1/
Configs for different Ethereum clients
The repo contains built-in configs for different JSON RPC clients without the need to build the image.JSON RPC Client | Docker compose launch command |
Erigon | docker-compose -f erigon.yml up -d |
Geth (suitable for Reth as well) | docker-compose -f geth.yml up -d |
Geth Clique | docker-compose -f geth-clique-consensus.yml up -d |
Nethermind, OpenEthereum | docker-compose -f nethermind up -d |
Anvil | docker-compose -f anvil.yml up -d |
HardHat network | docker-compose -f hardhat-network.yml up -d |
- Run only the explorer without DB:
docker-compose -f external-db.yml up -d
. In this case, no db container is created. And it assumes that the DB credentials are provided throughDATABASE_URL
environment variable on the backend container. - Running explorer with external backend:
docker-compose -f external-backend.yml up -d
- Running explorer with external frontend:
docker-compose -f external-frontend.yml up -d
- Running all microservices:
docker-compose -f microservices.yml up -d
docker-compose -d -f config_file.yml down
, replacing config_file.yml
with the file name of the config which was previously launched.
You can adjust BlockScout environment variables:
- for backend in
./envs/common-blockscout.env
- for frontend in
./envs/common-frontend.env
- for stats service in
./envs/common-stats.env
- for visualizer in
./envs/common-visualizer.env
Running via Makefile
Prerequisites are the same, as for docker-compose setup. Start all containers:Note: Makefile uses the same .env files since it is running docker-compose services inside.