init
commit
f7ca739dc3
@ -0,0 +1,2 @@
|
|||||||
|
data
|
||||||
|
.env
|
@ -0,0 +1,7 @@
|
|||||||
|
FROM lalanza808/wownero:v0.11.3.0
|
||||||
|
|
||||||
|
RUN apt update && apt install curl -y
|
||||||
|
|
||||||
|
WORKDIR /data
|
||||||
|
|
||||||
|
COPY run_wallet.sh /run_wallet.sh
|
@ -0,0 +1,139 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
btcpayserver:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: ${BTCPAY_IMAGE:-btcpayserver/btcpayserver:1.13.7-altcoins}
|
||||||
|
container_name: btcpayserver
|
||||||
|
expose:
|
||||||
|
- "49392"
|
||||||
|
environment:
|
||||||
|
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=btcpayserver;Database=btcpayserver${NBITCOIN_NETWORK:-mainnet}
|
||||||
|
BTCPAY_EXPLORERPOSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=btcpayserver;MaxPoolSize=80;Database=nbxplorer${NBITCOIN_NETWORK:-mainnet}
|
||||||
|
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-mainnet}
|
||||||
|
BTCPAY_BIND: 0.0.0.0:49392
|
||||||
|
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
|
||||||
|
BTCPAY_SSHCONNECTION: "root@host.docker.internal"
|
||||||
|
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
|
||||||
|
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
|
||||||
|
BTCPAY_SSHAUTHORIZEDKEYS: ${BTCPAY_SSHAUTHORIZEDKEYS}
|
||||||
|
BTCPAY_DEBUGLOG: btcpay.log
|
||||||
|
BTCPAY_UPDATEURL: https://api.github.com/repos/btcpayserver/btcpayserver/releases/latest
|
||||||
|
BTCPAY_DOCKERDEPLOYMENT: "true"
|
||||||
|
BTCPAY_CHAINS: "xmr"
|
||||||
|
BTCPAY_XMR_DAEMON_URI: http://wownerod:34568
|
||||||
|
BTCPAY_XMR_WALLET_DAEMON_URI: http://wownerod_wallet:8000
|
||||||
|
BTCPAY_XMR_WALLET_DAEMON_WALLETDIR: /root/xmr_wallet
|
||||||
|
HIDDENSERVICE_NAME: BTCPayServer
|
||||||
|
HIDDENSERVICE_REVERSEPROXY: nginx
|
||||||
|
BTCPAY_TORRCFILE: /usr/local/etc/tor/torrc-2
|
||||||
|
BTCPAY_SOCKSENDPOINT: tor:9050
|
||||||
|
labels:
|
||||||
|
traefik.enable: "false"
|
||||||
|
traefik.http.routers.btcpayserver.rule: Host(`${BTCPAY_HOST}`)
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:49392:49392
|
||||||
|
links:
|
||||||
|
- postgres
|
||||||
|
volumes:
|
||||||
|
- "btcpay_datadir:/datadir"
|
||||||
|
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||||
|
- "btcpay_pluginsdir:/root/.btcpayserver/Plugins"
|
||||||
|
- "./data:/root/xmr_wallet"
|
||||||
|
- "tor_servicesdir:/var/lib/tor/hidden_services"
|
||||||
|
- "tor_torrcdir:/usr/local/etc/tor/"
|
||||||
|
|
||||||
|
wownerod:
|
||||||
|
restart: unless-stopped
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
container_name: btcpayserver_wownerod
|
||||||
|
entrypoint: wownerod --rpc-bind-ip=0.0.0.0 --confirm-external-bind --rpc-bind-port=34568 --non-interactive --block-notify="/usr/bin/curl -X GET http://btcpayserver:49392/monerolikedaemoncallback/block?cryptoCode=wow&hash=%s" --hide-my-port --enable-dns-blocklist
|
||||||
|
expose:
|
||||||
|
- "34568"
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH:-./data}:/root/.wownero"
|
||||||
|
|
||||||
|
wownerod_wallet:
|
||||||
|
restart: unless-stopped
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
container_name: btcpayserver_wownero_wallet
|
||||||
|
command:
|
||||||
|
bash /run_wallet.sh "${WALLET_PASS:-walletpass}" "http://wownerod:34568"
|
||||||
|
expose:
|
||||||
|
- "34568"
|
||||||
|
volumes:
|
||||||
|
- "./data:/data"
|
||||||
|
depends_on:
|
||||||
|
- wownerod
|
||||||
|
|
||||||
|
nbxplorer:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: nicolasdorier/nbxplorer:2.5.14
|
||||||
|
container_name: btcpayserver_nbxplorer
|
||||||
|
expose:
|
||||||
|
- "32838"
|
||||||
|
environment:
|
||||||
|
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-mainnet}
|
||||||
|
NBXPLORER_BIND: 0.0.0.0:32838
|
||||||
|
NBXPLORER_TRIMEVENTS: 10000
|
||||||
|
NBXPLORER_SIGNALFILESDIR: /datadir
|
||||||
|
NBXPLORER_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer${NBITCOIN_NETWORK:-mainnet}
|
||||||
|
links:
|
||||||
|
- postgres
|
||||||
|
volumes:
|
||||||
|
- "nbxplorer_datadir:/datadir"
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: btcpayserver/postgres:13.13
|
||||||
|
container_name: btcpayserver_postgres
|
||||||
|
shm_size: 256mb
|
||||||
|
command: ["-c", "random_page_cost=1.0", "-c", "shared_preload_libraries=pg_stat_statements"]
|
||||||
|
environment:
|
||||||
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
volumes:
|
||||||
|
- "postgres_datadir:/var/lib/postgresql/data"
|
||||||
|
|
||||||
|
tor:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: btcpayserver/tor:0.4.8.10
|
||||||
|
container_name: btcpayserver_tor
|
||||||
|
environment:
|
||||||
|
TOR_PASSWORD: btcpayserver
|
||||||
|
TOR_ADDITIONAL_CONFIG: /usr/local/etc/tor/torrc-2
|
||||||
|
TOR_EXTRA_ARGS: |
|
||||||
|
CookieAuthentication 1
|
||||||
|
expose:
|
||||||
|
- "9050"
|
||||||
|
- "9051"
|
||||||
|
volumes:
|
||||||
|
- "tor_datadir:/home/tor/.tor"
|
||||||
|
- "tor_torrcdir:/usr/local/etc/tor"
|
||||||
|
- "tor_servicesdir:/var/lib/tor/hidden_services"
|
||||||
|
|
||||||
|
tor-gen:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: btcpayserver/docker-gen:0.10.7
|
||||||
|
container_name: btcpayserver_tor-gen
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/tmp/docker.sock:ro"
|
||||||
|
- "./torrc.tmpl:/etc/docker-gen/templates/torrc.tmpl:ro"
|
||||||
|
- "tor_torrcdir:/usr/local/etc/tor"
|
||||||
|
entrypoint: /usr/local/bin/docker-gen -notify-sighup tor -watch -wait 5s:30s /etc/docker-gen/templates/torrc.tmpl /usr/local/etc/tor/torrc-2
|
||||||
|
links:
|
||||||
|
- tor
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
btcpay_datadir:
|
||||||
|
btcpay_pluginsdir:
|
||||||
|
xmr_wallet:
|
||||||
|
xmr_data:
|
||||||
|
nbxplorer_datadir:
|
||||||
|
postgres_datadir:
|
||||||
|
tor_datadir:
|
||||||
|
tor_torrcdir:
|
||||||
|
tor_servicesdir:
|
||||||
|
|
||||||
|
networks: {}
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export WALLET_CREDS="${1}"
|
||||||
|
export DAEMON_URI="${2}"
|
||||||
|
export WALLET_FILE="/data/wallet"
|
||||||
|
export PASSWORD_FILE="/data/password"
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
env
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Create new wallet if it doesn't exist
|
||||||
|
if [[ ! -f ${WALLET_FILE} ]]; then
|
||||||
|
echo $WALLET_CREDS > ${PASSWORD_FILE}
|
||||||
|
wownero-wallet-cli \
|
||||||
|
--password "${WALLET_CREDS}" \
|
||||||
|
--generate-new-wallet ${WALLET_FILE} \
|
||||||
|
--daemon-address ${DAEMON_URI} \
|
||||||
|
--password-file ${PASSWORD_FILE} \
|
||||||
|
--trusted-daemon \
|
||||||
|
--use-english-language-names \
|
||||||
|
--mnemonic-language English \
|
||||||
|
--command status
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run RPC wallet
|
||||||
|
wownero-wallet-rpc \
|
||||||
|
--daemon-address ${DAEMON_URI} \
|
||||||
|
--wallet-file ${WALLET_FILE} \
|
||||||
|
--password-file ${PASSWORD_FILE} \
|
||||||
|
--rpc-bind-port 8000 \
|
||||||
|
--rpc-bind-ip 0.0.0.0 \
|
||||||
|
--disable-rpc-login \
|
||||||
|
--confirm-external-bind \
|
||||||
|
--log-file ${WALLET_FILE}.rpc.log \
|
||||||
|
--log-level 0 \
|
||||||
|
--non-interactive \
|
||||||
|
--trusted-daemon \
|
||||||
|
--tx-notify="/usr/bin/curl -X GET http://btcpayserver:49392/monerolikedaemoncallback/tx?cryptoCode=xmr&hash=%s"
|
@ -0,0 +1,34 @@
|
|||||||
|
{{ $CurrentContainer := where $ "ID" .Docker.CurrentContainerID | first }}
|
||||||
|
|
||||||
|
{{ range $name, $containers := groupByMulti $ "Env.HIDDENSERVICE_NAME" "," }}
|
||||||
|
{{ $firstServicePort := true }}
|
||||||
|
{{ range $container := $containers }}
|
||||||
|
{{ range $knownNetwork := $CurrentContainer.Networks }}
|
||||||
|
{{ range $containerNetwork := $container.Networks }}
|
||||||
|
{{ if eq $knownNetwork.Name $containerNetwork.Name }}
|
||||||
|
{{ $containerOrReverseProxyName := coalesce $container.Env.HIDDENSERVICE_REVERSEPROXY $container.Name }}
|
||||||
|
|
||||||
|
{{ range $reverseProxyContainer := where $ "Name" $containerOrReverseProxyName }}
|
||||||
|
{{ range $containerNetwork := where $reverseProxyContainer.Networks "Name" $knownNetwork.Name }}
|
||||||
|
{{ $port := coalesceempty (index $container.Env (print $name "_HIDDENSERVICE_PORT")) $container.Env.HIDDENSERVICE_PORT "80" }}
|
||||||
|
{{ $virtualPort := coalesceempty (index $container.Env (print $name "_HIDDENSERVICE_VIRTUAL_PORT")) $container.Env.HIDDENSERVICE_VIRTUAL_PORT $port }}
|
||||||
|
{{ if ne $containerNetwork.IP "" }}
|
||||||
|
{{ if $firstServicePort }}
|
||||||
|
# For the hidden service {{ $name }}
|
||||||
|
HiddenServiceDir /var/lib/tor/hidden_services/{{ $name }}
|
||||||
|
{{ $firstServicePort := false }}
|
||||||
|
{{ end }}
|
||||||
|
# Redirecting to {{ $containerOrReverseProxyName }}
|
||||||
|
HiddenServicePort {{ $virtualPort }} {{ $containerNetwork.IP }}:{{ $port }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $.Env.ADDITIONAL_TORRC_CONFIG }}
|
||||||
|
{{ $.Env.ADDITIONAL_TORRC_CONFIG}}
|
||||||
|
{{ end }}
|
Loading…
Reference in New Issue