|
|
||
|---|---|---|
| deb-files-mainnet | ||
| deb-files-testnet | ||
| .gitignore | ||
| Dockerfile | ||
| Dockerfile-testnet | ||
| README.md | ||
| start.sh | ||
Blockbook Docker (Single Container)
This guide will help you build and run the Docker image for Blockbook Mainnet and Testnet, which is based on Ubuntu 22.04 and includes both backend and frontend components in a single container.
Prerequisites
- Docker installed on your machine.
- Clone or download the repository to your local machine.
Mainnet
Steps to build the Docker image for Mainnet.
-
Building the Docker Image
Navigate to the directory where the repository is cloned and build the Docker image:
git clone https://github.com/ranchimall/blockbook-docker cd blockbook-docker docker build -f Dockerfile -t ranchimall/blockbook-mainnet:1.0.0 . -
Running the Docker Container
Create a named volume for persistent storage:
docker volume create mainnetRun the Docker container in detached mode and map port
9166of the container to port9166(or any other port) on the host machine (-p host-port:container-port):docker run -d -e ZIP=false -e NETWORK=mainnet --name blockbook-mainnet -p 9166:9166 --mount source=mainnet,target=/opt/coins ranchimall/blockbook-mainnet:1.0.0 -
Accessing the Frontend
Once the Docker container is running, you can access the frontend of the application by navigating to: https://localhost:9166 in your web browser.
-
Accessing Logs
To check the logs, you can access the container shell and use the
tailcommand:docker exec -it blockbook-mainnet bashTo view the logs of the backend and frontend, run:
# Backend logs tail -f /opt/coins/data/flo/backend/debug.log # Frontend logs tail -f /opt/coins/blockbook/flo/logs/blockbook.INFO
Testnet
Steps to build the Docker image for Testnet.
-
Building the Docker Image
Navigate to the directory where the repository is cloned or downloaded and build the Docker image:
cd blockbook-docker docker build -f Dockerfile-testnet -t ranchimall/blockbook-testnet:1.0.0 . -
Running the Docker Container
Create a named volume for persistent storage:
docker volume create testnetRun the Docker container in detached mode and map port
19166of the container to port19166(or any other port) on the host machine (-p host-port:container-port):docker run -d -e ZIP=false -e NETWORK=testnet --name blockbook-testnet -p 19166:19166 --mount source=testnet,target=/opt/coins ranchimall/blockbook-testnet:1.0.0 -
Accessing the Frontend
Once the Docker container is running, you can access the frontend of the application by navigating to: https://localhost:19166 in your web browser.
-
Accessing Logs
To check the logs, you can access the container shell and use the
tailcommand:docker exec -it blockbook-testnet bashTo view the logs of the backend and frontend, run:
# Backend logs tail -f /opt/coins/data/flo_testnet/backend/testnet4/debug.log # Frontend logs tail -f /opt/coins/blockbook/flo_testnet/logs/blockbook.INFO
Environment Variables
Blockbook uses environment variables to allow for configuration settings. You set the environment variables in your Docker run startup command. Here are the config settings offered by this image:
- NETWORK: [mainnet|testnet] The FLO network you wish to run the Blockbook on.
- ZIP: [true|false] To download the bootstrap data or not to speed up the syncing of blocks, which will be reflected in Blockbook.
- TESTNET_ZIP_URL: The URL for Testnet to download the zip for bootstrapping Blockbook (Testnet).
- MAINNET_ZIP_URL: The URL for Mainnet to download the zip for bootstrapping Blockbook (Mainnet).
You can use the --env-file flag to pass these environments through a file during runtime. Create a .env file in the same directory as your project, using the .env.example file as a guide. Then, run your app with the following command to load the environment variables from the file:
#to run mainnet add mainnet Environment Variables.
docker run -d --env-file .env --name blockbook-mainnet -p 9166:9166 --mount source=mainnet,target=/opt/coins ranchimall/blockbook-mainnet:1.0.0
#to run testnet add testnet Environment Variables.
docker run -d --env-file .env -name blockbook-testnet -p 19166:19166 --mount source=testnet,target=/opt/coins ranchimall/blockbook-testnet:1.0.0
Additional Commands
-
Stopping the Docker Container:
To stop the container, use:
docker stop <containername> -
Removing the Docker Container:
To remove the container, use:
docker rm <containername> -
Removing the Docker Image:
To remove the image, use:
docker rmi <imagename>
Replace <imagename> and <containername> with the actual image name and container name or ID, respectively.
Troubleshooting
-
Ensure that no other application is using port
9166or19166on your host machine. -
If you encounter issues, check the Docker container logs:
docker logs <containername>