Bisq on Docker

Bisq on Docker

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.

Get it on Google Play   Get it on the App Store

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.

 

Average Rating
4.3 out of 5 stars. 6 votes.
My Rating:

7 thoughts on “Bisq on Docker

  1. Wox

    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

    1. flo Post author

      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.

  2. Michael

    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)

    1. flo Post author

      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.

Leave a Reply

Your email address will not be published. Required fields are marked *

css.php