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
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.
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.
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.
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.
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
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
$ 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
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
Bisq on Docker is based on the awesome work of rattydave. Thank you!
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.