About Bisq
Bisq is an open-source peer-to-peer application that allows anyone to buy and sell Bitcoin in exchange for national currencies or alternative cryptocurrencies.
Bitcoin: Be your Bank
Bisq: Be your own Exchange
Unlike existing exchanges, Bisq is fully decentralized and censorship-resistant using alternative protection mechanisms:
- escrow transaction employing 2-of-3 multi-signature address
- security deposits to incentivize following the trade protocol
- a decentralized arbitration system helps resolve disputes
Bisq protects the user’s privacy by using a custom P2P network over Tor, in which every user is a participating node. An all-in-one desktop application (for Linux, OS X, and Windows) provides an intuitive user interface and executes the trading protocol.
About Bisq on Docker
Challenge
Centralized cryptocurrency exchanges allow users to place orders at order books that are available for trade until a matching trade deal occurs or the order times out.
Due to the nature of a decentralized peer-to-peer application, Bisq exchange order books only contain open orders of running Bisq desktop applications.
Therefore you have to run the Bisq desktop application 24/7 to keep open orders online on the Bisq market until they match a deal.
For the sake of energy efficiency and given the fact that the majority of users use mobile devices to access the Internet, it’s unpleasant having to run the Bisq desktop application on personal mobile equipment.
Solution
Bisq on Docker allows you to securely host your personal Bisq exchange 24/7 on any server device, like:
- Network Attached Storage (NAS) devices supporting Docker
- Virtualized Private Server (VPS) supporting Docker compatible OCI containers
- Any other OS supporting Docker compatible OCI containers, like Linux, OS X, and Windows
This Docker image provides Ubuntu Desktop Linux running MATE with pre-installed Bisq Software.
Bisq on Docker can be accessed securely using a Remote Desktop (RDP) application.
Requirement
Bisq on Docker needs at least 2GB of free RAM and 4GB of free disk space.
It’s required to forward a TCP port to the Bisq on Docker TCP port 3389 for remote access using RDP.
Warning
The Bisq desktop application contains a Bitcoin and DAO wallet.
It is highly recommended to set up dedicated storage for the Bisq on Docker application data with regular backups in place.
Always backup your Bisq application wallets and private keys. Otherwise, your funds are lost if you accidentally delete your Docker container and/or data volume containing this information.
Quickstart
Use the following command sets up a Bisq on Docker application container storing Bisq desktop application data using the Docker volume bisq-on-docker-data:
$ docker run -d --rm --name bisq-on-docker \
-p 3389:3389 -v bisq-on-docker-data:/bisq fflo/bisq-on-docker
On the first startup, the default user account bisq with a random password will be auto-generated. This auto-generated password can be extracted from the container log using:
$ docker logs bisq-on-docker
If you like you can manually provide the default username and password using the following environment variables on the first startup:
$ docker run -d --rm --name bisq-on-docker \
-p 3389:3389 -v bisq-on-docker-data:/bisq \
-e BISQ_USER=bisq \
-e BISQ_PASSWORD=bisqTRADER \
fflo/bisq-on-docker
Recommendation
For usage of Bisq on Docker, it is recommended to set up mobile notifications.
Use Bisq Mobile Notifications to stay up-to-date on your trades and receive notifications on your mobile phone.
Usage in detail
To start a Bisq on Docker instance running the latest version:
$ docker run fflo/bisq-on-docker
Bisq on Docker provides different tags so that you can specify the exact version you wish to run. For example, to selectively run version 1.2.4
:
$ docker run fflo/bisq-on-docker:1.2.4
To run a Bisq on Docker container in the background, pass the -d
option to docker run
, and give your container a name for easy reference later:
$ docker run -d --name bisq-on-docker fflo/bisq-on-docker
For remote access using the remote desktop protocol (RDP), it is required to expose the container TCP port 3389:
$ docker run -d --name bisq-on-docker \
-p 3389:3389 fflo/bisq-on-docker
Bisq on Docker can be configured using the following environment variables:
- BISQ_USER to setup a bisq user (default: bisq)
- BISQ_PASSWORD to configure a password (default: random auto-generated, pushed to container log)
- TZ to adapt the timezone (default: UTC)
Example command to run Bisq on Docker with individual startup settings, a Docker data container with the name bisq-on-docker-data
and with the Docker setting to auto-remove the container image of bisq-on-docker
on stop signal:
$ docker run -d --rm --name bisq-on-docker \
-p 3389:3389 \
-v bisq-on-docker-data:/bisq \
-e BISQ_USER=bisq
-e BISQ_PASSWORD=bisqTRADER \
-e TZ=UTC \
fflo/bisq-on-docker
It is also possible to set up multiple user accounts providing a file /root/createusers.txt
using the following syntax:
## USERNAME:PASSWORD:SUDO ##
adminuser:adminpassword:Y
bisquser01:bisqpassword01:N
bisquser02:bisqpassword02:N
Once you have a Bisq on Docker service running in the background, you can show running containers:
$ docker ps
Or view the logs of a service:
$ docker logs -f bisq-on-docker
To stop and restart a running container:
$ docker stop bisq-on-docker
$ docker start bisq-on-docker
Data Volumes
By default, Docker will create ephemeral containers. That is, the Bisq on Docker data will not be persisted, and you will need to sync and set up everything from scratch each time you launch a container.
To keep your Bisq on Docker desktop application data between container restarts or upgrades, simply add the -v
option to create a data volume:
$ docker run -d --rm --name bisq-on-docker \
-v bisq-on-docker-data:/bisq fflo/bisq-on-docker
$ docker ps
$ docker inspect bisq-on-docker-data
Alternatively, you can map the data volume to a location on your host:
$ docker run -d --rm --name bisq-on-docker -v "$PWD/bisq:/bisq" fflo/bisq-on-docker
$ ls -alh ./bisq
Screenshots
Honors
Bisq on Docker is based on the awesome work of rattydave. Thank you!
License
Bisq is licensed under the GNU Affero General Public License v3.0.
Ubuntu Linux is a collection of thousands of computer programs and documents created by a range of individuals, teams, and companies. Each of these programs may come under a different license. More information about the Ubuntu Licensing Policy can be found here.
Neutrinolabs/xrdp is licensed under the Apache License 2.0.
Configuration files and code in this repository are distributed under the MIT license.
Awesome! Thank you.
Hello,
thx for the great work! I have it download over the Docker from a synology NAS. But i don’t know what i have to enter by the Mount Pass?
I have a Folder-Path to enter and i have a Mount-Path to enter?
Sincerely
Hi Wox,
thanks for your awesome feedback:
It is necessary that you mount a persistent storage into the bisq-on-docker container to save your wallet and other persistent trade information.
I guess on synology your Folder-Path is the local share path on your NAS and the Mount-Path should be “/bisq”.
You can share a screenshot if unsure if it does not violate your privacy.
Configured correctly the wallet and configuration data of Bisq-on-Docker should survive a container upgrade or re-creation.
Take care to secure the Folder-Path permission(s) because your private wallet data will be stored on this path.
Thank you for this great solution. Are you still maintaining it with updates?
Yes, update is coming within the next days.
Hi, thanks for creating this container. Set it up on my NAS, and it seems to run properly. But how can I access ist? Tried in browser but only got empty page (Some strange characters on the top left of the page only)
To be able to connect to the Bisq on Docker container, you need to expose the RDP service port, which defaults to TCP 3389.
After that you can connect to Bisq on Docker using a Remote Desktop client.
Hint: Recently Microsoft has renamed it’s Microsoft Remote Desktop client to Windows App, which might be confusing.