diff --git a/conf/oauth2/default.json b/conf/oauth2/default.json index 1a4fb15..6aeffa1 100644 --- a/conf/oauth2/default.json +++ b/conf/oauth2/default.json @@ -1,20 +1,17 @@ { - "module": { + "web": { "issuers": ["accounts.bitdeals.org"], - "scopes": ["bitdeals"], - "client_id": "dm-bitdeals.org", - "client_secret": "", + "scopes": ["api","openid","profile","email"], + "client_id": "web-bitdeals.org", + "client_secret": "4aJEJi3dsSypeUSRCah4gIIs", "algorithm": "HS256", "auth_uri": "/oauth2/authorize", "token_uri": "/oauth2/token", "redirect_uris": [ - "http://localhost:4977/oauth2/code", - "http://localhost:4999/dashboard/", - "https://oauthdebugger.com/debug" - ], - "javascript_origins": [ - "http://localhost:4999", - "http://95.217.251.153:4999" + "http://localhost:4999/oauth2/code", + "http://localhost:4999/oauth2/callback", + "https://oauthdebugger.com/debug", + "https://auth.advancedrestclient.com/oauth-popup.html" ] } } diff --git a/conf/sites/default.json b/conf/sites/default.json index 26f624b..7f8b83e 100644 --- a/conf/sites/default.json +++ b/conf/sites/default.json @@ -1,4 +1,11 @@ { "hosts": ["localhost:4999"], - "root": "/etc/dm/www" + "root": "/var/www/web", + "oauth2": { + "identifier": "/oauth/identifier", + "secret": "/oauth/secret", + "callback": "/", + "error": "/oauth/error", + "debug": "http://localhost:3000/" + } } diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..709f56b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3" +services: + bitdeals-module: + image: bitdeals/apostol-dm + environment: + - DM_TESTNET=0 + - DM_BITCOIN= + - DM_FEE=0.1% + - | + DM_PGP_SEC= + -----BEGIN PGP PRIVATE KEY BLOCK----- + + -----END PGP PRIVATE KEY BLOCK----- + + volumes: + - dm:/etc/dm + ports: + - 4999:4999 + - 80:80 + +volumes: + dm: + diff --git a/docker/Dockerfile b/docker/Dockerfile index 1d99871..ef6c1df 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,7 +12,7 @@ FROM debian:bullseye AS updated-debian SHELL ["/bin/bash", "-exo", "pipefail", "-c"] LABEL name="BitDeals Module" -EXPOSE 4999 80 +EXPOSE 4999/tcp 80/tcp ## Debian update; install dependencies ARG DEBIAN_FRONTEND=noninteractive @@ -80,15 +80,16 @@ RUN su -l --shell /bin/bash $UNAME -c 'cd '$UHOME' ; \ ./configure ; \ cd cmake-build-release ; \ make' ; \ + git config --global --add safe.directory $UHOME/apostol-dm ;\ cd $UHOME/apostol-dm/cmake-build-release ;\ make install -## Download "build" directory from web-dm repository +## Download "build" directory from web-build repository RUN su -l --shell /bin/bash $UNAME -c 'cd '$UHOME' ; \ - mkdir web-dm ;\ - cd web-dm ;\ + mkdir web-build ;\ + cd web-build ;\ git init ;\ - git remote add -f origin https://git.bitdeals.org/private/web-dm/ ;\ + git remote add -f origin https://git.bitdeals.org/private/web-build/ ;\ echo build >> .git/info/sparse-checkout ;\ git pull origin master' @@ -104,7 +105,7 @@ COPY --from=development /usr/local/ /usr/local/ COPY --from=development /etc/dm/ /etc/dm/ COPY --from=development /usr/sbin/dm /usr/sbin/dm COPY --from=development /etc/init.d/dm /etc/init.d/dm -COPY --from=development --chown=www-data:www-data $UHOME/web-dm/build /var/www/web +COPY --from=development --chown=www-data:www-data $UHOME/web-build/build /var/www/web COPY --from=development --chown=$UNAME:$UNAME $UHOME/apostol-dm/docker/bitdeals-test.asc /etc/dm/bitdeals-test.asc #COPY --from=development --chown=$UNAME:$UNAME $UHOME/apostol-dm/docker/bitdeals.asc /etc/dm/bitdeals.asc COPY --from=development $UHOME/apostol-dm/docker/entrypoint.sh /entrypoint.sh diff --git a/docker/README.md b/docker/README.md index 76548a2..ff6520e 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,17 +1,16 @@ + + + # 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, if empty, 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:4999:4999 -p 127.0.0.1:80:80 bitdeals/apostol-dm` +On first run the initialization script will create (if it is empty), a new bitcoin and PGP keys and start the daemon. Daemon settings which may specified by an environment variables are saved to the daemon config files 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. @@ -28,8 +27,8 @@ services: - DM_BITCOIN=
- DM_FEE=<0.1%> - DM_PGP_PASSWORD= + - DM_FORWEB=http://127.0.0.1:4999 - DM_WEBAUTH=0 - - DM_LC_ALL=en_US.UTF-8 - | DM_PGP_SEC= -----BEGIN PGP PRIVATE KEY BLOCK----- @@ -39,8 +38,10 @@ services: volumes: - dm:/etc/dm ports: - - 4999:4999 + - 127.0.0.1:4999:4999 - 80:80 +volumes: + dm: ``` ## docker cli @@ -51,12 +52,11 @@ docker run -d \ -e DM_BITCOIN=
\ -e DM_FEE=0.1% \ -e DM_PGP_SEC="$(gpg2 --armor --export-secret-key Account_URL)" \ - -e DM_PGP_PASSWORD= \ -e DM_WEBAUTH=0 \ -e DM_LC_ALL=en_US.UTF-8 \ -p 127.0.0.1:4999:4999 \ -p 127.0.0.1:80:80 \ - -v ./dm/:/etc/dm \ + -v /home/dm/:/etc/dm/ \ bitdeals/apostol-dm ``` @@ -67,13 +67,14 @@ Container images are configured using parameters passed at runtime. |Parameter|Function| |:--------|:-------| |-p 80|WebUI port TCP| -|-p 4999|Module API port TCP [(API documentation)](https://bitbucket.org/bitdeals/apostol-dm)| +|-p 4999|dm API port [(API documentation)](/private/apostol-dm/src/branch/master/doc/REST-API-ru.md)| |-e DM_TESTNET=|Enable bitcoin testnet mode. Default: `0`| |-e DM_BITCOIN=|User account bitcoin address. Will be created if empty.| -|-e DM_FEE=|User fee for created deals. You MUST indicate the sign “%” for a percentage of the deal amount or FIXED value in satoshi. Default: `0.1%`| +|-e DM_FEE=|User fee for created deals. You MUST indicate the sign "%" for a percentage of the deal amount or FIXED value in satoshi. Default: `0.1%`| |-e DM_PGP_SEC=|Variable with ASCII armored PGP user secret key. Will be created if empty (with Account_URL in the key details).| |-e DM_PGP_PASSWORD=|User PGP key password.| -|-e DM_WEBAUTH=|Enable web user interface authentication.| -|-e DM_LC_ALL=|Set Deal Module locale.| -|-e DM_ACCOUNT_URL=|Set Account_URL for a new account non-interactive registration. Format: http[s]://[:]| +|-e DM_FORWEB=|dm host for dm Web app (the host should be accessable from your browser). Default: `http://127.0.0.1:4999`| +|-e DM_WEBAUTH=|Enable Web app user interface authentication. Default: `0`| +|-e DM_LC_ALL=|Set locale for dm. Default: `en_US.UTF-8`| +|-e DM_ACCOUNT_URL=|Set Account_URL for a new account registration. Format: `http[s]://[:]`| diff --git a/docker/bitdeals-test.asc b/docker/bitdeals-test.asc index 2724f6a..9e7b21b 100644 --- a/docker/bitdeals-test.asc +++ b/docker/bitdeals-test.asc @@ -1,41 +1,56 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -JpqcNKY= -=WxTf +mI0EXgvhAAEEAND2+o1erJQ0nZo3CygW5iqTG7DZHvK0jBysPAk5KEKJld5+wIxZ +zTkukczM2iJ2aprqr4+v2owQ2FNmUgFUsOA/hdLFDsNXdpdvuiwe0fTRFeV9nNOB +n6P1HowrfQLOaTScvpRy4ofe9Tp4ym/Vpm46DGgZcw1j7CFxSlITRnFrABEBAAG0 +UUJpdGNvaW5fa2V5MiAoMDJkN2Y3ZWE1YmVkZmMyMjlkNzg5ZWNkNWFhYjc2NmZj +YjllZTY5OTdhYmVmZTEzNGU3NDJiYzM5YzdkMmEyMGY2KYjOBBMBAgA4FiEELD0e +1FyzQjWnqlGAbV80KhwzZ5AFAl4L4QACGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC +F4AACgkQbV80KhwzZ5BYEQQAvJD1W9EtaSINrAE7ZLRDz0AsY/SNBeLom5715Ij/ +qp3CN4ASm8i4uBScyi6li4GXWSFQEYcyxvwljKLlAxxEdEuvggXSYq6B9aZFCtsj +fX0N4SuhCNA+IjAosMFCrgrYsPUO4TdMka0GqTk2BnGKQI7dtqnTTMHBA0q5T99L +yo+0DUJpdERlYWxzLXRlc3SIzgQTAQIAOBYhBCw9HtRcs0I1p6pRgG1fNCocM2eQ +BQJeC+EAAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEG1fNCocM2eQNE4E +ALjFrjr6IvIZ5CXQzdpYVjSnYAJuL3kbmgUFVxz4yb0fmHTtjEEDa79jQ5Q+zmca +qDEmka1dVFeaU3qY8JRbg2svqpxQMLCOMSrdO/5+rKHFfkjD/fCDtq/8Q1NCnGYb +c3Ld/vLXLL8kzyHtWVeUs4AkpXs4r4TjIYRzdvXDjwt+tFFCaXRjb2luX2tleTEg +KDAyNDUyZGRhZmNkYjkzNzkzYmI1MGE3OTdjNWQ1OGVkZjkwNzRhOWIxYTk4ZDU5 +NTFmYjZkYTg3MTk3ZDhkN2MyNCmIzgQTAQIAOBYhBCw9HtRcs0I1p6pRgG1fNCoc +M2eQBQJeC+EAAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEG1fNCocM2eQ +XawD/3EGWzl6RS9HuZmXLZ9FVu6Rm14SD8Y2Mbco2g6tO1+UMI+M1xAXMJjzEXdc +KZVx/9kcIao/e9ZG8xmHwXmezdWNMrpbYJ/waoA4NfrHMUiEVCTyJUwMOVQB3eQG +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 +=nkLW -----END PGP PUBLIC KEY BLOCK----- diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 45c5050..87013cb 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -6,18 +6,22 @@ ## And can generate a Bitcoing and PGP key filies at first start. ## -DM_TESTNET=${DM_TESTNET:-0} +## Web app requires the dmHost address should be accessable from your browser +DM_FORWEB=${DM_FORWEB:-http://127.0.0.1:4999} DM_WEBAUTH=${DM_WEBAUTH:-0} +DM_TESTNET=${DM_TESTNET:-0} ## Daemon config files -DM_CONF_FILES=$(find /etc/dm/ -type f -name "*.conf" -not -name "default.conf") +CONF_FILES=$(find /etc/dm/ -type f -name "*.conf" -not -name "default.conf") BITDEALS_PGP_FILE="/etc/dm/bitdeals.asc" BITDEALS_TEST_PGP_FILE="/etc/dm/bitdeals-test.asc" PGP_SEC_FILE="/etc/dm/pgp.sec" BX_CONF_FILE="/usr/local/etc/libbitcoin/bx.cfg" -DM_WEB_CONF_FILE="/var/www/web/config.js" +WEB_CONF_FILE="/var/www/web/config.js" +WEB_CONF_SITES="/etc/dm/sites/default.json" +WEB_CONF_OAUTH="/etc/dm/oauth2/default.json" -#tput variable for color output +#tput variable for log color output export TERM=xterm ## Write a default variables to dm config @@ -25,50 +29,58 @@ sed -i -e "/\[main\]/,/\[/ s/.*user=.*/user=$UNAME/" \ -e "/\[main\]/,/\[/ s/.*group=.*/group=$UNAME/" \ -e "/\[daemon\]/,/\[/ s/.*daemon=.*/daemon=false/" \ -e "/\[server\]/,/\[/ s/.*listen=.*/listen=0.0.0.0/" \ - -e "/\[server\]/,/\[/ s/.*port=.*/port=4999/" $DM_CONF_FILES + -e "/\[server\]/,/\[/ s/.*port=.*/port=4999/" $CONF_FILES ## Change dm Website config -sed -i 's/dmHost:.*/dmHost: "http:\/\/0.0.0.0:4999",/' $DM_WEB_CONF_FILE +sed -i "s|dmHost:.*|dmHost: \"$DM_FORWEB\",|" $WEB_CONF_FILE if [ "$DM_WEBAUTH" = 1 -o "$DM_WEBAUTH" = true ]; then - sed -i 's/confAuthorize:.*/confAuthorize: true,/' $DM_WEB_CONF_FILE + sed -i 's/confAuthorize:.*/confAuthorize: true,/' $WEB_CONF_FILE else - sed -i 's/confAuthorize:.*/confAuthorize: false,/' $DM_WEB_CONF_FILE + sed -i 's/confAuthorize:.*/confAuthorize: false,/' $WEB_CONF_FILE fi if [ "$DM_LC_ALL" = "ru_RU.UTF-8" ]; then - sed -i 's/defaultLanguage:.*/defaultLanguage: "ru",/' $DM_WEB_CONF_FILE + sed -i 's/defaultLanguage:.*/defaultLanguage: "ru",/' $WEB_CONF_FILE else - sed -i 's/defaultLanguage:.*/defaultLanguage: "en",/' $DM_WEB_CONF_FILE + sed -i 's/defaultLanguage:.*/defaultLanguage: "en",/' $WEB_CONF_FILE fi [ "$DM_LC_ALL" ] && \ export LC_ALL="$DM_LC_ALL" +## Add DM_FORWEB to dm oauth config +if ! grep -q "$DM_FORWEB" $WEB_CONF_SITES; then + sed -i "/\"hosts\":/ s|]|, \"$(basename $DM_FORWEB)\"]|" $WEB_CONF_SITES + sed -i -e "/\"redirect_uris\":/ s|$|\n\t\"$DM_FORWEB/oauth2/callback\",|" \ + -e "/\"redirect_uris\":/ s|$|\n\t\"$DM_FORWEB/oauth2/code\",|" $WEB_CONF_OAUTH +fi + + ## Write the PGP keys locations to dm config -sed -i "/\[pgp\]/,/\[/ s%^private=.*%private=$PGP_SEC_FILE%" $DM_CONF_FILES +sed -i "/\[pgp\]/,/\[/ s%^private=.*%private=$PGP_SEC_FILE%" $CONF_FILES if [ "$DM_TESTNET" = 1 -o "$DM_TESTNET" = true ]; then - sed -i "/\[pgp\]/,/\[/ s%^public=.*%public=$BITDEALS_TEST_PGP_FILE%" $DM_CONF_FILES + sed -i "/\[pgp\]/,/\[/ s%^public=.*%public=$BITDEALS_TEST_PGP_FILE%" $CONF_FILES else - sed -i "/\[pgp\]/,/\[/ s%^public=.*%public=$BITDEALS_PGP_FILE%" $DM_CONF_FILES + sed -i "/\[pgp\]/,/\[/ s%^public=.*%public=$BITDEALS_PGP_FILE%" $CONF_FILES fi ## Write a user variables to the daemon config files. if [ "$DM_BITCOIN" ]; then - sed -i "/\[module\]/,/\[/ s/^address=.*/address=$DM_BITCOIN/" $DM_CONF_FILES + sed -i "/\[module\]/,/\[/ s/^address=.*/address=$DM_BITCOIN/" $CONF_FILES fi if [ "$DM_FEE" ]; then - sed -i "/\[module\]/,/\[/ s/^#\?fee=.*/fee=$DM_FEE/" $DM_CONF_FILES + sed -i "/\[module\]/,/\[/ s/^#\?fee=.*/fee=$DM_FEE/" $CONF_FILES fi if [ "$DM_PGP_PASSWORD" ] ; then - #escaping the '/' in password line + #escaping the '/' in password line for use it in `sed` DM_PGP_PASSWORD="$(echo $DM_PGP_PASSWORD | sed 's/\//\\\//g')" - sed -i "/\[pgp\]/,/\[/ s/^passphrase=.*/passphrase=$DM_PASSWORD/" $DM_CONF_FILES + sed -i "/\[pgp\]/,/\[/ s/^passphrase=.*/passphrase=$DM_PGP_PASSWORD/" $CONF_FILES fi if [ "$DM_TESTNET" = 1 -o "$DM_TESTNET" = true ]; then - sed -i "/\[main\]/,/\[/ s/.*testnet=.*/testnet=true/" $DM_CONF_FILES + sed -i "/\[main\]/,/\[/ s/.*testnet=.*/testnet=true/" $CONF_FILES else - sed -i "/\[main\]/,/\[/ s/.*testnet=.*/testnet=false/" $DM_CONF_FILES + sed -i "/\[main\]/,/\[/ s/.*testnet=.*/testnet=false/" $CONF_FILES fi if [ "$DM_BITDEALS_PGP" ]; then echo "$BITDEALS_PGP" > "$BITDEALS_PGP_FILE" @@ -90,7 +102,7 @@ then #GNUPGHOME="$(mktemp -d)" ;# works for gpg2 gpg --faked-system-time $(TZ=UTC date --date=$(date +'%Y-%m-%d') +%s) \ --pinentry-mode loopback --passphrase "$DM_PGP_PASSWORD" \ - --batch --gen-key 2>/dev/null <<-EOF + --openpgp --batch --gen-key 2>/dev/null <<-EOF Key-Type: RSA Key-Usage: cert,sign Key-Length: 1024 @@ -120,7 +132,7 @@ if [ -f "$PGP_SEC_FILE" ]; then chmod 600 "$PGP_SEC_FILE" fi -## Setup testnet settings in libbitcoin-explorer config +## Setup testnet settings in libbitcoin-explorer config for new user bitcoin address generation [ "$DM_TESTNET" = 1 -o "$DM_TESTNET" = true ] && \ sed -i -e "/\[wallet\]/,/\[/ s/wif_version? =.*/wif_version = 239/" \ -e "/\[wallet\]/,/\[/ s/hd_public_version =.*/hd_public_version = 70617039/" \ @@ -137,8 +149,8 @@ fi -e "/#block_url = tcp:\/\/testnet.libbitcoin.net:19093/ s/^#//" \ -e "/#transaction_url = tcp:\/\/testnet.libbitcoin.net:19094/ s/^#//" "$BX_CONF_FILE" -## Create new Bitcoin keys. If user address is empty. -_DM_BITCOIN="$(sed -n '/^[ \t]*\[module\]/,/\[/s/^[ \t]*address[ \t]*=[ \t]*//p' $DM_CONF_FILES)" +## Create new Bitcoin keys. If user address (_DM_BITCOIN var) is empty. +_DM_BITCOIN="$(sed -n '/^[ \t]*\[module\]/,/\[/s/^[ \t]*address[ \t]*=[ \t]*//p' $CONF_FILES)" if [ -z "$_DM_BITCOIN" ] then @@ -152,16 +164,16 @@ then PRIVKEYWIF="$(bx ec-to-wif $PRIVKEY)" ## Write the bitcoin address to the daemon config - sed -i "/\[module\]/,/\[/ s/^address=.*/address=$BITCOIN/" $DM_CONF_FILES + sed -i "/\[module\]/,/\[/ s/^address=.*/address=$BITCOIN/" $CONF_FILES ## Show bitcoin key cat <<-EOF - Please backup this BITCOIN KEY:" - Private key (raw form): $PRIVKEY" - Private key (WIF form): ${B}$PRIVKEYWIF${N}" - Public key: $PUBKEY" - Bitcoin address: $BITCOIN\n" + Please backup this BITCOIN KEY: + Private key (raw form): $PRIVKEY + Private key (WIF form): ${B}$PRIVKEYWIF${N} + Public key: $PUBKEY + Bitcoin address: $BITCOIN EOF else diff --git a/docker/nginx.conf b/docker/nginx.conf index 473e10e..06678f7 100644 --- a/docker/nginx.conf +++ b/docker/nginx.conf @@ -12,6 +12,17 @@ server { root /var/www/web; index index.html; try_files $uri $uri/ /index.html; + +# location ^~ /api/ { +# proxy_pass http://127.0.0.1:4999; +# proxy_http_version 1.1; +# proxy_set_header Host $host; +# proxy_set_header Connection "close"; +# proxy_set_header X-Forwarded-Proto $scheme; +# proxy_set_header X-Real-IP $remote_addr; +# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +# } + } } diff --git a/docker/screenshots/Account_details.png b/docker/screenshots/Account_details.png new file mode 100644 index 0000000..58d86d1 Binary files /dev/null and b/docker/screenshots/Account_details.png differ diff --git a/docker/screenshots/Authorization.png b/docker/screenshots/Authorization.png new file mode 100644 index 0000000..85dbb9c Binary files /dev/null and b/docker/screenshots/Authorization.png differ diff --git a/docker/screenshots/Create_deal.png b/docker/screenshots/Create_deal.png new file mode 100644 index 0000000..1a1d1a0 Binary files /dev/null and b/docker/screenshots/Create_deal.png differ diff --git a/docker/screenshots/Deal_information.png b/docker/screenshots/Deal_information.png new file mode 100644 index 0000000..b3bca3e Binary files /dev/null and b/docker/screenshots/Deal_information.png differ