Unofficial bitcoin core wallet GUI docker image to be run standalone or inside a browser window using Xpra. The project is now maintained by Christopher Law and published through GitHub Container Registry as ghcr.io/gentoorax/docker-bitcoin-wallet.
Having the wallet available as docker container has some advantages like:
- Run the wallet GUI on a remote server inside a web browser window.
- Run the wallet GUI locally without installing package dependencies.
- Easier updating when new versions are available.
- Run only the daemon on a remote server, and avoid the long blockchain sync waits each time the blockchain daemon is started in your laptop.
Prebuilt images are pushed to GitHub Container Registry. The current branch update targets Bitcoin Core 31.0 and uses the image tag:
ghcr.io/gentoorax/docker-bitcoin-wallet:2.0.13-alpha-a973523
Pull the latest image (or the dev variant) with:
docker compose pull
docker compose -f docker-compose-dev.yml pullIf you need to build the image locally (for testing changes, for example), use Docker Compose with the development file:
cd docker-bitcoin-wallet
docker compose -f docker-compose-dev.yml build
The wallet can be run in two ways:
- As a standalone X11 application
- Inside a web browser window using Xpra.
The docker-compose file mounts your X11 session's socket (/tmp/.X11-unix) so the container can connect back to your X server. To start the wallet with docker compose:
XPRA_PASSWORD=replace-me docker compose -p bitcoin-wallet up
To start the wallet in production mode the the -d parameter to the previous
command:
XPRA_PASSWORD=replace-me docker compose -p bitcoin-wallet up -d
You can see the container logs with this command:
docker compose -p bitcoin-wallet logs -f
After the container finish starting up the wallet will show up in your screen.
This is useful to run the wallet (and leave it running if you want) on a remote server and avoid wasting huge amounts of space locally holding the blockchain copy. I run it on a Synology NAS, which compared to my laptop it has tons of spare space and is always on and connected to the Internet.
To run the wallet inside a web browser you need to define the environment variable ENABLE_WEB_VIEW=yes. Set a non-default XPRA_PASSWORD before exposing the session, then start the wallet with docker compose as before:
XPRA_PASSWORD=replace-me docker compose -p bitcoin-wallet up
After some minutes the wallet will be available in http://[host]:10000, were host is the server name or IP address of the server running the wallet container.

You can change the port using the environment variable WEB_VIEW_PORT.
Note: Firefox is recommended, I have had issues with chrome when repainting the browser screen.
To enable debug output, set the environment variable DEBUG=yes.