79 lines
3.0 KiB
Markdown
79 lines
3.0 KiB
Markdown
# Docker
|
|
|
|
This directory contains the Dockerfiles used to build and release the official images and a `docker-compose.yml` file that is intended for end users to run a Mempool instance with minimal effort.
|
|
|
|
## bitcoind only configuration
|
|
|
|
To run an instance with the default settings, use the following command:
|
|
|
|
```bash
|
|
$ docker-compose up
|
|
```
|
|
|
|
The default configuration will allow you to run Mempool using `bitcoind` as the backend, so address lookups will be disabled. It assumes you have added RPC credentials for the `mempool` user with a `mempool` password in your `bitcoin.conf` file:
|
|
|
|
```
|
|
rpcuser=mempool
|
|
rpcpassword=mempool
|
|
```
|
|
|
|
If you want to use your current credentials, update them in the `docker-compose.yml` file:
|
|
|
|
```
|
|
api:
|
|
environment:
|
|
MEMPOOL_BACKEND: "none"
|
|
RPC_HOST: "172.27.0.1"
|
|
RPC_PORT: "8332"
|
|
RPC_USER: "mempool"
|
|
RPC_PASS: "mempool"
|
|
```
|
|
|
|
Note: the IP in the example above refers to Docker's default gateway IP address so the container can hit the `bitcoind` instance running on the host machine. If your setup is different, update it accordingly.
|
|
|
|
You can check if the instance is running by visiting http://localhost - the graphs will be populated as new transactions are detected.
|
|
|
|
## bitcoind+romanz/electrs configuration
|
|
|
|
In order to run with `romanz/electrs` as the backend , in addition to the settings required for `bitcoind` above, you will need to make the following changes to the `docker-compose.yml` file:
|
|
|
|
- Under the `api` service, change the value of `MEMPOOL_BACKEND` key from `none` to `electrum`:
|
|
|
|
```
|
|
api:
|
|
environment:
|
|
MEMPOOL_BACKEND: "none"
|
|
```
|
|
|
|
- Under the `api` service, set the `ELECTRUM_HOST` and `ELECTRUM_PORT` keys to your Docker host ip address and set `ELECTRUM_TLS_ENABLED` to `false`:
|
|
|
|
```
|
|
api:
|
|
environment:
|
|
ELECTRUM_HOST: "172.27.0.1"
|
|
ELECTRUM_PORT: "50002"
|
|
ELECTRUM_TLS: "false"
|
|
```
|
|
|
|
You can update any of the settings in the `mempool-config.json` file using the environment variables to override. Refer to the `start.sh` script for a list of variables and their default values.
|
|
|
|
## Troubleshooting
|
|
|
|
If you already have something running on port 80, change it to something else under the `web` service section.
|
|
|
|
If you get stuck on "loading blocks", this means the websocket can't connect.
|
|
|
|
If you can't connect to the `bitcoind` RPC server, check your firewall settings and your `bitcoin.conf` file, it should contain at least these settings:
|
|
|
|
```
|
|
rpcallowip=0.0.0.0/0
|
|
rpcuser=mempool
|
|
rpcpassword=mempool
|
|
bind=0.0.0.0:8333
|
|
rpcbind=0.0.0.0:8332
|
|
```
|
|
|
|
If you can't connect to electrum/electrs, check your firewall settings and the IP you entered.
|
|
|
|
If you see a permission denied error coming from the database container, check your filesystem. The cache files generated by the backend will be stored in the `./data` directory and the database will be stored in the `./mysql/data` directory relative to the location of the `docker-compose.yml` file. If you move it somewhere, the paths will have to be updated and/or recreated.
|