# Intro

Deal Module (dm) - the BitDeals daemon that provides a special interfaces for creating and modifying user accounts and deals.

# Running DM docker container

On first run the initialization script will create and save a new bitcoin and PGP keys and start the daemon.

`docker run -i -t --rm --mount src=bitdeals-conf,dest=/etc/dm -p 127.0.0.1:4977:4977 -p 127.0.0.1:80:80 bitdeals/dm`

Daemon settings which may specified by an environment variables are saved to the daemon config file on the Docker Volume.

To use the BitDeals API you should register an user account on a BitDeals site and get a "client_id", "client_secret" at the account dashboard.

# Usage

Here are some example snippets to help you get started creating a container.

## docker-compose [(recommended, click here for more info)](https://docs.linuxserver.io/general/docker-compose)

```yaml
version: "3"
services:
  bitdeals-module:
    image: bitdeals/apostol-dm
    container_name: bitdeals-dm
    environment:
      - TESTNET=1 #optional
      - BITCOIN=<address> #optional
      - FEE=<0.1%> #optional
      - PGP_PUB=<key> #optional
      - PGP_SEC=<key> #optional
      - PASSWORD=<password> #optional
      - ACCOUNT_URL=<http[s]://example.com> #optional
      - CLIENT_ID=<id> #optional
      - CLIENT_SECRET=<id> #optional
    volumes:
      - bitdeals-conf:/etc/dm
    ports:
      - 4977:4977
      - 80:80
    restart: unless-stopped
```

## docker cli [(click here for more info)](https://docs.docker.com/engine/reference/commandline/cli/)

```sh
docker run -d \
  --name=bitdeals-dm \
  -e TESTNET=1 `#optional` \
  -e BITCOIN=<address> `#optional` \
  -e FEE=<0.1%> `#optional` \
  -e PGP_PUB=$(gpg2 --armor --export Account_URL) `#optional` \
  -e PGP_SEC=$(gpg2 --armor --export-secret-key Account_URL) `#optional` \
  -e PASSWORD=<pgp key password> `#optional` \
  -e ACCOUNT_URL=<http[s]://example.com> `#optional` \
  -e CLIENT_ID=<user-id> `#optional` \
  -e CLIENT_SECRET=<secret> `#optional` \
  -p 127.0.0.1:4977:4977 \
  -p 127.0.0.1:80:80 \
  -v bitdeals-conf:/etc/dm \
  bitdeals/apostol-dm
```

# Parameters

Container images are configured using parameters passed at runtime.

|Parameter|Function|
|:--------|:-------|
|-p 80|WebUI port TCP|
|-p 4977|Module API port TCP [(API documentation)](https://bitbucket.org/bitdeals/apostol-dm)|
|-e ACCOUNT_URL=|User site address to provide a deal service. On first run the initialization script will create and save a new PGP keys with this Account_URL in key details.|
|-e TESTNET=|Enable bitcoin testnet mode.|
|-e BITCOIN=|User account bitcoin address.|
|-e FEE=|User fee for created deals.|
|-e PGP_PUB=|Variable with ASCII armored PGP public key.|
|-e PGP_SEC=|Variable with ASCII armored PGP secret key.|
|-e PASSWORD=|User PGP key password.|
|-e CLIENT_ID=|API access credentials (get it on a BitDeals site at User dashboard).|
|-e CLIENT_SECRET=|API access credentials (get it on a BitDeals site at User dashboard).|

