Compare commits

..

1 Commits

Author SHA1 Message Date
Andrew Camilleri
c068f89313
Allow NBX to provide rpc proxy
This allows btcpay to use the node rpc directly instead of needing direct rpc access. Should not be any security implications since nbx is still an internal service.
2023-01-09 09:26:32 +01:00
130 changed files with 1703 additions and 2992 deletions

View File

@ -3,7 +3,7 @@ jobs:
cansetup:
machine:
enabled: true
image: ubuntu-2204:current
image: ubuntu-2004:202101-01
steps:
- checkout
- run:
@ -12,19 +12,59 @@ jobs:
sudo ./test-install.sh
# Define in CircleCi Project Variables: $DOCKERHUB_REPO, $DOCKERHUB_USER, $DOCKERHUB_PASS
# Publish jobs require those variables
docker:
docker:
- image: cimg/base:stable
amd64:
machine:
enabled: true
steps:
- setup_remote_docker
- checkout
- checkout
- run:
command: |
cd docker-compose-generator
docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
docker buildx create --use
DOCKER_BUILDX_OPTS="--platform linux/amd64,linux/arm64,linux/arm/v7 --push"
docker buildx build $DOCKER_BUILDX_OPTS -t $DOCKERHUB_REPO:latest .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $DOCKERHUB_REPO:latest-amd64 -f linuxamd64.Dockerfile .
sudo docker push $DOCKERHUB_REPO:latest-amd64
arm32v7:
machine:
enabled: true
steps:
- checkout
- run:
command: |
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
#
cd docker-compose-generator
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $DOCKERHUB_REPO:latest-arm32v7 -f linuxarm32v7.Dockerfile .
sudo docker push $DOCKERHUB_REPO:latest-arm32v7
arm64v8:
machine:
enabled: true
steps:
- checkout
- run:
command: |
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
#
cd docker-compose-generator
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $DOCKERHUB_REPO:latest-arm64v8 -f linuxarm64v8.Dockerfile .
sudo docker push $DOCKERHUB_REPO:latest-arm64v8
multiarch:
machine:
enabled: true
image: ubuntu-2004:202201-02
steps:
- run:
command: |
#
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
#
sudo docker manifest create --amend $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-amd64 $DOCKERHUB_REPO:latest-arm32v7 $DOCKERHUB_REPO:latest-arm64v8
sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-amd64 --os linux --arch amd64
sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-arm32v7 --os linux --arch arm --variant v7
sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-arm64v8 --os linux --arch arm64 --variant v8
sudo docker manifest push $DOCKERHUB_REPO:latest -p
workflows:
version: 2
@ -34,7 +74,23 @@ workflows:
filters:
branches:
only: master
- docker:
- amd64:
filters:
branches:
only: dcg-latest
- arm32v7:
filters:
branches:
only: dcg-latest
- arm64v8:
filters:
branches:
only: dcg-latest
- multiarch:
requires:
- amd64
- arm32v7
- arm64v8
filters:
branches:
only: dcg-latest

View File

@ -1,2 +0,0 @@
rpcpassword=none
rpcbind=zebra

View File

@ -18,7 +18,6 @@ The relevant environment variables are:
* `NBITCOIN_NETWORK`: The blockchain identifier used by NBitcoin (eg., `regtest`, `testnet`, `mainnet`)
* `BTCPAY_HOST`: The external url used to access the NGINX server from internet. This domain name must point to this machine for Let's Encrypt to create your certificate. (typically with a CNAME or A record)
* `BTCPAY_LIGHTNING_HOST`: The hostname announced for your node on the lightning network (by default, the `BTCPAY_HOST` will be used)
* `BTCPAY_ROOTPATH`: The root path directory where BTCPay is accessed, more information below. (default: /)
* `LETSENCRYPT_EMAIL`: The email Let's Encrypt will use to notify you about certificate expiration.
* `ACME_CA_URI`: Let's encrypt API endpoint (`staging` for a staging certificate, `production` for a production one)

View File

@ -0,0 +1,207 @@
version: "3"
# DO NOT USE THOSE ARE DEPRECATED
services:
nginx:
restart: unless-stopped
image: nginx:stable
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:ro"
links:
- btcpayserver
nginx-gen:
restart: unless-stopped
image: btcpayserver/docker-gen:0.7.5
container_name: nginx-gen
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"
- "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:ro"
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
links:
- nginx
letsencrypt-nginx-proxy-companion:
restart: unless-stopped
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt-nginx-proxy-companion
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:rw"
environment:
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
NGINX_PROXY_CONTAINER: "nginx"
ACME_CA_URI: ${ACME_CA_URI:-staging}
links:
- nginx-gen
btcpayserver:
restart: unless-stopped
image: nicolasdorier/btcpayserver:1.0.2.106
expose:
- "49392"
environment:
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
BTCPAY_BIND: 0.0.0.0:49392
BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
VIRTUAL_HOST_NAME: "btcpay"
SSL_POLICY: Mozilla-Modern
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc,btc"
BTCPAY_LTCLIGHTNING: "type=clightning;server=unix://etc/clightning_litecoin/lightning-rpc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_BTCLIGHTNING: "type=clightning;server=unix://etc/clightning_bitcoin/lightning-rpc"
links:
- nbxplorer
- postgres
- clightning_litecoin
- clightning_bitcoin
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
- "clightning_litecoin_datadir:/etc/clightning_litecoin"
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
nbxplorer:
restart: unless-stopped
image: nicolasdorier/nbxplorer:1.0.2.31
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "ltc,btc"
NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "litecoin_datadir:/root/.litecoin"
- "bitcoin_datadir:/root/.bitcoin"
links:
- litecoind
- bitcoind
postgres:
restart: unless-stopped
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: unless-stopped
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.16.3
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
- "28332"
- "28333"
volumes:
- "litecoin_datadir:/data"
clightning_litecoin:
image: nicolasdorier/clightning:v0.6.1
container_name: btcpayserver_clightning_litecoin
restart: unless-stopped
environment:
LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest}
LIGHTNINGD_CHAIN: ltc
LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/"
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/litecoin
bitcoin-rpcconnect=litecoind
bind-addr=0.0.0.0:9735
announce-addr=${BTCPAY_HOST}:9736
network=${NBITCOIN_NETWORK:-regtest}
alias=${LIGHTNING_ALIAS}
chain=ltc
volumes:
- "clightning_litecoin_datadir:/root/.lightning"
- "litecoin_datadir:/etc/litecoin"
- "nbxplorer_datadir:/root/.nbxplorer"
ports:
- "9736:9735"
links:
- nbxplorer
- litecoind
bitcoind:
restart: unless-stopped
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.3
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
expose:
- "43782"
- "39388"
- "28332"
- "28333"
volumes:
- "bitcoin_datadir:/data"
clightning_bitcoin:
image: nicolasdorier/clightning:v0.6.1
container_name: btcpayserver_clightning_bitcoin
restart: unless-stopped
environment:
LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest}
LIGHTNINGD_CHAIN: btc
LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/"
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
announce-addr=${BTCPAY_HOST}:9735
bind-addr=0.0.0.0:9735
network=${NBITCOIN_NETWORK:-regtest}
alias=${LIGHTNING_ALIAS}
chain=btc
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
- "nbxplorer_datadir:/root/.nbxplorer"
ports:
- "9735:9735"
links:
- nbxplorer
- bitcoind
volumes:
nginx_conf:
nginx_vhost:
nginx_html:
nginx_certs:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:
clightning_litecoin_datadir:
bitcoin_datadir:
clightning_bitcoin_datadir:

View File

@ -0,0 +1,149 @@
version: "3"
# DO NOT USE THOSE ARE DEPRECATED
services:
nginx:
restart: unless-stopped
image: nginx:stable
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:ro"
links:
- btcpayserver
nginx-gen:
restart: unless-stopped
image: btcpayserver/docker-gen:0.7.5
container_name: nginx-gen
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"
- "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:ro"
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
links:
- nginx
letsencrypt-nginx-proxy-companion:
restart: unless-stopped
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt-nginx-proxy-companion
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:rw"
environment:
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
NGINX_PROXY_CONTAINER: "nginx"
ACME_CA_URI: ${ACME_CA_URI:-staging}
links:
- nginx-gen
btcpayserver:
restart: unless-stopped
image: nicolasdorier/btcpayserver:1.0.2.106
expose:
- "49392"
environment:
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
BTCPAY_BIND: 0.0.0.0:49392
BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
VIRTUAL_HOST_NAME: "btcpay"
SSL_POLICY: Mozilla-Modern
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc,btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
links:
- nbxplorer
- postgres
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
nbxplorer:
restart: unless-stopped
image: nicolasdorier/nbxplorer:1.0.2.31
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "ltc,btc"
NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "litecoin_datadir:/root/.litecoin"
- "bitcoin_datadir:/root/.bitcoin"
links:
- litecoind
- bitcoind
postgres:
restart: unless-stopped
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: unless-stopped
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.16.3
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
- "28332"
- "28333"
volumes:
- "litecoin_datadir:/data"
bitcoind:
restart: unless-stopped
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.3
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
expose:
- "43782"
- "39388"
- "28332"
- "28333"
volumes:
- "bitcoin_datadir:/data"
volumes:
nginx_conf:
nginx_vhost:
nginx_html:
nginx_certs:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:
bitcoin_datadir:

View File

@ -0,0 +1,123 @@
version: "3"
services:
nginx:
restart: unless-stopped
image: nginx:stable
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:ro"
links:
- btcpayserver
nginx-gen:
restart: unless-stopped
image: btcpayserver/docker-gen:0.7.5
container_name: nginx-gen
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"
- "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:ro"
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
links:
- nginx
letsencrypt-nginx-proxy-companion:
restart: unless-stopped
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt-nginx-proxy-companion
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "nginx_conf:/etc/nginx/conf.d"
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:rw"
environment:
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
NGINX_PROXY_CONTAINER: "nginx"
ACME_CA_URI: ${ACME_CA_URI:-staging}
links:
- nginx-gen
btcpayserver:
restart: unless-stopped
image: nicolasdorier/btcpayserver:1.0.2.106
expose:
- "49392"
environment:
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
BTCPAY_BIND: 0.0.0.0:49392
BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
VIRTUAL_HOST_NAME: "btcpay"
SSL_POLICY: Mozilla-Modern
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
BTCPAY_CHAINS: "btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
links:
- nbxplorer
- postgres
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
nbxplorer:
restart: unless-stopped
image: nicolasdorier/nbxplorer:1.0.2.31
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "btc"
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "bitcoin_datadir:/root/.bitcoin"
links:
- bitcoind
postgres:
restart: unless-stopped
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
bitcoind:
restart: unless-stopped
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.3
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
expose:
- "43782"
- "39388"
- "28332"
- "28333"
volumes:
- "bitcoin_datadir:/data"
volumes:
nginx_conf:
nginx_vhost:
nginx_html:
nginx_certs:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
bitcoin_datadir:

View File

@ -39,11 +39,9 @@
{{ end }}
{{ if $container.Env.REAL_IP_HEADER }}
{{ range $containerNetwork := $container.Networks }}
set_real_ip_from {{ $containerNetwork.IP }};
set_real_ip_from {{ $containerNetwork.IP }};
{{ end }}
{{ if (ne $container.Env.REAL_IP_HEADER "X-Real-IP") }}
real_ip_header {{ $container.Env.REAL_IP_HEADER }};
{{ end }}
{{ end }}
{{ if (eq $serviceName "bitcoin_rtl") }}
location /rtl/ {
@ -81,10 +79,10 @@
proxy_pass http://clightning_bitcoin_charge:9112/;
}
{{ end }}
{{ if (eq $serviceName "clightning_bitcoin") }}
{{ if (eq $serviceName "clightning_bitcoin_rest") }}
location /clightning-rest/btc/ {
rewrite ^/clightning-rest/btc/(.*) /$1 break;
proxy_pass http://clightning_bitcoin:3010/;
proxy_pass http://clightning_bitcoin_rest:3001/;
}
{{ end }}
{{ if (eq $serviceName "clightning_groestlcoin_spark") }}
@ -148,7 +146,7 @@
{{ end }}
{{ if (eq $serviceName "lnd_lit") }}
location /lit/ {
location /lit {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@ -161,6 +159,12 @@
}
{{ end }}
{{ if (eq $serviceName "torq") }}
location /torq/ {
proxy_pass http://torq:8080/;
}
{{ end }}
{{ if (eq $serviceName "sphinxrelay") }}
location /sphinxrelay/ {
proxy_set_header Host $host;
@ -194,32 +198,8 @@
proxy_pass http://configurator;
}
{{ end }}
{{ if (eq $serviceName "snapdrop") }}
location /snapdrop/ {
proxy_connect_timeout 300;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host:443;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://snapdrop:8080/;
}
location /snapdrop/server {
proxy_connect_timeout 300;
proxy_pass http://snapdrop:8080/server;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-for $remote_addr;
}
{{ end }}
{{ if (eq $serviceName "nnostr-relay") }}
location /nostr {
location /nostr/ {
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
@ -359,6 +339,8 @@ proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
client_header_buffer_size 500k;
large_client_header_buffers 4 500k;
http2_max_field_size 500k;
http2_max_header_size 500k;
# Mitigate httpoxy attack (see README for details)
proxy_set_header Proxy "";
@ -371,17 +353,18 @@ server {
{{ if $enable_ipv6 }}
listen [::]:80;
{{ end }}
access_log /var/log/nginx/access.log vhost;
return 503;
}
{{ if (and (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }}
server {
server_name _; # This is just an invalid value which will never trigger on a real hostname.
listen 443 ssl;
listen 443 ssl http2;
{{ if $enable_ipv6 }}
listen [::]:443 ssl;
listen [::]:443 ssl http2;
{{ end }}
http2 on;
access_log /var/log/nginx/access.log vhost;
return 503;
ssl_session_tickets off;
@ -442,6 +425,7 @@ server {
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
access_log /var/log/nginx/access.log vhost;
{{ if (exists "/etc/nginx/vhost.d/default") }}
include /etc/nginx/vhost.d/default;
{{ end }}
@ -504,21 +488,8 @@ server {
{{ if $enable_ipv6 }}
listen [::]:80 {{ $default_server }};
{{ end }}
# Allow acme challenge requests without redirect
location ^~ /.well-known/acme-challenge/ {
auth_basic off;
auth_request off;
allow all;
root /usr/share/nginx/html;
try_files $uri =404;
break;
}
# Redirect all other requests to HTTPS
location / {
return 301 https://$host$request_uri;
}
access_log /var/log/nginx/access.log vhost;
return 301 https://$host$request_uri;
}
{{ end }}
@ -534,11 +505,11 @@ server {
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
client_max_body_size 100M;
server_name {{ $host }};
listen 443 ssl {{ $default_server }};
listen 443 ssl http2 {{ $default_server }};
{{ if $enable_ipv6 }}
listen [::]:443 ssl {{ $default_server }};
listen [::]:443 ssl http2 {{ $default_server }};
{{ end }}
http2 on;
access_log /var/log/nginx/access.log vhost;
{{ if eq $network_tag "internal" }}
# Only allow traffic from internal clients
@ -638,6 +609,7 @@ server {
{{ if $enable_ipv6 }}
listen [::]:80 {{ $default_server }};
{{ end }}
access_log /var/log/nginx/access.log vhost;
{{ if eq $network_tag "internal" }}
# Only allow traffic from internal clients
@ -678,11 +650,11 @@ server {
server {
client_max_body_size 100M;
server_name {{ $host }};
listen 443 ssl {{ $default_server }};
listen 443 ssl http2 {{ $default_server }};
{{ if $enable_ipv6 }}
listen [::]:443 ssl {{ $default_server }};
listen [::]:443 ssl http2 {{ $default_server }};
{{ end }}
http2 on;
access_log /var/log/nginx/access.log vhost;
{{/* Enable usage of self-signed SSL certificate if .local hostname */}}
{{ if hasSuffix "local" $host }}
{{ if eq $network_tag "internal" }}

170
README.md
View File

@ -15,12 +15,12 @@ You will find below information about how you can install BTCPay Server easily i
As you can see, BTCPay depends on several pieces of infrastructure, mainly:
* A lightweight block explorer (NBXplorer),
* A database (PostgreSQL),
* A database (PostgreSQL or SQLite),
* A full node (eg. Bitcoin Core)
There can be more dependencies if you support more than just standard Bitcoin transactions, including:
* [Core Lightning (CLN)](https://github.com/ElementsProject/lightning)
* [C-Lightning](https://github.com/ElementsProject/lightning)
* [LitecoinD](https://github.com/litecoin-project/litecoin) and other coin daemons
* And more...
@ -44,7 +44,7 @@ First, make sure you have a domain name pointing to your host `A record`, with p
Let's assume your domain is `btcpay.EXAMPLE.com`.
The setup below assumes you want to support Bitcoin, Core Lightning (CLN), HTTPS automatically configured by Nginx. It also enables node pruning, which you can [modify](#generated-docker-compose) or ignore if you have enough disk space for a full node. Finally, your domain is `btcpay.EXAMPLE.com` should reflect your actual domain name.
The setup below assumes you want to support Bitcoin, c-lightning, HTTPS automatically configured by Nginx. It also enables node pruning, which you can [modify](#generated-docker-compose) or ignore if you have enough disk space for a full node. Finally, your domain is `btcpay.EXAMPLE.com` should reflect your actual domain name.
[Environment variables](#environment-variables) can be tailored to your needs. Some variables require additional storage space.
@ -102,11 +102,11 @@ Check out this video if you're interested in learning more about setting up [BTC
* `NOREVERSEPROXY_HTTP_PORT`: Optional, if not using a reverse proxy, specify which port should be opened for HTTP traffic. (default: 80)
* `NBITCOIN_NETWORK`: The type of network to use (eg. `mainnet`, `testnet`, or `regtest`. Default: `mainnet`)
* `LIGHTNING_ALIAS`: An alias for your lightning network node, if used
* `BTCPAYGEN_CRYPTO1`: First supported crypto currency (eg. `btc`, `ltc`, `none`. Default: `btc`)
* `BTCPAYGEN_CRYPTO1`: First supported crypto currency (eg. `btc`, `ltc`. Default: `btc`)
* `BTCPAYGEN_CRYPTO2`: Second supported crypto currency (eg. `btc`, `ltc`. Default: `(empty)`)
* `BTCPAYGEN_CRYPTON`: N'th supported crypto currency where N is 9 at maximum. (eg. `btc`, `ltc`. Default: `(empty)`)
* `BTCPAYGEN_REVERSEPROXY`: Specify reverse proxy to use; NGinx has HTTPS support. (eg. `nginx`, `traefik`, `(empty)`. Default: `nginx`)
* `BTCPAYGEN_LIGHTNING`: Lightning network implementation to use (eg. `clightning`, `lnd`, `phoenixd` Default: `(empty)`)
* `BTCPAYGEN_LIGHTNING`: Lightning network implementation to use (eg. `clightning`, `lnd`, Default: `(empty)`)
* `BTCPAYGEN_SUBNAME`: The subname of the generated docker-compose file, where the full name is `Generated/docker-compose.SUBNAME.yml` (Default: `generated`)
* `BTCPAYGEN_ADDITIONAL_FRAGMENTS`: Semicolon-separated list of additional fragments you want to use (eg. `opt-save-storage`)
* `LETSENCRYPT_EMAIL`: An email will be sent to this address if certificate expires and fails to renew automatically (eg. `me@example.com`)
@ -114,7 +114,6 @@ Check out this video if you're interested in learning more about setting up [BTC
* `BTCPAY_ENABLE_SSH`: Optional, gives BTCPay Server SSH access to the host by allowing it to edit authorized_keys of the host, it can be used for managing the authorized_keys or updating BTCPay Server directly through the website. (Default: false)
* `BTCPAYGEN_DOCKER_IMAGE`: Optional, Specify which generator image to use if you have customized the C# generator. Set to `btcpayserver/docker-compose-generator:local` to build the generator locally at runtime.
* `BTCPAY_IMAGE`: Optional, Specify which btcpayserver image to use if you have a customized btcpayserver.
* `BTCPAY_UPDATE_CLEAN`: Clean (prune) all old BTCPayServer images after an update. WARNING: also removes all non-BTCPayServer images! (default: true)
* `BTCPAYGEN_EXCLUDE_FRAGMENTS`: Semicolon-separated list of fragments you want to forcefully exclude (eg. `litecoin-clightning`)
* `TOR_RELAY_NICKNAME`: If tor relay is activated with opt-add-tor-relay, the relay nickname
* `TOR_RELAY_EMAIL`: If tor relay is activated with opt-add-tor-relay, the email for Tor to contact you regarding your relay
@ -124,7 +123,7 @@ Additionally, there are specific environment variables for some addons:
* `LIBREPATRON_HOST`: If libre patron is activated with [opt-add-librepatron](docker-compose-generator/docker-fragments/opt-add-librepatron.yml), the hostname of your libre patron website (eg. `librepatron.example.com`)
* `ZAMMAD_HOST`: If zammad is activated with [opt-add-zammad](docker-compose-generator/docker-fragments/opt-add-zammad.yml), the hostname of your zammad website (eg. `zammad.example.com`)
* `WOOCOMMERCE_HOST`: If woocommerce is activated with [opt-add-woocommerce](docker-compose-generator/docker-fragments/opt-add-woocommerce.yml), the hostname of your woocommerce website (eg. `store.example.com`)
* `EPS_XPUB`: If Electrum Personal Server (EPS) is activated with [opt-add-electrum-ps](docker-compose-generator/docker-fragments/opt-add-electrum-ps.yml), you must set the Extended Public Key (XPUB, YPUB or ZPUB) of the wallet you want to use, before first run of the EPS server. If you accidentally start EPS without this, it will not work properly as the model of EPS is to monitor only specified wallets.
* `EPS_XPUB`: If Electrum Personal Server (EPS) is activated with [opt-add-electrum-ps](docker-compose-generator/docker-fragments/opt-add-electrum-ps.yml), you must set the Extended Public Key (XPUB, YPUB or ZPUB) of the wallet you want to use, before first run of the EPS server. If you accidently start EPS without this, it will not work properly as the model of EPS is to monitor only specified wallets.
* If Bitcoin Wallet Tracker is activated with [opt-add-bwt](docker-compose-generator/docker-fragments/opt-add-bwt.yml), you can use `BWT_XPUB`/`BWT_XPUB_*` (to set your XPUB/YPUB/ZPUB), `BWT_DESCRIPTOR`/`BWT_DESCRIPTOR_*` (for script descriptors), `BWT_RESCAN_SINCE` (set to the wallet creation date in YYYY-MM-DD to speed up the rescan), `BWT_BITCOIND_WALLET` and `BWT_GAP_LIMIT`.
* `LND_WTCLIENT_SWEEP_FEE`: If LND watchtower is activated with [opt-lnd-wtclient](docker-compose-generator/docker-fragments/opt-lnd-wtclient.yml), you can use `LND_WTCLIENT_SWEEP_FEE` to change the sweep fee used in constructing the justice transaction (default is 10 sat/byte)
* `FIREFLY_HOST`: If fireflyiii is activated with [opt-add-fireflyiii](docker-compose-generator/docker-fragments/opt-add-fireflyiii.yml), the hostname of your fireflyiii website (eg. `firefly.example.com`)
@ -135,7 +134,7 @@ Additionally, there are specific environment variables for some addons:
A wide variety of useful scripts are available once BTCPay is installed:
* `bitcoin-cli.sh`: Access your Bitcoin node instance (for RPC)
* `bitcoin-lightning-cli.sh`: Access your CLN node instance (for RPC)
* `bitcoin-lightning-cli.sh`: Access your C-Lightning node instance (for RPC)
* `changedomain.sh`: Change the domain of your BTCPayServer (remember to disable 2FA/U2F first, as you risk being unable to log in to your account)
* `btcpay-update.sh`: Update BTCPayServer to the latest version
* `btcpay-up.sh`: Run `docker-compose up`
@ -145,7 +144,6 @@ A wide variety of useful scripts are available once BTCPay is installed:
* `. ./btcpay-setup.sh`: Information about additional parameters
* `. ./btcpay-setup.sh -i`: Set up your BTCPayServer
* `btcpay-restart.sh`: Restart your BTCPayServer
* `switch-node.sh default|bitcoincore|bitcoinknots`: Switch your Bitcoin node implementation
# Under the hood
@ -161,11 +159,9 @@ Available `BTCPAYGEN_ADDITIONAL_FRAGMENTS` currently are:
* [opt-save-storage-s](docker-compose-generator/docker-fragments/opt-save-storage-s.yml) will keep around 6 months of blocks (prune BTC for 50 GB)
* [opt-save-storage-xs](docker-compose-generator/docker-fragments/opt-save-storage-xs.yml) will keep around 3 months of blocks (prune BTC for 25 GB)
* [opt-save-storage-xxs](docker-compose-generator/docker-fragments/opt-save-storage-xxs.yml) will keep around 2 weeks of blocks (prune BTC for 5 GB) (lightning not supported)
* [opt-lnd-autocompact](docker-compose-generator/docker-fragments/opt-lnd-autocompact.yml) will activate auto compacting of LND database.
* [opt-lnd-autopilot](docker-compose-generator/docker-fragments/opt-lnd-autopilot.yml) will activate auto pilot on LND. (5 channels, 60% of allocation)
* [opt-lnd-keysend](docker-compose-generator/docker-fragments/opt-lnd-keysend.yml) will activate keysend on LND.
* [opt-lnd-wtclient](docker-compose-generator/docker-fragments/opt-lnd-wtclient.yml) will activate the watchtower client on LND. `LND_WTCLIENT_SWEEP_FEE` can be used to override the default 10 sat/byte justice transaction fee
* [opt-lnd-watchtower](docker-compose-generator/docker-fragments/opt-lnd-watchtower.yml) will activate the LND watchtower RPC
* [opt-save-memory](docker-compose-generator/docker-fragments/opt-save-memory.yml) will decrease the default dbcache at the expense of longer synchronization time. (Useful if your machine is less than 2GB)
* [opt-more-memory](docker-compose-generator/docker-fragments/opt-more-memory.yml) will increase the default dbcache to make synchronization faster (Useful if your machine is has around 4GB)
* [opt-add-btcqbo](docker-compose-generator/docker-fragments/opt-add-btcqbo.yml) will allow you to create an invoice on Quickbooks which include a way for your customer to pay on BTCPay Server (More information on this [github repository](https://github.com/JeffVandrewJr/btcqbo/), this add-on is maintained by [JeffVandrewJr](https://github.com/JeffVandrewJr), see more on [this video](https://www.youtube.com/watch?v=srgwL9ozg6c))
@ -181,6 +177,7 @@ Available `BTCPAYGEN_ADDITIONAL_FRAGMENTS` currently are:
* [opt-add-electrum-bwt](docker-compose-generator/docker-fragments/opt-add-bwt.yml), to integrate the [Bitcoin Wallet Tracker](https://github.com/bwt-dev/bwt) Electrum server, which uses a personal wallet index model similar to that of EPS. You will need to set `BWT_XPUB` with your XPUB/YPUB/ZPUB (see environment variables section). The server will only be available locally and through an onion service.
* [opt-add-configurator](docker-compose-generator/docker-fragments/opt-add-configurator.yml), to integrate the [BTCPay Server Configurator](https://install.btcpayserver.org) to manage your BTCPay deployment through a UI, and to allow new deployments elsewhere easily.
* [opt-add-pihole](docker-compose-generator/docker-fragments/opt-add-pihole.yml) ([See the documentation](docs/pihole.md))
* [opt-add-bluewallet-lndhub](docker-compose-generator/docker-fragments/opt-add-bluewallet-lndhub.yml) for [Bluewallet LNDHub](https://github.com/BlueWallet/LndHub) - Use non-custodial LND Lightning directly from your Bluewallet, and freely let others open accounts on your node. Fragment maintained by [maltokyo](https://github.com/maltokyo).
* [opt-add-ndlc](docker-compose-generator/docker-fragments/opt-add-ndlc.yml) ([See the documentation](docs/ndlc.md))
* [opt-add-lightning-terminal](docker-compose-generator/docker-fragments/opt-add-lightning-terminal.yml) for [Lightning Terminal/LiT](https://github.com/lightninglabs/lightning-terminal). Maintained by [dennisreimann](https://github.com/dennisreimann).
* [opt-add-mempool](docker-compose-generator/docker-fragments/opt-add-mempool.yml) for [Mempool](https://github.com/mempool/mempool). Maintained by [dennisreimann](https://github.com/dennisreimann).
@ -196,10 +193,7 @@ Available `BTCPAYGEN_ADDITIONAL_FRAGMENTS` currently are:
* [opt-add-helipad](docker-compose-generator/docker-fragments/opt-add-helipad.yml) for [Podcastindex.org Helipad](https://github.com/Podcastindex-org/helipad). Requires LND.
* [opt-add-nostr-relay](docker-compose-generator/docker-fragments/opt-add-nostr-relay.yml) for [Nostr Relay](https://github.com/kukks/Nnostr).
* [opt-add-cloudflared](docker-compose-generator/docker-fragments/opt-add-cloudflared.yml) to expose your local server on clearnet painlessly ([see documentation](docs/cloudflare-tunnel.md)).
* [opt-add-snapdrop](docker-compose-generator/docker-fragments/opt-add-snapdrop.yml) to install [Snapdrop](https://snapdrop.net/). You can then browse to `/snapdrop` of your server to access it.
* [opt-add-ltcmweb](docker-compose-generator/docker-fragments/opt-add-ltcmweb.yml) to add the support service for the Litecoin MWEB payment method plugin.
* [opt-add-shopify](docker-compose-generator/docker-fragments/opt-add-shopify.yml) to install the [Shopify App Deployer](https://github.com/btcpayserver/shopify-app). Used by the [BTCPay Server Shopify plugin](https://github.com/btcpayserver/btcpayserver-shopify-plugin).
* [opt-add-nolimits](docker-compose-generator/docker-fragments/opt-add-nolimits.yml) to remove OP_RETURN limits and min relay tx fee from your bitcoin node.
* [opt-add-torq](docker-compose-generator/docker-fragments/opt-add-torq.yml) to install [Torq](https://github.com/lncapital/torq) node management application. Requires LND.
You can also create your own [custom fragments](#how-can-i-customize-the-generated-docker-compose-file).
@ -260,8 +254,7 @@ Next, you will need to configure the runtime environment variables for `Generate
`/etc/profile.d/btcpay-env.sh` ensures that your environment variables are correctly setup when you login, so you can use the tools:
```bash
#!/bin/bash
export COMPOSE_HTTP_TIMEOUT="180"
export BTCPAYGEN_OLD_PREGEN="false"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_CRYPTO2=""
export BTCPAYGEN_CRYPTO3=""
@ -271,20 +264,15 @@ export BTCPAYGEN_CRYPTO6=""
export BTCPAYGEN_CRYPTO7=""
export BTCPAYGEN_CRYPTO8=""
export BTCPAYGEN_CRYPTO9=""
export BTCPAYGEN_LIGHTNING="lnd"
export BTCPAYGEN_LIGHTNING="clightning"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s;opt-add-nolimits"
export BTCPAYGEN_EXCLUDE_FRAGMENTS=";bitcoin"
export BTCPAY_DOCKER_COMPOSE="/root/btcpayserver-docker/Generated/docker-compose.generated.yml"
export BTCPAY_BASE_DIRECTORY="/root"
export BTCPAY_ENV_FILE="/root/.env"
export BTCPAY_HOST_SSHKEYFILE=""
export BTCPAY_ENABLE_SSH=true
export PIHOLE_SERVERIP=""
if cat "$BTCPAY_ENV_FILE" &> /dev/null; then
while IFS= read -r line; do
! [[ "$line" == "#"* ]] && [[ "$line" == *"="* ]] && export "$line"
done < "$BTCPAY_ENV_FILE"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS=""
export BTCPAY_DOCKER_COMPOSE="/var/lib/waagent/custom-script/download/0/btcpayserver-docker/Production/docker-compose.generated.yml"
export BTCPAY_BASE_DIRECTORY="/var/lib/waagent/custom-script/download/0"
export BTCPAY_ENV_FILE="/var/lib/waagent/custom-script/download/0/.env"
export BTCPAY_HOST_SSHKEYFILE="/root/.ssh/id_rsa_btcpay"
if cat $BTCPAY_ENV_FILE &> /dev/null; then
export $(grep -v '^#' "$BTCPAY_ENV_FILE" | xargs)
fi
```
@ -348,51 +336,54 @@ Note that BTCPayServer developers will not spend excessive time testing your ima
# Support
We are trying to update our dependencies to run on `arm32v7` and `x64` boards. Here is our progress:
| Image | Version | x64 | arm32v7 | arm64v8 | links |
|---|---|:-:|:-:|:-:|:-:|
| btcpayserver/docker-compose-generator | latest | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver-docker) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-compose-generator) |
| btcpayserver/lightning | v26.06.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v26.06.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v26.06.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v26.06.1/Dockerfile) | [Github](https://github.com/btcpayserver/lightning) - [DockerHub](https://hub.docker.com/r/btcpayserver/lightning) |
| shahanafarooqui/rtl | v0.15.4 | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.15.4/Dockerfile) | [Github](https://github.com/Ride-The-Lightning/RTL) - [DockerHub](https://hub.docker.com/r/shahanafarooqui/rtl) |
| btcpayserver/lnd | v0.19.3-beta-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.19.3-beta-1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.19.3-beta-1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.19.3-beta-1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lnd) - [DockerHub](https://hub.docker.com/r/btcpayserver/lnd) |
| btcpayserver/bitcoin | 29.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/29.2/Bitcoin/29.2/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/29.2/Bitcoin/29.2/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/29.2/Bitcoin/29.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/bitcoin) |
| btcpayserver/bitcoinknots | 29.3.knots20260508 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/BitcoinKnots/29.3.knots20260508/BitcoinKnots/29.3.knots20260508/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/BitcoinKnots/29.3.knots20260508/BitcoinKnots/29.3.knots20260508/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/BitcoinKnots/29.3.knots20260508/BitcoinKnots/29.3.knots20260508/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/bitcoinknots) |
| btcpayserver/btcpayserver | 2.4.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v2.4.0/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v2.4.0/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v2.4.0/Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver) - [DockerHub](https://hub.docker.com/r/btcpayserver/btcpayserver) |
| btcpayserver/monero | 0.18.4.3 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.4.3/Monero/0.18.4.3/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.4.3/Monero/0.18.4.3/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.4.3/Monero/0.18.4.3/Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/monero) |
| nicolasdorier/nbxplorer | 2.6.8 | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.6.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.6.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.6.8/Dockerfile) | [Github](https://github.com/dgarage/nbxplorer) - [DockerHub](https://hub.docker.com/r/nicolasdorier/nbxplorer) |
| btcpayserver/letsencrypt-nginx-proxy-companion | 2.2.9-2 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v2.2.9-2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v2.2.9-2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v2.2.9-2/Dockerfile) | [Github](https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion) - [DockerHub](https://hub.docker.com/r/btcpayserver/letsencrypt-nginx-proxy-companion) |
| nginx | 1.25.3-bookworm | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.23.2/stable/debian/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.23.2/stable/debian/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.23.2/stable/debian/Dockerfile) | [Github](https://github.com/nginxinc/docker-nginx) - [DockerHub](https://hub.docker.com/_/nginx) |
| btcpayserver/docker-gen | 0.10.7 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/0.10.7/Dockerfile.alpine) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/0.10.7/Dockerfile.alpine) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/0.10.7/Dockerfile.alpine) | [Github](https://github.com/btcpayserver/docker-gen) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-gen) |
| btcpayserver/docker-compose-generator | latest | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver-docker) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-compose-generator) |
| btcpayserver/docker-compose | 1.28.6 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/docker-compose/1.28.6/docker-compose/1.28.6/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/docker-compose/1.28.6/docker-compose/1.28.6/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/docker-compose/1.28.6/docker-compose/1.28.6/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-compose) |
| btcpayserver/lightning | v22.11.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v22.11.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v22.11.1/contrib/docker/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v22.11.1/contrib/docker/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lightning) - [DockerHub](https://hub.docker.com/r/btcpayserver/lightning) |
| shesek/lightning-charge | 0.4.23-1-standalone | [✔️](https://raw.githubusercontent.com/ElementsProject/lightning-charge/v0.4.23/Dockerfile) | [✔️](https://raw.githubusercontent.com/ElementsProject/lightning-charge/v0.4.23/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/ElementsProject/lightning-charge/v0.4.23/arm64v8.Dockerfile) | [Github](https://github.com/ElementsProject/lightning-charge) - [DockerHub](https://hub.docker.com/r/shesek/lightning-charge) |
| shesek/spark-wallet | 0.3.1-standalone | [✔️](https://raw.githubusercontent.com/shesek/spark-wallet/v0.3.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/shesek/spark-wallet/v0.3.1/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/shesek/spark-wallet/v0.3.1/arm64v8.Dockerfile) | [Github](https://github.com/shesek/spark-wallet) - [DockerHub](https://hub.docker.com/r/shesek/spark-wallet) |
| saubyk/c-lightning-rest | 0.9.0 | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/c-lightning-REST/v0.9.0/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/c-lightning-REST/v0.9.0/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/c-lightning-REST/v0.9.0/arm64v8.Dockerfile) | [Github](https://github.com/Ride-The-Lightning/c-lightning-REST) - [DockerHub](https://hub.docker.com/r/saubyk/c-lightning-rest) |
| shahanafarooqui/rtl | 0.13.3 | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.13.3/dockerfiles/Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.13.3/dockerfiles/Dockerfile.arm32v7) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.13.3/dockerfiles/Dockerfile.arm64v8) | [Github](https://github.com/Ride-The-Lightning/RTL) - [DockerHub](https://hub.docker.com/r/shahanafarooqui/rtl) |
| btcpayserver/lnd | v0.15.4-beta-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.15.4-beta-1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.15.4-beta-1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.15.4-beta-1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lnd) - [DockerHub](https://hub.docker.com/r/btcpayserver/lnd) |
| btcpayserver/bitcoin | 24.0.1-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/24.0.1-1/Bitcoin/24.0.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/24.0.1-1/Bitcoin/24.0.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/24.0.1-1/Bitcoin/24.0.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/bitcoin) |
| btcpayserver/btcpayserver | 1.7.3$<BTCPAY_BUILD_CONFIGURATION>? | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v1.7.3/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v1.7.3/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v1.7.3/arm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver) - [DockerHub](https://hub.docker.com/r/btcpayserver/btcpayserver) |
| btcpayserver/monero | 0.18.1.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.1.1/Monero/0.18.1.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.1.1/Monero/0.18.1.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.1.1/Monero/0.18.1.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/monero) |
| nicolasdorier/nbxplorer | 2.3.54 | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.3.54/Dockerfile.linuxamd64) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.3.54/Dockerfile.linuxarm32v7) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.3.54/Dockerfile.linuxarm64v8) | [Github](https://github.com/dgarage/nbxplorer) - [DockerHub](https://hub.docker.com/r/nicolasdorier/nbxplorer) |
| btcpayserver/letsencrypt-nginx-proxy-companion | 1.12.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v1.12.2/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v1.12.2/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v1.12.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion) - [DockerHub](https://hub.docker.com/r/btcpayserver/letsencrypt-nginx-proxy-companion) |
| nginx | 1.16.0 | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.16.0/stable/stretch/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.16.0/stable/stretch/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.16.0/stable/stretch/Dockerfile) | [Github](https://github.com/nginxinc/docker-nginx) - [DockerHub](https://hub.docker.com/_/nginx) |
| btcpayserver/docker-gen | 0.7.8 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.8/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.8/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.8/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/docker-gen) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-gen) |
| btcpayserver/btctransmuter | 0.0.59 | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.59/Dockerfiles/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.59/Dockerfiles/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.59/Dockerfiles/arm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btctransmuter) - [DockerHub](https://hub.docker.com/r/btcpayserver/btctransmuter) |
| btcpayserver/cloudflared | 2024.8.2-4 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2024.8.2-4/Cloudflared/2024.8.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2024.8.2-4/Cloudflared/2024.8.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2024.8.2-4/Cloudflared/2024.8.2/Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/cloudflared) |
| btcpayserver/cloudflared | 2022.6.3 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2022.6.3/Cloudflared/2022.6.3/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2022.6.3/Cloudflared/2022.6.3/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2022.6.3/Cloudflared/2022.6.3/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/cloudflared) |
| btcpayserver/btcpayserver-configurator | 0.0.21 | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-configurator/v0.0.21/Dockerfiles/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-configurator/v0.0.21/Dockerfiles/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-configurator/v0.0.21/Dockerfiles/arm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver-configurator) - [DockerHub](https://hub.docker.com/r/btcpayserver/btcpayserver-configurator) |
| btcpayserver/eps | 0.2.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/EPS/0.2.2/EPS/0.2.2/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/EPS/0.2.2/EPS/0.2.2/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/EPS/0.2.2/EPS/0.2.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/eps) |
| btcpayserver/joinmarket | 0.9.10 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.10/JoinMarket/0.9.10/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.10/JoinMarket/0.9.10/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.10/JoinMarket/0.9.10/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/joinmarket) |
| btcpayserver/joinmarket | 0.9.5 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.5/JoinMarket/0.9.5/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.5/JoinMarket/0.9.5/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.5/JoinMarket/0.9.5/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/joinmarket) |
| nicolasdorier/ndlc-cli | 1.0.1 | [✔️](https://raw.githubusercontent.com/dgarage/ndlc/releases/1.0.1/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/ndlc/releases/1.0.1/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/ndlc/releases/1.0.1/arm64v8.Dockerfile) | [Github](https://github.com/dgarage/ndlc) - [DockerHub](https://hub.docker.com/r/nicolasdorier/ndlc-cli) |
| pihole/pihole | 2025.03.0 | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/2025.03.0/src/Dockerfile) | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/2025.03.0/src/Dockerfile) | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/2025.03.0/src/Dockerfile) | [Github](https://github.com/pi-hole/docker-pi-hole) - [DockerHub](https://hub.docker.com/r/pihole/pihole) |
| btcpayserver/shopify-app-deployer | 1.8 | [✔️](https://raw.githubusercontent.com/btcpayserver/shopify-app/1.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/shopify-app/1.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/shopify-app/1.8/Dockerfile) | [Github](https://github.com/btcpayserver/shopify-app) - [DockerHub](https://hub.docker.com/r/btcpayserver/shopify-app-deployer) |
| btcpayserver/snapdrop | 1.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Snapdrop/1.2/Snapdrop/1.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Snapdrop/1.2/Snapdrop/1.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Snapdrop/1.2/Snapdrop/1.2/Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/snapdrop) |
| btcpayserver/tor | 0.4.9.10 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.9.10/Tor/0.4.9.10/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.9.10/Tor/0.4.9.10/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.9.10/Tor/0.4.9.10/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/tor) |
| pihole/pihole | v5.7 | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/v5.7/Dockerfile) | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/v5.7/Dockerfile) | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/v5.7/Dockerfile) | [Github](https://github.com/pi-hole/docker-pi-hole) - [DockerHub](https://hub.docker.com/r/pihole/pihole) |
| btcpayserver/tor | 0.4.7.10 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.7.10/Tor/0.4.7.10/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.7.10/Tor/0.4.7.10/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.7.10/Tor/0.4.7.10/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/tor) |
| btcpayserver/woocommerce | 3.1.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/WooCommerce/3.1.0/WooCommerce/3.1.0/linuxamd64.Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/WooCommerce/3.1.0/WooCommerce/3.1.0/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/woocommerce) |
| btcpayserver/postgres | 18.1-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/18.1-1/Postgres/18.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/18.1-1/Postgres/18.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/18.1-1/Postgres/18.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/postgres) |
| btcpayserver/postgres | 13.7 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/13.7/Postgres/13.7/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/13.7/Postgres/13.7/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/13.7/Postgres/13.7/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/postgres) |
| kamigawabul/btglnd | latest | [✔️](https://raw.githubusercontent.com/vutov/lnd/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/vutov/lnd) - [DockerHub](https://hub.docker.com/r/kamigawabul/btglnd) |
| kamigawabul/docker-bitcoingold | 0.15.2 | [✔️](https://raw.githubusercontent.com/Vutov/docker-bitcoin/master/bitcoingold/0.15.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Vutov/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/kamigawabul/docker-bitcoingold) |
| acinq/eclair | release-0.7.0 | [✔️](https://raw.githubusercontent.com/ACINQ/eclair/v0.7.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ACINQ/eclair) - [DockerHub](https://hub.docker.com/r/acinq/eclair) |
| chekaz/docker-bitcoinplus | 2.7.0 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/bitcoinplus/2.7.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-bitcoinplus) |
| dalijolijo/docker-bitcore | 0.90.9.10 | [✔️](https://raw.githubusercontent.com/dalijolijo/btcpayserver-docker-bitcore/master/docker-bitcored/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/dalijolijo/btcpayserver-docker-bitcore) - [DockerHub](https://hub.docker.com/r/dalijolijo/docker-bitcore) |
| btcpayserver/dash | 23.1.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/23.1.2/Dash/23.1.2/linuxamd64.Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/23.1.2/Dash/23.1.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dash) |
| ghcr.io/bisoncraft/decred | 2.1.5 | [✔️](https://raw.githubusercontent.com/bisoncraft/btcpayserver-decred-plugin/v2.1.5/Dockerfile.decred) | ️❌ | ️❌ | [Github](https://github.com/bisoncraft/btcpayserver-decred-plugin) - [DockerHub](https://hub.docker.com/r/ghcr.io/bisoncraft/decred) |
| btcpayserver/dogecoin | 1.14.7 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dogecoin/1.14.7/Dogecoin/1.14.7/linuxamd64.Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dogecoin) |
| btcpayserver/dash | 18.1.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/18.1.0/Dash/18.1.0/linuxamd64.Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/18.1.0/Dash/18.1.0/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dash) |
| btcpayserver/dogecoin | 1.14.6 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dogecoin/1.14.6/Dogecoin/1.14.6/linuxamd64.Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dogecoin) |
| chekaz/docker-feathercoin | 0.16.3 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/feathercoin/0.16.3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-feathercoin) |
| groestlcoin/lightning | v24.08 | [✔️](https://raw.githubusercontent.com/Groestlcoin/lightning/v24.08/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/lightning) - [DockerHub](https://hub.docker.com/r/groestlcoin/lightning) |
| groestlcoin/lightning | v22.11.1 | [✔️](https://raw.githubusercontent.com/Groestlcoin/lightning/v22.11.1/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/lightning) - [DockerHub](https://hub.docker.com/r/groestlcoin/lightning) |
| groestlcoin/groestlcoin-lightning-charge | version-0.4.22 | [✔️](https://raw.githubusercontent.com/Groestlcoin/groestlcoin-lightning-charge/v0.4.22/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/groestlcoin-lightning-charge) - [DockerHub](https://hub.docker.com/r/groestlcoin/groestlcoin-lightning-charge) |
| groestlcoin/groestlcoin-spark | version-0.2.16 | [✔️](https://raw.githubusercontent.com/Groestlcoin/groestlcoin-spark/v0.2.16/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/groestlcoin-spark) - [DockerHub](https://hub.docker.com/r/groestlcoin/groestlcoin-spark) |
| groestlcoin/eclair | v0.6.0 | [✔️](https://raw.githubusercontent.com/Groestlcoin/eclair/v0.6.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/eclair) - [DockerHub](https://hub.docker.com/r/groestlcoin/eclair) |
| groestlcoin/lnd | v0.10.0-grs | [✔️](https://raw.githubusercontent.com/Groestlcoin/lnd/v0.10.0-grs/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/lnd) - [DockerHub](https://hub.docker.com/r/groestlcoin/lnd) |
| btcpayserver/groestlcoin | 25.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/25.0/Groestlcoin/25.0/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/25.0/Groestlcoin/25.0/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/25.0/Groestlcoin/25.0/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/groestlcoin) |
| btcpayserver/elements | 23.2.3 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/23.2.3/Elements/23.2.3/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/23.2.3/Elements/23.2.3/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/23.2.3/Elements/23.2.3/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/elements) |
| btcpayserver/litecoin | 0.21.5.5 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.5.5/Litecoin/0.21.5.5/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.5.5/Litecoin/0.21.5.5/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.5.5/Litecoin/0.21.5.5/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/litecoin) |
| btcpayserver/groestlcoin | 24.0.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/24.0.1/Groestlcoin/24.0.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/24.0.1/Groestlcoin/24.0.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/24.0.1/Groestlcoin/24.0.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/groestlcoin) |
| btcpayserver/elements | 0.21.0.2-4 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/0.21.0.2-4/Elements/0.21.0.2/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/0.21.0.2-4/Elements/0.21.0.2/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/0.21.0.2-4/Elements/0.21.0.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/elements) |
| btcpayserver/litecoin | 0.21.2.1-2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.2.1-2/Litecoin/0.21.2.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.2.1-2/Litecoin/0.21.2.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.2.1-2/Litecoin/0.21.2.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/litecoin) |
| wakiyamap/docker-monacoin | 0.20.2 | [✔️](https://raw.githubusercontent.com/wakiyamap/docker-bitcoin/master/monacoin/0.20.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/wakiyamap/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/wakiyamap/docker-monacoin) |
| redis | 6.2.2-buster | [✔️](https://raw.githubusercontent.com/docker-library/redis/f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c/5.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/redis) - [DockerHub](https://hub.docker.com/_/redis) |
| bluewalletorganization/lndhub | v1.4.1 | [✔️](https://raw.githubusercontent.com/BlueWallet/LndHub/v1.4.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/BlueWallet/LndHub/v1.4.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/BlueWallet/LndHub/v1.4.1/Dockerfile) | [Github](https://github.com/BlueWallet/LndHub) - [DockerHub](https://hub.docker.com/r/bluewalletorganization/lndhub) |
| jvandrew/btcqbo | 0.3.36 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/btcqbo/v0.3.36/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/btcqbo) - [DockerHub](https://hub.docker.com/r/jvandrew/btcqbo) |
| shesek/bwt | 0.2.2-electrum | [✔️](https://raw.githubusercontent.com/bwt-dev/bwt/v0.2.2/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/bwt-dev/bwt/v0.2.2/docker/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/bwt-dev/bwt/v0.2.2/docker/arm64v8.Dockerfile) | [Github](https://github.com/bwt-dev/bwt) - [DockerHub](https://hub.docker.com/r/shesek/bwt) |
| chatwoot/chatwoot | v1.7.0 | [✔️](https://raw.githubusercontent.com/chatwoot/chatwoot/v1.7.0/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/chatwoot/chatwoot/v1.7.0/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/chatwoot/chatwoot/v1.7.0/docker/Dockerfile) | [Github](https://github.com/chatwoot/chatwoot) - [DockerHub](https://hub.docker.com/r/chatwoot/chatwoot) |
@ -401,25 +392,22 @@ Note that BTCPayServer developers will not spend excessive time testing your ima
| podcastindexorg/podcasting20-helipad | v0.1.10 | [✔️](https://raw.githubusercontent.com/Podcastindex-org/helipad/v0.1.10/umbrel/Dockerfile) | [✔️](https://raw.githubusercontent.com/Podcastindex-org/helipad/v0.1.10/umbrel/Dockerfile) | [✔️](https://raw.githubusercontent.com/Podcastindex-org/helipad/v0.1.10/umbrel/Dockerfile) | [Github](https://github.com/Podcastindex-org/helipad) - [DockerHub](https://hub.docker.com/r/podcastindexorg/podcasting20-helipad) |
| jvandrew/librepatron | 0.7.39 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/patron/v0.7.39/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/patron) - [DockerHub](https://hub.docker.com/r/jvandrew/librepatron) |
| jvandrew/isso | atron.22 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/isso/patron.22/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/isso) - [DockerHub](https://hub.docker.com/r/jvandrew/isso) |
| lightninglabs/lightning-terminal | v0.14.1-alpha-path-prefix | [✔️](https://raw.githubusercontent.com/lightninglabs/lightning-terminal/v0.14.1-alpha/Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/lightninglabs/lightning-terminal/v0.14.1-alpha/Dockerfile) | [Github](https://github.com/lightninglabs/lightning-terminal) - [DockerHub](https://hub.docker.com/r/lightninglabs/lightning-terminal) |
| hectorchu1/mwebd | latest | [✔️](https://raw.githubusercontent.com/ltcmweb/btcpayserver-ltcmweb-plugin/main/Dockerfile) | [✔️](https://raw.githubusercontent.com/ltcmweb/btcpayserver-ltcmweb-plugin/main/Dockerfile) | [✔️](https://raw.githubusercontent.com/ltcmweb/btcpayserver-ltcmweb-plugin/main/Dockerfile) | [Github](https://github.com/ltcmweb/btcpayserver-ltcmweb-plugin) - [DockerHub](https://hub.docker.com/r/hectorchu1/mwebd) |
| mempool/frontend | v2.5.0 | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/frontend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/frontend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/frontend/Dockerfile) | [Github](https://github.com/mempool/mempool) - [DockerHub](https://hub.docker.com/r/mempool/frontend) |
| mempool/backend | v2.5.0 | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/backend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/backend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/backend/Dockerfile) | [Github](https://github.com/mempool/mempool) - [DockerHub](https://hub.docker.com/r/mempool/backend) |
| mariadb | 10.11 | [✔️](https://raw.githubusercontent.com/docker-library/mariadb/master/10.11/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/mariadb) - [DockerHub](https://hub.docker.com/_/mariadb) |
| kukks/nnostr-relay | v0.0.23 | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.23/Relay/Dockerfile) | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.23/Relay/Dockerfile) | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.23/Relay/Dockerfile) | [Github](https://github.com/kukks/nnostr) - [DockerHub](https://hub.docker.com/r/kukks/nnostr-relay) |
| lightninglabs/lightning-terminal | v0.6.7-alpha-path-prefix | [✔️](https://raw.githubusercontent.com/lightninglabs/lightning-terminal/v0.6.7-alpha/Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/lightninglabs/lightning-terminal/v0.6.7-alpha/Dockerfile) | [Github](https://github.com/lightninglabs/lightning-terminal) - [DockerHub](https://hub.docker.com/r/lightninglabs/lightning-terminal) |
| mempool/frontend | v2.5.0-dev1 | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0-dev1/docker/frontend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0-dev1/docker/frontend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0-dev1/docker/frontend/Dockerfile) | [Github](https://github.com/mempool/mempool) - [DockerHub](https://hub.docker.com/r/mempool/frontend) |
| mempool/backend | v2.5.0-dev1 | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0-dev1/docker/backend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0-dev1/docker/backend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0-dev1/docker/backend/Dockerfile) | [Github](https://github.com/mempool/mempool) - [DockerHub](https://hub.docker.com/r/mempool/backend) |
| mariadb | 10.5.8 | [✔️](https://raw.githubusercontent.com/docker-library/mariadb/master/10.5/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/mariadb) - [DockerHub](https://hub.docker.com/_/mariadb) |
| kukks/nnostr-relay | v0.0.7 | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.7/Relay/Dockerfile) | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.7/Relay/Dockerfile) | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.7/Relay/Dockerfile) | [Github](https://github.com/kukks/nnostr) - [DockerHub](https://hub.docker.com/r/kukks/nnostr-relay) |
| sphinxlightning/sphinx-relay | v2.2.9 | [✔️](https://raw.githubusercontent.com/stakwork/sphinx-relay/v2.2.9/Dockerfile) | [✔️](https://raw.githubusercontent.com/stakwork/sphinx-relay/v2.2.9/Dockerfile) | [✔️](https://raw.githubusercontent.com/stakwork/sphinx-relay/v2.2.9/Dockerfile) | [Github](https://github.com/stakwork/sphinx-relay) - [DockerHub](https://hub.docker.com/r/sphinxlightning/sphinx-relay) |
| djbooth007/tallycoin_connect | v1.8.0 | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.8.0/Dockerfile) | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.8.0/Dockerfile.arm32v7) | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.8.0/Dockerfile.arm64v8) | [Github](https://github.com/djbooth007/tallycoin_connect) - [DockerHub](https://hub.docker.com/r/djbooth007/tallycoin_connect) |
| benjaminchodroff/rust-teos | latest | [✔️](https://raw.githubusercontent.com/benjaminchodroff/rust-teos/master/docker/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/benjaminchodroff/rust-teos) - [DockerHub](https://hub.docker.com/r/benjaminchodroff/rust-teos) |
| apotdevin/thunderhub | base-0.15.4 | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.15.4/Dockerfile) | [Github](https://github.com/apotdevin/thunderhub) - [DockerHub](https://hub.docker.com/r/apotdevin/thunderhub) |
| djbooth007/tallycoin_connect | v1.7.5 | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.7.5/Dockerfile) | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.7.5/Dockerfile.arm32v7) | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.7.5/Dockerfile.arm64v8) | [Github](https://github.com/djbooth007/tallycoin_connect) - [DockerHub](https://hub.docker.com/r/djbooth007/tallycoin_connect) |
| talaia/python-teos | latest | [✔️](https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/arm64v8.Dockerfile) | [Github](https://github.com/talaia-labs/python-teos) - [DockerHub](https://hub.docker.com/r/talaia/python-teos) |
| apotdevin/thunderhub | base-v0.13.11 | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.13.11/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.13.11/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.13.11/Dockerfile) | [Github](https://github.com/apotdevin/thunderhub) - [DockerHub](https://hub.docker.com/r/apotdevin/thunderhub) |
| lncapital/torq | 0.15.4 | [✔️](https://raw.githubusercontent.com/lncapital/torq/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/lncapital/torq/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/lncapital/torq/v0.15.4/Dockerfile) | [Github](https://github.com/lncapital/torq) - [DockerHub](https://hub.docker.com/r/lncapital/torq) |
| timescale/timescaledb | latest-pg14 | [✔️](https://raw.githubusercontent.com/timescale/timescaledb-docker/main/Dockerfile) | [✔️](https://raw.githubusercontent.com/timescale/timescaledb-docker/main/Dockerfile) | [✔️](https://raw.githubusercontent.com/timescale/timescaledb-docker/main/Dockerfile) | [Github](https://github.com/timescale/timescaledb-docker) - [DockerHub](https://hub.docker.com/r/timescale/timescaledb) |
| zammad/zammad-docker-compose | zammad-postgresql-3.4.0-4 | [✔️](https://raw.githubusercontent.com/zammad/zammad-docker-compose/ff20084ce2829486076e9781fe27407ca6cc09bb/containers/zammad-postgresql/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/zammad/zammad-docker-compose) - [DockerHub](https://hub.docker.com/r/zammad/zammad-docker-compose) |
| memcached | 1.5.22-alpine | [✔️](https://raw.githubusercontent.com/docker-library/memcached/eb38bf28263b8e5bb7367797cb7b181b65d769bd/alpine/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/memcached) - [DockerHub](https://hub.docker.com/_/memcached) |
| acinq/phoenixd | 0.8.0 | [✔️](https://raw.githubusercontent.com/ACINQ/phoenixd/v0.8.0/.docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/ACINQ/phoenixd/v0.8.0/.docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/ACINQ/phoenixd/v0.8.0/.docker/Dockerfile) | [Github](https://github.com/ACINQ/phoenixd) - [DockerHub](https://hub.docker.com/r/acinq/phoenixd) |
| memcached | 1.5.22-alpine | [✔️](https://raw.githubusercontent.com/docker-library/memcached/master/alpine/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/memcached) - [DockerHub](https://hub.docker.com/_/memcached) |
| traefik | v2.6 | [✔️](https://raw.githubusercontent.com/containous/traefik-library-image/master/scratch/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/containous/traefik-library-image) - [DockerHub](https://hub.docker.com/_/traefik) |
| chekaz/docker-trezarcoin | 0.13.0 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/trezarcoin/1.2.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-trezarcoin) |
| romanornr/docker-viacoin | 0.15.2 | [✔️](https://raw.githubusercontent.com/viacoin/docker-viacoin/master/viacoin/0.15.2/docker-viacoin) | ️❌ | ️❌ | [Github](https://github.com/viacoin/docker-viacoin) - [DockerHub](https://hub.docker.com/r/romanornr/docker-viacoin) |
| hhanh00/zcash-walletd | 1.1.5 | [✔️](https://raw.githubusercontent.com/elemental-pay/zcash-walletd/feat/data-config/docker/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/elemental-pay/zcash-walletd) - [DockerHub](https://hub.docker.com/r/hhanh00/zcash-walletd) |
| zfnd/zebra | 3.0.0 | [✔️](https://raw.githubusercontent.com/ZcashFoundation/zebra/main/docker/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ZcashFoundation/zebra) - [DockerHub](https://hub.docker.com/r/zfnd/zebra) |
| electriccoinco/lightwalletd | v0.4.18 | [✔️](https://raw.githubusercontent.com/zcash/lightwalletd/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/zcash/lightwalletd) - [DockerHub](https://hub.docker.com/r/electriccoinco/lightwalletd) |
# FAQ
@ -433,6 +421,41 @@ export BTCPAYGEN_CRYPTO3='btg'
. btcpay-setup.sh -i
```
## I deployed before `btcpay-setup.sh` existed (before May 17, 2018), can I migrate to this new system?
Yes, run the following commands to update:
```bash
sudo su -
cd $DOWNLOAD_ROOT/btcpayserver-docker
git checkout master
git pull
git checkout 9acb5d8067cb5c46f59858137feb699b41ac9f19
btcpay-update.sh
. ./btcpay-setup.sh -i
git checkout master
btcpay-update.sh
exit
```
## I'm getting an error on Windows: `Cannot create container for service docker: Mount denied`?
If you see this error:
`Cannot create container for service docker: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'`.
Run this in [powershell](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/starting-windows-powershell):
```powershell
$Env:COMPOSE_CONVERT_WINDOWS_PATHS=1
```
Then, run `docker-compose -f EXAMPLE.yml up`.
This bug comes from Docker for Windows and is [tracked on Github](https://github.com/docker/for-win/issues/1829).
## How I can prune my node(s)?
This will prune your Bitcoin full node to a maximum of 100GB (of blocks):
@ -457,7 +480,8 @@ First, copy [opt-save-storage](docker-compose-generator/docker-fragments/opt-sav
Modify the new `opt-save-storage.custom.yml` file to your taste:
```diff
@@ -14,8 +14,7 @@ services:
@@ -14,8 +14,7 @@ version: "3"
services:
bitcoind:
environment:
- BITCOIN_EXTRA_ARGS: prune=100000
@ -572,7 +596,3 @@ SET search_path TO "BTCPayServer.Plugins.MyPlugin", public;
# table list now also shows the MyPlugin tables
\dt
```
## How do I upgrade my BTCPay Server docker?
Run the script `./btcpay-update.sh` and patiently wait for your server to be upgraded.

View File

@ -14,8 +14,9 @@ Some of the benefits of using Traefik over NGinx are:
- `BTCPAYGEN_REVERSEPROXY` to `traefik`.
- `LETSENCRYPT_EMAIL`: Optional, The email Let's Encrypt will use to notify you about certificate expiration.
- `BTCPAYGEN_ADDITIONAL_FRAGMENTS`: Add `traefik`
- `BTCPAY_ADDITIONAL_HOSTS`: Traefik can not accept list of hosts. Add additional hosts in a new file named e.g. `btcpayserver-traefic.custom.yml`:
- `BTCPAY_ADDITIONAL_HOSTS`: Traefic can not accept list of hosts. Add additional hosts in a new file named e.g. `btcpayserver-traefic.custom.yml`:
```
version: "3"
services:
btcpayserver:
labels:

View File

@ -1 +0,0 @@
docker exec -it btcpayserver_beldexd beldex-wallet-cli $args

View File

@ -1,3 +0,0 @@
#!/bin/bash
docker exec -it btcpayserver_beldexd beldex-wallet-cli "$@"

View File

@ -8,7 +8,7 @@ case "$1" in
disable-multifactor)
query "DELETE FROM \"U2FDevices\" WHERE \"ApplicationUserId\" = (SELECT \"Id\" FROM \"AspNetUsers\" WHERE upper('$2') = \"NormalizedEmail\")"
query "DELETE FROM \"Fido2Credentials\" WHERE \"ApplicationUserId\" = (SELECT \"Id\" FROM \"AspNetUsers\" WHERE upper('$2') = \"NormalizedEmail\")"
query "UPDATE public.\"AspNetUsers\" SET \"TwoFactorEnabled\"=false WHERE upper('$2') = \"NormalizedEmail\""
query "UPDATE public.\"AspNetUsers\" SET \"TwoFactorEnabled\"=false WHERE upper('\$2') = \"NormalizedEmail\""
;;
set-user-admin)
query "INSERT INTO \"AspNetUserRoles\" Values ( (SELECT \"Id\" FROM \"AspNetUsers\" WHERE upper('$2') = \"NormalizedEmail\"), (SELECT \"Id\" FROM \"AspNetRoles\" WHERE \"NormalizedName\"='SERVERADMIN'))"

View File

@ -96,28 +96,19 @@ echo " Archiving files in $(pwd)…"
{
tar \
--exclude="volumes/backup_datadir" \
--exclude="volumes/generated_btcpay_datadir/_data/host_*" \
--exclude="volumes/generated_bitcoin_datadir/_data" \
--exclude="volumes/generated_litecoin_datadir/_data" \
--exclude="volumes/generated_mwebd_datadir" \
--exclude="volumes/generated_elements_datadir/_data" \
--exclude="volumes/generated_xmr_data/_data" \
--exclude="volumes/generated_bdx_data/_data" \
--exclude="volumes/generated_dogecoin_datadir/_data/blocks" \
--exclude="volumes/generated_dogecoin_datadir/_data/chainstate" \
--exclude="volumes/generated_dash_datadir/_data/blocks" \
--exclude="volumes/generated_dash_datadir/_data/chainstate" \
--exclude="volumes/generated_dash_datadir/_data/indexes" \
--exclude="volumes/generated_dash_datadir/_data/debug.log" \
--exclude="volumes/generated_dash_datadir/_data/evodb" \
--exclude="volumes/generated_mariadb_datadir" \
--exclude="volumes/generated_postgres_datadir" \
--exclude="volumes/generated_electrumx_datadir" \
--exclude="volumes/generated_lnd_bitcoin_datadir/_data/data/graph" \
--exclude="volumes/generated_clightning_bitcoin_datadir/_data/lightning-rpc" \
--exclude="volumes/generated_lwd-cache" \
--exclude="volumes/generated_zebrad-cache" \
--exclude="volumes/generated_zec_data" \
--exclude="**/logs/*" \
-cvzf $backup_path $postgres_dump_name $mariadb_dump_name volumes/generated_*
echo "✅ Archive done."

View File

@ -81,7 +81,6 @@ Or, if you want to offload SSL because you have an existing web proxy, change RE
Environment variables:
BTCPAY_HOST: The hostname of your website (eg. btcpay.example.com)
BTCPAY_LIGHTNING_HOST: The hostname announced for your node on the lightning network (by default, the BTCPAY_HOST will be used)
REVERSEPROXY_HTTP_PORT: The port the reverse proxy binds to for public HTTP requests. Default: 80
REVERSEPROXY_HTTPS_PORT: The port the reverse proxy binds to for public HTTPS requests. Default: 443
REVERSEPROXY_DEFAULT_HOST: Optional, if using a reverse proxy nginx, specify which website should be presented if the server is accessed by its IP.
@ -97,8 +96,7 @@ Environment variables:
ACME_CA_URI: The API endpoint to ask for HTTPS certificate (default: production)
BTCPAY_ENABLE_SSH: Optional, gives BTCPay Server SSH access to the host by allowing it to edit authorized_keys of the host, it can be used for managing the authorized_keys or updating BTCPay Server directly through the website. (Default: false)
BTCPAYGEN_DOCKER_IMAGE: Allows you to specify a custom docker image for the generator (Default: btcpayserver/docker-compose-generator)
BTCPAY_IMAGE: Allows you to specify the btcpayserver docker image to use over the default version. (Default: current stable version of btcpayserver, eg. btcpayserver/btcpayserver:version)
BTCPAY_UPDATE_CLEAN: Clean (prune) all old BTCPayServer images after an update. WARNING: also removes all non-BTCPayServer images! (default: true)
BTCPAY_IMAGE: Allows you to specify the btcpayserver docker image to use over the default version. (Default: current stable version of btcpayserver)
BTCPAY_PROTOCOL: Allows you to specify the external transport protocol of BTCPayServer. (Default: https)
BTCPAY_ADDITIONAL_HOSTS: Allows you to specify additional domains to your BTCPayServer with https support if enabled. (eg. example2.com,example3.com)
Add-on specific variables:
@ -106,6 +104,7 @@ Add-on specific variables:
ZAMMAD_HOST: If zammad is activated with opt-add-zammad, the hostname of your zammad website (eg. zammad.example.com)
WOOCOMMERCE_HOST: If woocommerce is activated with opt-add-woocommerce, the hostname of your woocommerce website (eg. store.example.com)
BTCPAYGEN_EXCLUDE_FRAGMENTS: Semicolon-separated list of fragments you want to forcefully exclude (eg. litecoin-clightning)
BTCTRANSMUTER_HOST: If btc transmuter is activated with opt-add-btctransmuter, the hostname of your btc transmuter website (eg. store.example.com)
TOR_RELAY_NICKNAME: If tor relay is activated with opt-add-tor-relay, the relay nickname
TOR_RELAY_EMAIL: If tor relay is activated with opt-add-tor-relay, the email for Tor to contact you regarding your relay
CHATWOOT_HOST: If chatwoot is activated with opt-add-chatwoot, the hostname of your chatwoot website (eg. store.example.com)
@ -183,10 +182,17 @@ if [ ! -z "$BTCPAY_ADDITIONAL_HOSTS" ] && [[ "$BTCPAY_ADDITIONAL_HOSTS" == .onio
echo "$BTCPAY_ADDITIONAL_HOSTS should not contain onion hosts, additional hosts is only for getting https certificates, those are not available to tor addresses"
return;
fi
######### Migration: old pregen environment to new environment ############
if [[ ! -z $BTCPAY_DOCKER_COMPOSE ]] && [[ ! -z $DOWNLOAD_ROOT ]] && [[ -z $BTCPAYGEN_OLD_PREGEN ]]; then
echo "Your deployment is too old, you need to migrate by following instructions on this link https://docs.btcpayserver.org/Docker/#i-deployed-before-btcpay-setup-sh-existed-before-may-17-2018-can-i-migrate-to-this-new-system"
return
fi
#########################################################
[[ $LETSENCRYPT_EMAIL == *@example.com ]] && echo "LETSENCRYPT_EMAIL ends with @example.com, setting to empty email instead" && LETSENCRYPT_EMAIL=""
: "${LETSENCRYPT_EMAIL:=}"
: "${BTCPAYGEN_OLD_PREGEN:=false}"
: "${NBITCOIN_NETWORK:=mainnet}"
: "${BTCPAYGEN_CRYPTO1:=btc}"
: "${BTCPAYGEN_REVERSEPROXY:=nginx}"
@ -200,12 +206,22 @@ fi
: "${BTCPAY_ENABLE_SSH:=false}"
: "${PIHOLE_SERVERIP:=}"
: "${CLOUDFLARE_TUNNEL_TOKEN:=}"
: "${BTCPAY_UPDATE_CLEAN:=true}"
OLD_BTCPAY_DOCKER_COMPOSE="$BTCPAY_DOCKER_COMPOSE"
ORIGINAL_DIRECTORY="$(pwd)"
BTCPAY_BASE_DIRECTORY="$(dirname "$(pwd)")"
BTCPAY_DOCKER_COMPOSE="$(pwd)/Generated/docker-compose.generated.yml"
if [[ "$BTCPAYGEN_OLD_PREGEN" == "true" ]]; then
if [[ $(dirname $BTCPAY_DOCKER_COMPOSE) == *Production ]]; then
BTCPAY_DOCKER_COMPOSE="$(pwd)/Production/docker-compose.generated.yml"
elif [[ $(dirname $BTCPAY_DOCKER_COMPOSE) == *Production-NoReverseProxy ]]; then
BTCPAY_DOCKER_COMPOSE="$(pwd)/Production-NoReverseProxy/docker-compose.generated.yml"
else
BTCPAY_DOCKER_COMPOSE="$(pwd)/Production/docker-compose.generated.yml"
fi
else # new deployments must be in Generated
BTCPAY_DOCKER_COMPOSE="$(pwd)/Generated/docker-compose.generated.yml"
fi
BTCPAY_ENV_FILE="$BTCPAY_BASE_DIRECTORY/.env"
@ -266,7 +282,6 @@ echo "
Parameters passed:
BTCPAY_PROTOCOL:$BTCPAY_PROTOCOL
BTCPAY_HOST:$BTCPAY_HOST
BTCPAY_LIGHTNING_HOST: $BTCPAY_LIGHTNING_HOST
BTCPAY_ADDITIONAL_HOSTS:$BTCPAY_ADDITIONAL_HOSTS
REVERSEPROXY_HTTP_PORT:$REVERSEPROXY_HTTP_PORT
REVERSEPROXY_HTTPS_PORT:$REVERSEPROXY_HTTPS_PORT
@ -295,7 +310,6 @@ BTCPAYGEN_LIGHTNING:$BTCPAYGEN_LIGHTNING
BTCPAYGEN_ADDITIONAL_FRAGMENTS:$BTCPAYGEN_ADDITIONAL_FRAGMENTS
BTCPAYGEN_EXCLUDE_FRAGMENTS:$BTCPAYGEN_EXCLUDE_FRAGMENTS
BTCPAY_IMAGE:$BTCPAY_IMAGE
BTCPAY_UPDATE_CLEAN:$BTCPAY_UPDATE_CLEAN
ACME_CA_URI:$ACME_CA_URI
TOR_RELAY_NICKNAME: $TOR_RELAY_NICKNAME
TOR_RELAY_EMAIL: $TOR_RELAY_EMAIL
@ -306,6 +320,7 @@ Additional exported variables:
BTCPAY_DOCKER_COMPOSE=$BTCPAY_DOCKER_COMPOSE
BTCPAY_BASE_DIRECTORY=$BTCPAY_BASE_DIRECTORY
BTCPAY_ENV_FILE=$BTCPAY_ENV_FILE
BTCPAYGEN_OLD_PREGEN=$BTCPAYGEN_OLD_PREGEN
BTCPAY_SSHKEYFILE=$BTCPAY_SSHKEYFILE
BTCPAY_SSHAUTHORIZEDKEYS=$BTCPAY_SSHAUTHORIZEDKEYS
BTCPAY_HOST_SSHAUTHORIZEDKEYS:$BTCPAY_HOST_SSHAUTHORIZEDKEYS
@ -331,6 +346,7 @@ touch "$BASH_PROFILE_SCRIPT"
echo "
#!/bin/bash
export COMPOSE_HTTP_TIMEOUT=\"180\"
export BTCPAYGEN_OLD_PREGEN=\"$BTCPAYGEN_OLD_PREGEN\"
export BTCPAYGEN_CRYPTO1=\"$BTCPAYGEN_CRYPTO1\"
export BTCPAYGEN_CRYPTO2=\"$BTCPAYGEN_CRYPTO2\"
export BTCPAYGEN_CRYPTO3=\"$BTCPAYGEN_CRYPTO3\"
@ -410,6 +426,17 @@ if ! [[ -x "$(command -v docker)" ]] || ! [[ -x "$(command -v docker-compose)" ]
fi
docker_update
if ! [[ -x "$(command -v docker-compose)" ]]; then
if ! [[ "$OSTYPE" == "darwin"* ]] && $HAS_DOCKER; then
echo "Trying to install docker-compose by using the btcpayserver/docker-compose ($(uname -m))"
! [[ -d "dist" ]] && mkdir dist
docker run --rm -v "$(pwd)/dist:/dist" btcpayserver/docker-compose:1.28.6
mv dist/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
rm -rf "dist"
fi
fi
fi
if $HAS_DOCKER; then
@ -432,6 +459,10 @@ if $HAS_DOCKER; then
fi
fi
if [[ "$BTCPAYGEN_OLD_PREGEN" == "true" ]]; then
cp Generated/docker-compose.generated.yml $BTCPAY_DOCKER_COMPOSE
fi
# Schedule for reboot
if $STARTUP_REGISTER && [[ -x "$(command -v systemctl)" ]]; then
# Use systemd

View File

@ -13,6 +13,16 @@ fi
. ${BASH_PROFILE_SCRIPT}
if [ ! -z $BTCPAY_DOCKER_COMPOSE ] && [ ! -z $DOWNLOAD_ROOT ] && [ -z $BTCPAYGEN_OLD_PREGEN ]; then
echo "Your deployment is too old, you need to migrate by following instructions on this link https://github.com/btcpayserver/btcpayserver-docker/tree/master#i-deployed-before-btcpay-setupsh-existed-before-may-17-can-i-migrate-to-this-new-system"
exit
fi
if [[ $BTCPAY_DOCKER_COMPOSE != *docker-compose.generated.yml ]]; then
echo "Your deployment is too old, you need to migrate by following instructions on this link https://github.com/btcpayserver/btcpayserver-docker/tree/master#i-deployed-before-btcpay-setupsh-existed-before-may-17-can-i-migrate-to-this-new-system"
exit
fi
cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
if [[ "$1" != "--skip-git-pull" ]]; then
@ -29,14 +39,16 @@ if ! [ -f "/etc/docker/daemon.json" ] && [ -w "/etc/docker" ]; then
echo "Setting limited log files in /etc/docker/daemon.json"
fi
. helpers.sh
docker_update
if ! ./build.sh; then
echo "Failed to generate the docker-compose"
exit 1
fi
if [ "$BTCPAYGEN_OLD_PREGEN" == "true" ]; then
cp Generated/docker-compose.generated.yml $BTCPAY_DOCKER_COMPOSE
cp Generated/torrc.tmpl "$(dirname "$BTCPAY_DOCKER_COMPOSE")/torrc.tmpl"
fi
if ! grep -Fxq "export COMPOSE_HTTP_TIMEOUT=\"180\"" "$BASH_PROFILE_SCRIPT"; then
echo "export COMPOSE_HTTP_TIMEOUT=\"180\"" >> "$BASH_PROFILE_SCRIPT"
export COMPOSE_HTTP_TIMEOUT=180
@ -55,6 +67,8 @@ if [[ "$ACME_CA_URI" == "https://acme-staging.api.letsencrypt.org/directory" ]];
echo "Info: Rewriting ACME_CA_URI from $original_acme to $ACME_CA_URI"
fi
. helpers.sh
docker_update
install_tooling
if $BTCPAY_ENABLE_SSH && [[ "$BTCPAY_SSHKEYFILE" == "/datadir/host_id_rsa" ]]; then
@ -65,7 +79,4 @@ btcpay_update_docker_env
btcpay_up
set +e
if [ "$BTCPAY_UPDATE_CLEAN" == true ]; then
./btcpay-clean.sh
fi
exit 0
docker image prune -af --filter "label!=org.btcpayserver.image=docker-compose-generator"

View File

@ -2,8 +2,8 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>12</LangVersion>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>8</LangVersion>
<StartupObject>DockerFileBuildHelper.Program</StartupObject>
</PropertyGroup>
<ItemGroup>

View File

@ -1,4 +1,8 @@
namespace DockerFileBuildHelper
using System;
using System.Collections.Generic;
using System.Text;
namespace DockerFileBuildHelper
{
public class DockerInfo
{
@ -9,7 +13,6 @@
public string GitLink { get; set; }
public string GitRef { get; set; }
public bool SupportedByUs { get; set; }
public bool Deprecated { get; set; }
public Image Image { get; internal set; }
public string RawLink { get; set; }
public string GetGithubLinkOf(string path)

View File

@ -39,11 +39,9 @@ namespace DockerFileBuildHelper
foreach (var image in new[]
{
Image.Parse("btcpayserver/docker-compose-generator"),
Image.Parse("btcpayserver/docker-compose:1.28.6"),
}.Concat(GetImages(fragmentDirectory)))
{
// TODO: Ask beldex guys
if (image.Name == "beldex")
continue;
Console.WriteLine($"Image: {image.ToString()}");
var info = GetDockerInfo(image);
if (info == null)
@ -161,7 +159,6 @@ namespace DockerFileBuildHelper
dockerInfos = dockerInfos.OrderBy(i => i.Image.Source).ToList();
foreach (var image in dockerInfos)
{
if (image.Deprecated) continue;
tb.Append($"| {image.Image.ToString(false)} | {image.Image.Tag} |");
if (!string.IsNullOrEmpty(image.DockerFilePath))
{
@ -236,9 +233,9 @@ namespace DockerFileBuildHelper
{
case "pihole":
dockerInfo.GitLink = "https://github.com/pi-hole/docker-pi-hole";
dockerInfo.DockerFilePath = $"src/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"src/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"src/Dockerfile";
dockerInfo.DockerFilePath = $"Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
dockerInfo.GitRef = $"{image.Tag}";
dockerInfo.SupportedByUs = true;
break;
@ -258,9 +255,9 @@ namespace DockerFileBuildHelper
dockerInfo.SupportedByUs = true;
break;
case "cloudflared":
dockerInfo.DockerFilePath = $"Cloudflared/{NoRevision(image.Tag)}/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = dockerInfo.DockerFilePath;
dockerInfo.DockerFilePathARM64v8 = dockerInfo.DockerFilePath;
dockerInfo.DockerFilePath = $"Cloudflared/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Cloudflared/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Cloudflared/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
dockerInfo.GitRef = $"Cloudflared/{image.Tag}";
dockerInfo.SupportedByUs = true;
@ -287,29 +284,13 @@ namespace DockerFileBuildHelper
dockerInfo.SupportedByUs = true;
break;
case "docker-compose-generator":
dockerInfo.DockerFilePath = "docker-compose-generator/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "docker-compose-generator/Dockerfile";
dockerInfo.DockerFilePath = "docker-compose-generator/linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "docker-compose-generator/linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver-docker";
dockerInfo.GitRef = $"dcg-latest";
dockerInfo.SupportedByUs = true;
break;
case "shopify-app-deployer":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/shopify-app";
dockerInfo.GitRef = image.Tag;
dockerInfo.SupportedByUs = true;
break;
case "mwebd":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.GitLink = "https://github.com/ltcmweb/btcpayserver-ltcmweb-plugin";
dockerInfo.GitRef = "main";
dockerInfo.SupportedByUs = false;
break;
case "tallycoin_connect":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.arm32v7";
@ -338,18 +319,10 @@ namespace DockerFileBuildHelper
dockerInfo.GitLink = "https://github.com/Vutov/docker-bitcoin";
dockerInfo.GitRef = "master";
break;
case "snapdrop":
dockerInfo.DockerFilePath = $"Snapdrop/{image.Tag}/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Snapdrop/{image.Tag}/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Snapdrop/{image.Tag}/Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
dockerInfo.GitRef = $"Snapdrop/{image.Tag}";
dockerInfo.SupportedByUs = true;
break;
case "lightning":
dockerInfo.DockerFilePath = $"Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "contrib/docker/linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "contrib/docker/linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/lightning";
dockerInfo.GitRef = $"basedon-{image.Tag}";
dockerInfo.SupportedByUs = true;
@ -425,32 +398,6 @@ namespace DockerFileBuildHelper
dockerInfo.GitLink = "https://github.com/ChekaZ/docker";
dockerInfo.GitRef = "master";
break;
case "phoenixd":
dockerInfo.DockerFilePath = ".docker/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = ".docker/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = ".docker/Dockerfile";
dockerInfo.GitLink = "https://github.com/ACINQ/phoenixd";
dockerInfo.GitRef = $"v{image.Tag}";
dockerInfo.SupportedByUs = false;
break;
case "lightwalletd":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.GitLink = "https://github.com/zcash/lightwalletd";
dockerInfo.GitRef = $"master";
dockerInfo.SupportedByUs = false;
break;
case "zebra":
dockerInfo.DockerFilePath = "docker/Dockerfile";
dockerInfo.GitLink = "https://github.com/ZcashFoundation/zebra";
dockerInfo.GitRef = $"main";
dockerInfo.SupportedByUs = false;
break;
case "zcash-walletd":
dockerInfo.DockerFilePath = "docker/Dockerfile";
dockerInfo.GitLink = "https://github.com/elemental-pay/zcash-walletd";
dockerInfo.GitRef = $"feat/data-config";
dockerInfo.SupportedByUs = false;
break;
case "lnd":
dockerInfo.DockerFilePath = "linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
@ -466,9 +413,9 @@ namespace DockerFileBuildHelper
dockerInfo.SupportedByUs = false;
break;
case "monero":
dockerInfo.DockerFilePath = $"Monero/{NoRevision(image.Tag)}/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Monero/{NoRevision(image.Tag)}/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Monero/{NoRevision(image.Tag)}/Dockerfile";
dockerInfo.DockerFilePath = $"Monero/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Monero/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Monero/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
dockerInfo.GitRef = $"Monero/{image.Tag}";
dockerInfo.SupportedByUs = true;
@ -484,17 +431,6 @@ namespace DockerFileBuildHelper
dockerInfo.SupportedByUs = true;
break;
}
case "bitcoinknots":
{
var tagNoRevision = image.Tag.Split('-').First();
dockerInfo.DockerFilePath = $"BitcoinKnots/{tagNoRevision}/linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"BitcoinKnots/{tagNoRevision}/linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"BitcoinKnots/{tagNoRevision}/linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
dockerInfo.GitRef = $"BitcoinKnots/{image.Tag}";
dockerInfo.SupportedByUs = true;
break;
}
case "elements":
{
var tagNoRevision = image.Tag.Split('-').First();
@ -520,25 +456,26 @@ namespace DockerFileBuildHelper
dockerInfo.GitRef = $"Dash/{image.Tag}";
break;
case "btcpayserver":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.DockerFilePath = "amd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver";
dockerInfo.GitRef = $"v{image.Tag}";
// v1.0.5.4$<BTCPAY_BUILD_CONFIGURATION>
dockerInfo.GitRef = $"v{image.Tag.Substring(0, image.Tag.IndexOf('$'))}";
dockerInfo.SupportedByUs = true;
break;
case "rtl":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.DockerFilePath = "dockerfiles/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "dockerfiles/Dockerfile.arm32v7";
dockerInfo.DockerFilePathARM64v8 = "dockerfiles/Dockerfile.arm64v8";
dockerInfo.GitLink = "https://github.com/Ride-The-Lightning/RTL";
dockerInfo.GitRef = $"{image.Tag}";
dockerInfo.GitRef = $"v{image.Tag}";
dockerInfo.SupportedByUs = true;
break;
case "nbxplorer":
dockerInfo.DockerFilePath = "Dockerfile";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.DockerFilePath = "Dockerfile.linuxamd64";
dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile.linuxarm64v8";
dockerInfo.GitLink = "https://github.com/dgarage/nbxplorer";
dockerInfo.GitRef = $"v{image.Tag}";
dockerInfo.SupportedByUs = true;
@ -599,25 +536,25 @@ namespace DockerFileBuildHelper
dockerInfo.GitRef = "master";
break;
case "nginx":
dockerInfo.DockerFilePath = $"stable/debian/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"stable/debian/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"stable/debian/Dockerfile";
dockerInfo.DockerFilePath = $"stable/stretch/Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"stable/stretch/Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"stable/stretch/Dockerfile";
dockerInfo.GitLink = "https://github.com/nginxinc/docker-nginx";
dockerInfo.GitRef = "1.23.2"; // In reality we are on 1.23.3, but they didn't published yet
dockerInfo.GitRef = image.Tag;
dockerInfo.SupportedByUs = true;
break;
case "docker-gen":
dockerInfo.DockerFilePath = $"Dockerfile.alpine";
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.alpine";
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile.alpine";
dockerInfo.DockerFilePath = $"linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/docker-gen";
dockerInfo.GitRef = $"{image.Tag}";
dockerInfo.GitRef = $"v{image.Tag}";
dockerInfo.SupportedByUs = true;
break;
case "letsencrypt-nginx-proxy-companion":
dockerInfo.DockerFilePath = $"Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
dockerInfo.DockerFilePath = $"linuxamd64.Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
dockerInfo.GitLink = "https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion";
dockerInfo.GitRef = $"v{image.Tag}";
dockerInfo.SupportedByUs = true;
@ -674,7 +611,7 @@ namespace DockerFileBuildHelper
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
dockerInfo.GitLink = "https://github.com/apotdevin/thunderhub";
dockerInfo.GitRef = $"v{image.Tag.Split('-')[1]}";
dockerInfo.GitRef = $"{image.Tag.Split('-')[1]}";
dockerInfo.SupportedByUs = false;
break;
case "python-teos":
@ -685,12 +622,6 @@ namespace DockerFileBuildHelper
dockerInfo.GitRef = $"master";
dockerInfo.SupportedByUs = false;
break;
case "benjaminchodroff/rust-teos":
dockerInfo.DockerFilePath = $"docker/Dockerfile";
dockerInfo.GitLink = "https://github.com/benjaminchodroff/rust-teos";
dockerInfo.GitRef = $"master";
dockerInfo.SupportedByUs = false;
break;
case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-postgresql-"):
dockerInfo.DockerFilePath = $"containers/zammad-postgresql/Dockerfile";
dockerInfo.GitLink = "https://github.com/zammad/zammad-docker-compose";
@ -712,7 +643,7 @@ namespace DockerFileBuildHelper
case "memcached" when image.Tag.EndsWith("alpine"):
dockerInfo.DockerFilePath = $"alpine/Dockerfile";
dockerInfo.GitLink = "https://github.com/docker-library/memcached";
dockerInfo.GitRef = $"eb38bf28263b8e5bb7367797cb7b181b65d769bd";
dockerInfo.GitRef = $"master";
dockerInfo.SupportedByUs = false;
break;
case "bwt":
@ -737,7 +668,6 @@ namespace DockerFileBuildHelper
dockerInfo.GitLink = "https://github.com/BlueWallet/LndHub";
dockerInfo.GitRef = $"{image.Tag.Split("@")[0]}";
dockerInfo.SupportedByUs = false;
dockerInfo.Deprecated = true;
break;
case "fireflyiii/core":
dockerInfo.DockerFilePath = $"Dockerfile";
@ -788,6 +718,13 @@ namespace DockerFileBuildHelper
dockerInfo.GitLink = "https://github.com/mempool/mempool";
dockerInfo.GitRef = image.Tag;
break;
case "lncapital/torq":
dockerInfo.DockerFilePath = $"Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
dockerInfo.GitLink = "https://github.com/lncapital/torq";
dockerInfo.GitRef = "v" + image.Tag;
break;
case "timescale/timescaledb":
dockerInfo.DockerFilePath = $"Dockerfile";
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
@ -795,13 +732,6 @@ namespace DockerFileBuildHelper
dockerInfo.GitLink = "https://github.com/timescale/timescaledb-docker";
dockerInfo.GitRef = "main";
break;
case "ghcr.io/bisoncraft/decred":
dockerInfo.DockerFilePath = $"Dockerfile.decred";
//dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.decred";
//dockerInfo.DockerFilePathARM64v8 = $"Dockerfile.decred";
dockerInfo.GitLink = "https://github.com/bisoncraft/btcpayserver-decred-plugin";
dockerInfo.GitRef = $"v{image.Tag}";
break;
default:
if (firstTry)
{

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,7 @@ Current UTXO Set snapshots only work for Bitcoin Core 0.17.0 or higher. Do NOT u
## How does Fast Sync solve the problem?
For Bitcoin software to operate, you do not need all the history of blocks from the genesis.
For Bitcoin software to operate, you do not need all the history of blocks from the genesis.
You need the state of Bitcoin up to a certain block (this state is called `UTXO Set`), and around ~300 blocks before this point.
@ -29,10 +29,9 @@ When your node starts up again, with the `UTXO Set snapshot` it will only need t
### Malicious UTXO Set
Fast Sync can potentially get abused:
1. The attacker gives you a `UTXO Set snapshot`, which does not follow Bitcoin consensus.
2. The attacker makes a purchase to your store.
3. Nodes following the consensus would not recognize the payment as valid, but your node will.
2. The attacker makes a purchase to your store.
3. Nodes following the consensus would not recognize the payment as valid, but your node will.
4. The coins the attacker sent you are just worthless.
Other attacks can completely bring down your node.
@ -53,57 +52,64 @@ If this is a problem for you, use an older snapshot.
The snapshots recognized as valid by the `btcpayserver-docker` repository you've cloned, can be found on [utxo-sets](utxo-sets).
When you SSH into your new Sync BTCPay Server (by the use of Putty, for example), the first thing you have to do is become `root`.
When you SSH into your new Sync BTCPay Server (by the use of Putty, for example), the first thing you have to do is become `root`.
```bash
sudo su -
sudo -i
```
Before you start the [load-utxo-set.sh](load-utxo-set.sh), you must bring down your BTCPay Server.
Before you start the [load-utxo-set.sh](load-utxo-set.sh), you must bring down your BTCPay Server.
In the `btcpayserver-docker` directory you run `btcpay-down.sh` to bring down your instance.
When in `~/btcpayserver-docker` you run `btcpay-down.sh` to bring down your instance.
```bash
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker
cd btcpayserver-docker
./btcpay-down.sh
```
![BTCPay Server FastSync](../../docs/img/fastsync/btcpayfastsync1.jpg)
![BTCPay Server FastSync](../../docs/img/fastsync/btcpayfastsync1.jpg)
After you've shut down BTCPay Server, you now go into the FastSync directory and run the `load-utxo-set.sh` script:
After you've shut down BTCPay Server, you now go into the `~/btcpayserver-docker/contrib/FastSync/` directory.
If you want to be sure you're in the correct directory, hit the `ls` command after the `cd contrib/FastSync`
```bash
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker/contrib/FastSync
./load-utxo-set.sh
cd contrib/FastSync
ls
```
The script [load-utxo-set.sh](load-utxo-set.sh) will download the utxo-set from the environment variable `UTXO_DOWNLOAD_LINK`.
If `UTXO_DOWNLOAD_LINK` is empty, `NBITCOIN_NETWORK` (with value set to `mainnet` or `testnet`) will be used to take a default `UTXO_DOWNLOAD_LINK` that we hard coded inside [load-utxo-set.sh](load-utxo-set.sh).
```bash
./load-utxo-set.sh
```
![BTCPay Server FastSync](../../docs/img/fastsync/btcpayfastsync2.jpg)
Once the files are downloaded, the hash will be checked against those in [utxo-sets](utxo-sets).
![BTCPay Server FastSync](../../docs/img/fastsync/btcpayfastsync3.jpg)
After the [load-utxo-set.sh](load-utxo-set.sh) is done, you will be warned, and asked to delete the docker volume `generated_bitcoin_wallet_datadir`.
This will be recreated when we now run the `btcpay-up.sh` script.
This will be recreated when we now run the `btcpay-up.sh` script.
```bash
docker volume rm generated_bitcoin_wallet_datadir
```
Now go back to the `btcpayserver-docker` directory, and let's restart your Server with `./btcpay-up.sh` to sync the rest!
Now go back to `~/btcpayserver-docker` directory, and let's restart your Server with `./btcpay-up.sh` to sync the rest!
```bash
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker
cd ../../
./btcpay-up.sh
```
The rest of the Sync will take place on your BTCPay Server until it reaches the latest block height.
The rest of the Sync will take place on your BTCPay Server until it reaches the latest block height.
You can either follow this process in the UI of the BTCPay Server or run the following command in the CLI. This will show you the latest log output and the current block height of your `Fast Sync` node.
You can either follow this process in the UI of the BTCPay Server or run the following command in the CLI. This will show you the latest log output and the current block height of your `Fast Sync` node.
```bash
docker logs --tail -100 btcpayserver_bitcoind
@ -126,11 +132,10 @@ If you don't trust anybody, which should be the case as much as possible, then h
3. Wait for `Synchy` to be fully synced.
4. Now on, `Synchy` and `Trusty` run the following command at the same time:
If `Synchy` or `Trusty` are both using BTCPay Server, go to the `btcpayserver-docker` directory and use:
If `Synchy` or `Trusty` are both using BTCPay Server, go to `~/btcpayserver-docker/` and use:
```bash
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker
./bitcoin-cli.sh gettxoutsetinfo
bitcoin-cli.sh gettxoutsetinfo
```
Or use if non BTCPay Server node :
@ -139,7 +144,7 @@ Or use if non BTCPay Server node :
bitcoin-cli gettxoutsetinfo
```
Running this command might take some time, and nothing will show up in the terminal in the meantime.
Running this command might take some time, and nothing will show up in the terminal in the meantime.
5. Verify that the output of `Synchy` and `Trusty` are identical (you can ignore `disk_size`).
@ -154,11 +159,9 @@ Running this command might take some time, and nothing will show up in the termi
This repository contains the signatures of some developers, for example [sigs/NicolasDorier.utxo-sets.asc](sigs/NicolasDorier.utxo-sets.asc) contains the hashes that `NicolasDorier` verified himself.
You need to verify with [KeyBase command line](https://keybase.io/docs/command_line) that the signature is legit:
```bash
keybase pgp verify -i sigs/NicolasDorier.utxo-sets.asc
```
If you don't like command line, you can verify against [keybase verify page](https://keybase.io/verify) by just copying and pasting the content of [sigs/NicolasDorier.utxo-sets.asc](sigs/NicolasDorier.utxo-sets.asc).
You can verify that the handle `NicolasDorier` refers to the person who controls `NicolasDorier` Twitter, GitHub, and Reddit handle on [the keybase profile page](https://keybase.io/NicolasDorier).
@ -168,7 +171,6 @@ You can verify that the handle `NicolasDorier` refers to the person who controls
:::
## FAQ
### Can I add my signature to this repository?
If you are a bitcoin developer or public figure, feel free to add your signature. For this, you need:
@ -179,20 +181,19 @@ If you are a bitcoin developer or public figure, feel free to add your signature
4. Run the following command line
```bash
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker/contrib/FastSync
# Assuming you are inside the FastSync directory
keybase pgp sign -i YOU.utxo-sets -c -t -o sigs/YOU.utxo-sets.asc
rm YOU.utxo-sets
git add sigs/YOU.utxo-sets.asc
git commit -m "Add YOU utxo-set signature" --all
```
And make a pull request to `btcpayserver-docker` repository.
### Where can I download UTXO set snapshots
You should not need to do this because [load-utxo-set.sh](load-utxo-set.sh) will do the hard work for you.
You should not need to do this because [load-utxo-set.sh](load-utxo-set.sh) will do the hard work for you.
But if you want, browse on [this listing](http://utxosets.blob.core.windows.net/public?restype=container&comp=list&include=metadata).
But if you want, browse on [this listing](http://utxosets.blob.core.windows.net/public?restype=container&comp=list&include=metadata).
Select the snapshot you want, and download it by querying `http://utxosets.blob.core.windows.net/public/{blobName}`.
@ -200,9 +201,8 @@ Select the snapshot you want, and download it by querying `http://utxosets.blob.
Assuming you have a node running on a docker deployment of BTCPay Server, you need to run [save-utxo-set.sh](save-utxo-set.sh).
This script shows the steps to create an archive of the current UTXO Set
It will:
This script shows the steps to create an archive of the current UTXO Set
It will:
1. Shutdown BTCPay Server
2. Start bitcoind
3. Prune it to up to 289 blocks from the tip

View File

@ -32,15 +32,15 @@ if ! [[ "$BTCPAYGEN_ADDITIONAL_FRAGMENTS" == *"opt-save-storage"* ]]; then
echo "Pruning must be enabled, please update BTCPAYGEN_ADDITIONAL_FRAGMENTS by running:"
echo ""
echo 'BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;opt-save-storage-s"'
echo '. btcpay-setup.sh -i'
echo '. btcpay-setup -i'
exit 1
fi
TAR_FILE="$1"
if ! [[ "$UTXO_DOWNLOAD_LINK" ]]; then
[[ $NBITCOIN_NETWORK == "mainnet" ]] && UTXO_DOWNLOAD_LINK="https://snapshots.btcpay.tech/utxo-snapshot-bitcoin-mainnet-867690.tar"
[[ $NBITCOIN_NETWORK == "testnet" ]] && UTXO_DOWNLOAD_LINK="https://eu2.contabostorage.com/1f50a74c9dc14888a8664415dad3d020:utxosets/utxo-snapshot-bitcoin-testnet-1445586.tar"
[[ $NBITCOIN_NETWORK == "mainnet" ]] && UTXO_DOWNLOAD_LINK="http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-mainnet-769818.tar"
[[ $NBITCOIN_NETWORK == "testnet" ]] && UTXO_DOWNLOAD_LINK="http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-testnet-1445586.tar"
fi
if ! [[ "$UTXO_DOWNLOAD_LINK" ]] && ! [[ "$TAR_FILE" ]]; then

View File

@ -12,20 +12,19 @@ eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
-----BEGIN PGP SIGNATURE-----
wsFcBAEBCAAQBQJletbECRBmGHY+8JGG/gAACiQQAHoG7cXpdfks1sdb5Uzu44jl
ABzgVCcIQ8qpQWuiwqBB/Cux/YW63wU4Ku95KMvOVC6P5Q3Dmil5Q2LEibHFzKjb
/TofEdjKWIcqw2xut7Q3GSnyeMdjhm2fdUH4b3rhkt3Zh8T2BOvi1aWt3CsiaTnd
+UooDXb218db28OKYzGZ9cbfaTueRW2rsX0T7xZhYUmo7ExOfe9xGN7AVljSxSnm
OIammIuqi5uKbB6t+t1p2pl2lr2g/eLyY4iPzFRv3yk7tl9v4Uoj8Ry1+AT1E8+b
p1M0uWj8c9sHbCizr8xW5RkVr7CQrgrNJbol00IfQVyooQI33szMX0jQ5X8Nt6y8
KdwUvT8ZyT2eS1VG4RjH3Oq9V/ZxODPtaA8su8lAWTd10xrsRGKwO/qHYdhISOUC
+NQmT9f6pFX35UH0CSk5T8c0jNTAChZcw7NlDUWQaKj3H63qajnVHnx/NuZCmhCe
5L6ilWsYnqYnfjJX7d0i4ZMUNCXkeBTKZHBasWzEBp3ds8nOsHY5dCFcWkppABNw
ynLkCSDN7TY1a8sTgdEIpNpZ6m2oq3rMhmxVzijcFuXV5eRtIxGY1mZPJTggZQXB
8/1RT8B5EDbl0L9Bq+q8lYL/dDLRKQJH0IA3FKGzPDNcin+d8oWh0Ep1IuYDlRJ8
xY8CXryVjzmbglJvC1Wt
=PNpf
wsFcBAEBCAAQBQJjtO4VCRBmGHY+8JGG/gAA2rEQAMqV9Jx7/o6Lq7pWJQFXoYrY
Q1+EU9uxK6WkRjJdlcxoEpgHXJ2Q8SxyPoQzCEgqDn6R8sAYy2Ma+28dyuyKeqIb
REv/JR46ev0/hlL63MBf+UtkU/8lKIgjNpXkHDh92Glt954OpU41ze5e+Rb0zDMA
1vb8j9q4sGBqckPXWsclfOSbRcP8jF+UpGTzJ1Nx907XtX/HUM3ha+s4NHcDgMHE
qmeXVG+eXMDiUFV/OhtbX5nuM6SDyHpLAClO8TikSnbbiHhC2jjna2tpqW70TzCb
1yJAz7mFyhEQjiNOwVWcP36eP6X5NsqEyf6frT8sds4TmuM4nQYtwAf2CC2ZVjE1
r+zeJuDhGU49L1s65J2HUlPXvvcrqcsUoX11Q0jBtq7F5u/MnyTw2FYw4PghhCeV
nf3Hi6VyQvh3nQinLjQ8kDcycQS+TJFD7NylcEu2ATKaEp7mY2DwuJESGCravo65
5W7eS/oMn8sMZCfG+4WDCoxcxgjQ7P+nd5f4GJ9Fpqhhc0HdMVfvI3D7xeIYQlut
MxSHQd3ngvl0Rb9byOFR/GYaS9mUQS89ojM0/cD5FvE39pbq94wgiisJIMLVlRdw
XgCglFdKO+9gBkCZa9lPVNvjAhKzyDbIuSnVfKL6pidIvlYJErCf7wvQAtg5c7gO
Mq+TGohTNdwqRCl3WdlY
=oJGo
-----END PGP SIGNATURE-----

View File

@ -1,22 +0,0 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-bitcoin-mainnet-551636.tar
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQRQdmI2dt3KIgDgNOtP4h9f/4TJvAUCZxAV6gAKCRBP4h9f/4TJ
vOvTAP4/MPtLjt2jWc8h7hWtc71pP43Q1s7I2/Fo6TqZwqmn4QEAyin+ylkz7OvQ
+Zok4KaPDdHpHJk/ncdS3qKpX7E0iAg=
=UO3X
-----END PGP SIGNATURE-----

View File

@ -1,34 +1,23 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hash: SHA256
fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-bitcoin-mainnet-551636.tar
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
744c42885df700513331a978b289d9c9d5b27e0cf1147f2f5a287b4492ff940c utxo-snapshot-bitcoin-mainnet-867690.tar
-----BEGIN PGP SIGNATURE-----
Version: Keybase OpenPGP v2.1.13
Comment: https://keybase.io/crypto
wsFcBAABCgAGBQJnPpBHAAoJEHnCM6wrr3jdJEwP/3bSVFvciVH/z78UNbeUFQkE
Jh93IBqWj7hOXy2MfE4w7X8t0uvHNH0TjtQ6bThTdABkYnT8M9oEkry7WoWfFgEb
MQtCZq3jAUVwyuK3TN41KZMLhSqFkV0lEO5ZK6BT6pIUzHrPQfkjQLS0GHslvnWi
xLrdO9wMBhLF40I76DBqeEutGd7HEw26D7QJUp9Mq4mMAQ0/X9uvQgjh/47szR8C
Ip4tH6u/woMffr2IgVsjkfXM4uFLW6rrijyhL5ZIEbgaiz93M6fRBhYxEXpXSSAp
IRS35GoY30aN0a6ZxPaj3UKMyBw4xRbfTtLWJsSJqhbMIq0iWuyLI2HDFHtfH3yy
loRJG0/d1pfsAB5zYRVYjmey4cAI0wjK7eGbJ6uYnKrQ7JO7IWHiSE4PGGgF/4TG
pUhGF6JhXCqoK9pn/ZvFb8lsc6tCoJYtGceGEClpOLSovxw2KQ9R82Dlmf3TK6rv
NW2hyEpyhI9M6WwcKIuhKKrKmi//bwSWF8Rw602IEuyNGLCzChTA6AATI2QGPhBq
QbcBhhu7UblAES9Wgk1e9/gZq8yH7SKtoipICc7rQDV3PURw8o5qJeQHYTxY9kQv
SDTnwZZYWY/2nupHdNrAN2KvtDT0MlufZf4jtE8c7pgxJO/FrucfwIuW0pvLHkg6
J5Rw3AofuAa1ql3kJvOI
=2QeW
wsFcBAEBCAAQBQJgmC5dCRB5wjOsK6943QAA1/gQAKTzJhwa6jB0Qrh9gNiuf45D
SF+I7EvqZqKUhamH7cp5DUORn6Ybjfy6Ia7GheNEY/0LV0wfn/RHMZ1ojMnDpuR6
VKKxvIANUDg7vNI2Abx9QTeADTI8UJgcNGu8viv/drITZg/rHkmGBQeeZ7xE5RxS
R5y9/m6SPCRtTE0j4l7ZtNDrxbmvj4JGmYwY1CRrXI7Vi5r4rTAv27MfRCQw81D9
owO9Ed3BIlISlPW2THJEmxQL3iOXkrIolvl9nFAqBrKP81yNZhTQMcsPkRYpVa+O
5iWsXx7XTFS3jwPdlwRuRslmthfCvu3p6s2tg9I79N+aWeJI/YPfgLUyaAL0PbG6
opkVfjGmhiMLofO+MlZclpXMonOF67JAjRBtbokzHniPklw9OpR/r77LmLdRfrJB
mZ93ujoLHtZGbGgCO+SrHpYBBhh0CHwB2gdBuqk3jEb2GGIT2Z32Zh9OpGJEgInH
2XwxBmk8ATzCghHFmRR6Evmihhsnn6XJv3MymtKJinMearw5h0hRMVbLKwOag7HF
IYJXCjuOiAG+zq3h30xYYJAmrm9/v3Ods4ERcYhgUNiw1q4te/5mj4mlIOe6tOQ2
Zo1DGNAmAyLo7UqfqD2UWlEpXhD4CjuctDAth8h6s0c0zRy2sCt204+GNbzMLfMP
hPv8FM7lFzDEs9UnzUGm
=7UTk
-----END PGP SIGNATURE-----

View File

@ -8,6 +8,4 @@ eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
744c42885df700513331a978b289d9c9d5b27e0cf1147f2f5a287b4492ff940c utxo-snapshot-bitcoin-mainnet-867690.tar
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar

File diff suppressed because it is too large Load Diff

View File

@ -4,119 +4,83 @@
"CryptoFragment": "litecoin",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "btc",
"CryptoFragment": "bitcoin",
"CLightningFragment": "bitcoin-clightning",
"LNDFragment": "bitcoin-lnd",
"EclairFragment": "bitcoin-eclair",
"PhoenixdFragment": "phoenixd"
"EclairFragment": "bitcoin-eclair"
},
{
"Crypto": "btx",
"CryptoFragment": "bitcore",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "btg",
"CryptoFragment": "bgold",
"CLightningFragment": null,
"LNDFragment": "bgold-lnd",
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "ftc",
"CryptoFragment": "feathercoin",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "grs",
"CryptoFragment": "groestlcoin",
"CLightningFragment": "groestlcoin-clightning",
"LNDFragment": "groestlcoin-lnd",
"EclairFragment": "groestlcoin-eclair",
"PhoenixdFragment": null
"EclairFragment": "groestlcoin-eclair"
},
{
"Crypto": "via",
"CryptoFragment": "viacoin",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "dash",
"CryptoFragment": "dash",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "doge",
"CryptoFragment": "dogecoin",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "mona",
"CryptoFragment": "monacoin",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "xmr",
"CryptoFragment": "monero",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
},
{
"Crypto": "bdx",
"CryptoFragment": "beldex",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
},
{
"Crypto": "lbtc",
"CryptoFragment": "liquid",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
},
{
"Crypto": "zec",
"CryptoFragment": "zcash",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
},
{
"Crypto": "dcr",
"CryptoFragment": "decred",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
"EclairFragment": null
}
]

View File

@ -1,31 +0,0 @@
services:
beldexd:
restart: unless-stopped
container_name: btcpayserver_beldexd
image: beldex/beldex:7.0.0
command: beldexd --rpc-bind-ip=0.0.0.0 --confirm-external-bind --rpc-bind-port=19091 --non-interactive --block-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/beldexlikedaemoncallback/block?cryptoCode=bdx&hash=%s" --hide-my-port
expose:
- "19091"
volumes:
- "bdx_data:/data"
beldexd_wallet:
restart: unless-stopped
container_name: btcpayserver_beldex_wallet
image: beldex/beldex:7.0.0
command: beldex-wallet-rpc --rpc-bind-ip=0.0.0.0 --disable-rpc-login --confirm-external-bind --rpc-bind-port=19092 --non-interactive --trusted-daemon --daemon-address=beldexd:19091 --wallet-dir=/wallet --tx-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/beldexlikedaemoncallback/tx?cryptoCode=bdx&hash=%s"
expose:
- "19092"
volumes:
- "bdx_wallet:/wallet"
depends_on:
- beldexd
btcpayserver:
environment:
BTCPAY_BDX_DAEMON_URI: http://beldexd:19091
BTCPAY_BDX_WALLET_DAEMON_URI: http://beldexd_wallet:19092
BTCPAY_BDX_WALLET_DAEMON_WALLETDIR: /root/bdx_wallet
volumes:
- "bdx_wallet:/root/bdx_wallet"
volumes:
bdx_wallet:
bdx_data:

View File

@ -1,3 +1,5 @@
version: "3"
services:
lnd_bitcoingold:
image: kamigawabul/btglnd:latest

View File

@ -1,3 +1,5 @@
version: "3"
services:
bgoldd:
restart: unless-stopped
@ -27,5 +29,3 @@ services:
BTCPAY_BTGEXPLORERURL: http://nbxplorer:32838/
volumes:
bgold_datadir:
required:
- "nbxplorer"

View File

@ -1,6 +1,8 @@
version: "3"
services:
clightning_bitcoin:
image: btcpayserver/lightning:v26.06.1
image: btcpayserver/lightning:v22.11.1
container_name: btcpayserver_clightning_bitcoin
restart: unless-stopped
environment:
@ -13,70 +15,105 @@ services:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
experimental-offers
database-upgrade=true
rpc-file-mode=0666
clnrest-port=3010
clnrest-protocol=http
clnrest-host=0.0.0.0
grpc-port=9736
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
- "nbxplorer_datadir:/root/.nbxplorer"
ports:
- "9735:9735"
- "3010"
expose:
- "9736"
links:
- bitcoind
clightning_bitcoin_charge:
image: shesek/lightning-charge:0.4.23-1-standalone
restart: unless-stopped
environment:
NETWORK: ${NBITCOIN_NETWORK:-regtest}
COOKIE_FILE: /data/.cookie
URL: ${BTCPAY_ROOTPATH:-/}lightning-charge/btc/
LN_NET_PATH: /etc/lightning
LN_NET: /etc/lightning
volumes:
- "clightning_bitcoin_datadir:/etc/lightning"
- "clightning_bitcoin_charge:/data"
expose:
- "9112"
links:
- clightning_bitcoin
clightning_bitcoin_spark:
image: shesek/spark-wallet:0.3.1-standalone
restart: unless-stopped
environment:
NETWORK: ${NBITCOIN_NETWORK:-regtest}
SPARK_OPT: --no-tls -C /data/.cookie
volumes:
- "clightning_bitcoin_datadir:/etc/lightning"
- "clightning_bitcoin_spark:/data"
links:
- clightning_bitcoin
expose:
- "9737"
clightning_bitcoin_rest:
image: saubyk/c-lightning-rest:0.9.0
restart: unless-stopped
environment:
PROTOCOL: "http"
NODE: clightning_bitcoin:9835
LIGHTNINGD_READY_FILE: /root/.nbxplorer/btc_fully_synched
links:
- clightning_bitcoin
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
- "clightning_bitcoin_rest_certsdir:/usr/src/app/certs"
- "nbxplorer_datadir:/root/.nbxplorer"
expose:
- "3001"
bitcoin_rtl:
image: shahanafarooqui/rtl:v0.15.4
image: shahanafarooqui/rtl:0.13.3
restart: unless-stopped
environment:
LN_IMPLEMENTATION: CLN
CONFIG_PATH: /root/.lightning/config
LN_SERVER_URL: http://clightning_bitcoin:3010
RUNE_PATH: /root/.lightning/rune.env
LN_SERVER_URL: http://clightning_bitcoin_rest:3001/v1
MACAROON_PATH: /etc/clightning_bitcoin_rest_certs
RTL_CONFIG_PATH: /data/
BITCOIND_CONFIG_PATH: /etc/bitcoin/bitcoin.conf
RTL_SSO: 1
RTL_COOKIE_PATH: /data/.cookie
LOGOUT_REDIRECT_LINK: /server/services
labels:
traefik.enable: "true"
traefik.http.routers.bitcoin_rtl.rule: Host(`${BTCPAY_HOST}`) && (Path(`/rtl`) || PathPrefix(`/rtl/`))
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
- "clightning_bitcoin_rtl_datadir:/data"
- "clightning_bitcoin_rest_certsdir:/etc/clightning_bitcoin_rest_certs"
expose:
- "3000"
mempool_api:
environment:
LIGHTNING_ENABLED: "true"
LIGHTNING_BACKEND: "cln"
CLIGHTNING_SOCKET: "/etc/lightning/lightning-rpc"
volumes:
- "clightning_bitcoin_datadir:/etc/lightning"
mempool_web:
environment:
LIGHTNING: "true"
btcpayserver:
environment:
BTCPAY_BTCLIGHTNING: "type=clightning;server=unix://etc/clightning_bitcoin/lightning-rpc"
BTCPAY_BTCEXTERNALSPARK: "server=/spark/btc/;cookiefile=/etc/clightning_bitcoin_spark/.cookie"
BTCPAY_BTCEXTERNALCHARGE: "server=/lightning-charge/btc/;cookiefilepath=/etc/clightning_bitcoin_charge/.cookie"
BTCPAY_BTCEXTERNALRTL: "server=/rtl/api/authenticate/cookie;cookiefile=/etc/clightning_bitcoin_rtl/.cookie"
BTCPAY_BTCEXTERNALCLIGHTNINGREST: "server=/clightning-rest/btc;macaroonfilepath=/etc/clightning_bitcoin_rest_certs/access.macaroon;macaroondirectorypath=/etc/clightning_bitcoin_rest_certs"
volumes:
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
- "clightning_bitcoin_spark:/etc/clightning_bitcoin_spark"
- "clightning_bitcoin_charge:/etc/clightning_bitcoin_charge"
- "clightning_bitcoin_rtl_datadir:/etc/clightning_bitcoin_rtl"
- "clightning_bitcoin_rest_certsdir:/etc/clightning_bitcoin_rest_certs"
links:
- clightning_bitcoin
volumes:
clightning_bitcoin_datadir:
clightning_bitcoin_spark:
clightning_bitcoin_charge:
clightning_bitcoin_rtl_datadir:
clightning_bitcoin_rest_certsdir:
exclusive:
- lightning

View File

@ -1,3 +1,5 @@
version: "3"
services:
bitcoind:
environment:
@ -38,7 +40,7 @@ services:
- bitcoind
bitcoin_rtl:
image: shahanafarooqui/rtl:v0.15.4
image: shahanafarooqui/rtl:0.13.3
restart: unless-stopped
environment:
LN_IMPLEMENTATION: ECL
@ -55,7 +57,7 @@ services:
expose:
- "3000"
labels:
traefik.enable: "true"
traefik.enable: true
traefik.http.routers.bitcoin_rtl.rule: Host(`${BTCPAY_HOST}`) && (Path(`/rtl`) || PathPrefix(`/rtl/`))
links:
- eclair_bitcoin

View File

@ -1,6 +1,8 @@
version: "3"
services:
lnd_bitcoin:
image: btcpayserver/lnd:v0.19.3-beta-1
image: btcpayserver/lnd:v0.15.4-beta-1
container_name: btcpayserver_lnd_bitcoin
restart: unless-stopped
environment:
@ -44,8 +46,7 @@ services:
- bitcoind
bitcoin_rtl:
image: shahanafarooqui/rtl:v0.15.4
container_name: generated_lnd_bitcoin_rtl_1
image: shahanafarooqui/rtl:0.13.3
restart: unless-stopped
environment:
LND_SERVER_URL: http://lnd_bitcoin:8080/v1
@ -61,14 +62,10 @@ services:
volumes:
- "bitcoin_datadir:/etc/bitcoin"
- "lnd_bitcoin_datadir:/etc/lnd"
- "lnd_bitcoin_datadir:/root/.lnd"
- "lndloop_bitcoin_datadir:/etc/lndloop"
- "lnd_bitcoin_rtl_datadir:/data"
expose:
- "3000"
labels:
traefik.enable: "true"
traefik.http.routers.bitcoin_rtl.rule: Host(`${BTCPAY_HOST}`) && (Path(`/rtl`) || PathPrefix(`/rtl/`))
links:
- lnd_bitcoin
@ -105,28 +102,11 @@ services:
volumes:
- "lnd_bitcoin_datadir:/lnd"
mempool_api:
environment:
LIGHTNING_ENABLED: "true"
LIGHTNING_BACKEND: "lnd"
LND_TLS_CERT_PATH: "/etc/lnd/tls.cert"
LND_MACAROON_PATH: "/etc/lnd/readonly.macaroon"
LND_REST_API_URL: "http://lnd_bitcoin:8080"
LND_TIMEOUT: 1000000
volumes:
- "lnd_bitcoin_datadir:/etc/lnd"
mempool_web:
environment:
LIGHTNING: "true"
volumes:
lnd_bitcoin_datadir:
lndloop_bitcoin_datadir:
lnd_bitcoin_rtl_datadir:
recommended:
- "opt-lnd-grpc"
required:
- "opt-add-zmq"
exclusive:

View File

@ -1,8 +1,10 @@
version: "3"
services:
bitcoind:
restart: unless-stopped
container_name: btcpayserver_bitcoind
image: btcpayserver/bitcoin:29.2
image: btcpayserver/bitcoin:24.0.1-1
environment:
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
CREATE_WALLET: "false"
@ -42,5 +44,3 @@ exclusive:
- bitcoin-node
recommended:
- "opt-mempoolfullrbf"
required:
- "nbxplorer"

View File

@ -1,46 +0,0 @@
services:
bitcoind:
restart: unless-stopped
container_name: btcpayserver_bitcoind
image: btcpayserver/bitcoin:31.0
environment:
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
CREATE_WALLET: "false"
BITCOIN_WALLETDIR: "/walletdata"
# rpcport and rpcbind seems duplicates, but they are not
# rpcport is using by some tooling to automatically get
# the rpcport from the configuration file. Do not remove!
BITCOIN_EXTRA_ARGS: |
rpcport=43782
rpcbind=0.0.0.0:43782
rpcallowip=0.0.0.0/0
port=39388
whitelist=0.0.0.0/0
maxmempool=500
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
- "bitcoin_wallet_datadir:/walletdata"
nbxplorer:
environment:
NBXPLORER_CHAINS: "btc"
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes:
- "bitcoin_datadir:/root/.bitcoin"
btcpayserver:
environment:
BTCPAY_CHAINS: "btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
volumes:
bitcoin_datadir:
bitcoin_wallet_datadir:
exclusive:
- bitcoin-node
recommended:
- "opt-mempoolfullrbf"
required:
- "nbxplorer"

View File

@ -1,46 +0,0 @@
services:
bitcoind:
restart: unless-stopped
container_name: btcpayserver_bitcoind
image: btcpayserver/bitcoinknots:29.3.knots20260508
environment:
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
CREATE_WALLET: "false"
BITCOIN_WALLETDIR: "/walletdata"
# rpcport and rpcbind seems duplicates, but they are not
# rpcport is using by some tooling to automatically get
# the rpcport from the configuration file. Do not remove!
BITCOIN_EXTRA_ARGS: |
rpcport=43782
rpcbind=0.0.0.0:43782
rpcallowip=0.0.0.0/0
port=39388
whitelist=0.0.0.0/0
maxmempool=500
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
- "bitcoin_wallet_datadir:/walletdata"
nbxplorer:
environment:
NBXPLORER_CHAINS: "btc"
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes:
- "bitcoin_datadir:/root/.bitcoin"
btcpayserver:
environment:
BTCPAY_CHAINS: "btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
volumes:
bitcoin_datadir:
bitcoin_wallet_datadir:
exclusive:
- bitcoin-node
recommended:
- "opt-mempoolfullrbf"
required:
- "nbxplorer"

View File

@ -1,3 +1,5 @@
version: "3"
services:
bitcoinplusd:
restart: unless-stopped
@ -31,5 +33,3 @@ services:
BTCPAY_TZCEXPLORERURL: http://nbxplorer:32838/
volumes:
bitcoinplus_datadir:
required:
- "nbxplorer"

View File

@ -1,3 +1,5 @@
version: "3"
services:
bitcored:
restart: unless-stopped
@ -30,5 +32,3 @@ services:
volumes:
bitcore_datadir:
required:
- "nbxplorer"

View File

@ -1,3 +1,5 @@
version: "3"
services:
btcpayserver:

View File

@ -1,3 +1,5 @@
version: "3"
services:
btcpayserver:
ports:

View File

@ -1,13 +1,15 @@
version: "3"
services:
btcpayserver:
restart: unless-stopped
container_name: generated_btcpayserver_1
image: ${BTCPAY_IMAGE:-btcpayserver/btcpayserver:2.4.0}
image: ${BTCPAY_IMAGE:-btcpayserver/btcpayserver:1.7.3$<BTCPAY_BUILD_CONFIGURATION>?}
expose:
- "49392"
environment:
# BTCPay settings
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=btcpayserver;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
BTCPAY_EXPLORERPOSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=btcpayserver;MaxPoolSize=80;Database=nbxplorer${NBITCOIN_NETWORK:-regtest}
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
BTCPAY_BIND: 0.0.0.0:49392
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
@ -18,15 +20,11 @@ services:
BTCPAY_DEBUGLOG: btcpay.log
BTCPAY_UPDATEURL: https://api.github.com/repos/btcpayserver/btcpayserver/releases/latest
BTCPAY_DOCKERDEPLOYMENT: "true"
BTCPAY_NODEFAULTCHAIN: "true"
labels:
traefik.enable: "true"
traefik.http.routers.btcpayserver.rule: Host(`${BTCPAY_HOST}`)
# Traefic can not accept list from BTCPAY_ADDITIONAL_HOSTS, see Traefik/README.md
links:
- postgres
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
- "$<BTCPAY_HOST_SSHAUTHORIZEDKEYS>?:${BTCPAY_SSHAUTHORIZEDKEYS}"
- "btcpay_pluginsdir:/root/.btcpayserver/Plugins"
@ -36,6 +34,7 @@ volumes:
required:
- "postgres"
- "nbxplorer"
- "btcpayserver"
recommended:
- "opt-add-tor"

View File

@ -1,8 +1,10 @@
version: "3"
services:
dashd:
restart: unless-stopped
container_name: btcpayserver_dashd
image: btcpayserver/dash:23.1.2
image: btcpayserver/dash:18.1.0
environment:
# rpcport and rpcbind seems duplicates, but they are not
# rpcport is using by some tooling to automatically get
@ -32,5 +34,3 @@ services:
BTCPAY_DASHEXPLORERURL: http://nbxplorer:32838/
volumes:
dash_datadir:
required:
- "nbxplorer"

View File

@ -1,23 +0,0 @@
services:
dcrwallet:
restart: unless-stopped
container_name: btcpayserver_dcrwallet
image: ghcr.io/bisoncraft/decred:2.1.5
command:
- dcrwallet
- --spv
- --username=btcpay
- --password=btcpay
- --rpclisten=0.0.0.0:9110
- --pass=${BTCPAY_DCR_WALLET_PASSPHRASE}
expose:
- "9110"
volumes:
- "dcr_wallet:/root/.dcrwallet"
btcpayserver:
environment:
BTCPAY_DCR_WALLET_URI: https://dcrwallet:9110
BTCPAY_DCR_RPC_USERNAME: btcpay
BTCPAY_DCR_RPC_PASSWORD: btcpay
volumes:
dcr_wallet:

View File

@ -1,8 +1,10 @@
version: "3"
services:
dogecoind:
restart: unless-stopped
container_name: btcpayserver_dogecoind
image: btcpayserver/dogecoin:1.14.7
image: btcpayserver/dogecoin:1.14.6
environment:
DOGECOIN_EXTRA_ARGS: |
rpcuser=ceiwHEbqWI83
@ -35,5 +37,3 @@ services:
BTCPAY_DOGEEXPLORERURL: http://nbxplorer:32838/
volumes:
dogecoin_datadir:
required:
- "nbxplorer"

View File

@ -1,3 +1,5 @@
version: "3"
services:
btcpayserver:
environment:

View File

@ -1,3 +1,5 @@
version: "3"
services:
feathercoind:
restart: unless-stopped
@ -27,5 +29,3 @@ services:
BTCPAY_FTCEXPLORERURL: http://nbxplorer:32838/
volumes:
feathercoin_datadir:
required:
- "nbxplorer"

View File

@ -1,6 +1,8 @@
version: "3"
services:
clightning_groestlcoin:
image: groestlcoin/lightning:v24.08
image: groestlcoin/lightning:v22.11.1
container_name: btcpayserver_clightning_groestlcoin
restart: unless-stopped
environment:
@ -11,8 +13,8 @@ services:
LIGHTNINGD_PORT: 9736
LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/"
LIGHTNINGD_OPT: |
groestlcoin-datadir=/etc/groestlcoin
groestlcoin-rpcconnect=groestlcoind
bitcoin-datadir=/etc/groestlcoin
bitcoin-rpcconnect=groestlcoind
volumes:
- "clightning_groestlcoin_datadir:/root/.lightning"
- "groestlcoin_datadir:/etc/groestlcoin"

View File

@ -1,3 +1,5 @@
version: "3"
services:
groestlcoind:
environment:

View File

@ -1,3 +1,5 @@
version: "3"
services:
lnd_groestlcoin:
image: groestlcoin/lnd:v0.10.0-grs

View File

@ -1,8 +1,10 @@
version: "3"
services:
groestlcoind:
restart: unless-stopped
container_name: btcpayserver_groestlcoind
image: btcpayserver/groestlcoin:25.0
image: btcpayserver/groestlcoin:24.0.1
environment:
GROESTLCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
GROESTLCOIN_WALLETDIR: "/walletdata"
@ -35,5 +37,3 @@ services:
volumes:
groestlcoin_datadir:
groestlcoin_wallet_datadir:
required:
- "nbxplorer"

View File

@ -1,6 +1,7 @@
version: "3"
services:
elementsd_liquid:
environment:
ELEMENTS_EXTRA_ARGS: |
prune=5000
trim_headers=1

View File

@ -1,24 +1,23 @@
version: "3"
services:
elementsd_liquid:
restart: unless-stopped
container_name: btcpayserver_elementsd_liquid
image: btcpayserver/elements:23.2.3
image: btcpayserver/elements:0.21.0.2-4
environment:
ELEMENTS_NETWORK: ${NBITCOIN_NETWORK:-regtest}
ELEMENTS_MAINNET_CHAIN: "liquidv1"
ELEMENTS_WALLETDIR: "/walletdata"
# rpcport and rpcbind seems duplicates, but they are not
# rpcport is using by some tooling to automatically get
# the rpcport from the configuration file. Do not remove!
ELEMENTS_EXTRA_ARGS: |
rpcport=43782
rpcbind=0.0.0.0:43782
rpcallowip=0.0.0.0/0
rpcauth=liquid:c8bf1a8961d97f224cb21224aaa8235d$$402f4a8907683d057b8c58a42940b6e54d1638322a42986ae28ebb844e603ae6
port=39388
whitelist=0.0.0.0/0
rpcauth=liquid:c8bf1a8961d97f224cb21224aaa8235d$$402f4a8907683d057b8c58a42940b6e54d1638322a42986ae28ebb844e603ae6
validatepegin=0
fallbackfee=0.000001
rpcallowip=0.0.0.0/0
expose:
- "43782"
- "39388"
@ -44,5 +43,3 @@ volumes:
recommended:
- "liquid-default-prune"
required:
- "nbxplorer"

View File

@ -1,8 +1,10 @@
version: "3"
services:
litecoind:
restart: unless-stopped
container_name: btcpayserver_litecoind
image: btcpayserver/litecoin:0.21.5.5
image: btcpayserver/litecoin:0.21.2.1-2
environment:
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
BITCOIN_WALLETDIR: "/walletdata"
@ -32,6 +34,4 @@ services:
volumes:
litecoin_datadir:
litecoin_wallet_datadir:
required:
- "nbxplorer"
litecoin_wallet_datadir:

View File

@ -1,3 +1,5 @@
version: "3"
services:
monacoind:
restart: unless-stopped
@ -30,5 +32,3 @@ services:
volumes:
monacoin_datadir:
required:
- "nbxplorer"

View File

@ -1,26 +1,31 @@
version: "3"
services:
monerod:
restart: unless-stopped
container_name: btcpayserver_monerod
image: btcpayserver/monero:0.18.4.3
command: monerod --rpc-bind-ip=0.0.0.0 --confirm-external-bind --rpc-bind-port=18081 --non-interactive --block-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/monerolikedaemoncallback/block?cryptoCode=xmr&hash=%s" --hide-my-port --prune-blockchain --enable-dns-blocklist
image: btcpayserver/monero:0.18.1.1
entrypoint: monerod --rpc-bind-ip=0.0.0.0 --confirm-external-bind --rpc-bind-port=18081 --non-interactive --block-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/monerolikedaemoncallback/block?cryptoCode=xmr&hash=%s" --hide-my-port --prune-blockchain --enable-dns-blocklist
expose:
- "18081"
volumes:
- "xmr_data:/data"
- "xmr_data:/home/monero/.bitmonero"
- "xmr_wallet:/wallet"
monerod_wallet:
restart: unless-stopped
container_name: btcpayserver_monero_wallet
image: btcpayserver/monero:0.18.4.3
command: monero-wallet-rpc --rpc-bind-ip=0.0.0.0 --disable-rpc-login --confirm-external-bind --rpc-bind-port=18082 --non-interactive --trusted-daemon --daemon-address=monerod:18081 --wallet-dir=/wallet --tx-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/monerolikedaemoncallback/tx?cryptoCode=xmr&hash=%s"
image: btcpayserver/monero:0.18.1.1
entrypoint: monero-wallet-rpc --rpc-bind-ip=0.0.0.0 --disable-rpc-login --confirm-external-bind --rpc-bind-port=18082 --non-interactive --trusted-daemon --daemon-address=monerod:18081 --wallet-file=/wallet/wallet --password-file=/wallet/password --tx-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/monerolikedaemoncallback/tx?cryptoCode=xmr&hash=%s"
expose:
- "18082"
volumes:
- "xmr_data:/home/monero/.bitmonero"
- "xmr_wallet:/wallet"
depends_on:
- monerod
btcpayserver:
environment:
BTCPAY_CHAINS: "xmr"
BTCPAY_XMR_DAEMON_URI: http://monerod:18081
BTCPAY_XMR_WALLET_DAEMON_URI: http://monerod_wallet:18082
BTCPAY_XMR_WALLET_DAEMON_WALLETDIR: /root/xmr_wallet

View File

@ -1,9 +1,10 @@
version: "3"
services:
nbxplorer:
restart: unless-stopped
container_name: generated_nbxplorer_1
image: nicolasdorier/nbxplorer:2.6.8
image: nicolasdorier/nbxplorer:2.3.54
expose:
- "32838"
environment:
@ -12,16 +13,13 @@ services:
NBXPLORER_TRIMEVENTS: 10000
NBXPLORER_SIGNALFILESDIR: /datadir
NBXPLORER_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer${NBITCOIN_NETWORK:-regtest}
NBXPLORER_AUTOMIGRATE: 1
NBXPLORER_NOMIGRATEEVTS: 1
NBXPLORER_EXPOSERPC: 1
links:
- postgres
volumes:
- "nbxplorer_datadir:/datadir"
btcpayserver:
environment:
BTCPAY_EXPLORERPOSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=btcpayserver;MaxPoolSize=80;Database=nbxplorer${NBITCOIN_NETWORK:-regtest}
volumes:
- "nbxplorer_datadir:/root/.nbxplorer"
volumes:
nbxplorer_datadir:

View File

@ -1,7 +1,9 @@
version: "3"
services:
letsencrypt-nginx-proxy-companion:
restart: unless-stopped
image: btcpayserver/letsencrypt-nginx-proxy-companion:2.2.9-2
image: btcpayserver/letsencrypt-nginx-proxy-companion:1.12.2
container_name: letsencrypt-nginx-proxy-companion
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
@ -9,13 +11,13 @@ services:
- "nginx_vhost:/etc/nginx/vhost.d"
- "nginx_html:/usr/share/nginx/html"
- "nginx_certs:/etc/nginx/certs:rw"
- "acme:/etc/acme.sh"
environment:
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
NGINX_PROXY_CONTAINER: "nginx"
ACME_CA_URI: ${ACME_CA_URI:-production}
links:
- nginx-gen
nginx:
ports:
- "${REVERSEPROXY_HTTPS_PORT:-443}:443"
@ -25,5 +27,3 @@ services:
nginx-gen:
volumes:
- "nginx_certs:/etc/nginx/certs:ro"
volumes:
acme:

View File

@ -1,7 +1,9 @@
version: "3"
services:
nginx:
restart: unless-stopped
image: nginx:1.25.3-bookworm
image: nginx:1.16.0
container_name: nginx
ports:
- "${REVERSEPROXY_HTTP_PORT:-80}:80"
@ -11,7 +13,7 @@ services:
- "nginx_html:/usr/share/nginx/html"
nginx-gen:
restart: unless-stopped
image: btcpayserver/docker-gen:0.10.7
image: btcpayserver/docker-gen:0.7.8
container_name: nginx-gen
environment:
DEFAULT_HOST: ${REVERSEPROXY_DEFAULT_HOST:-none}

View File

@ -1,4 +1,5 @@
# DO NOT USE THOSE ARE DEPRECATED
version: "3"
services:
bluewallet_lndhub_redis:
container_name: bluewallet_lndhub_redis

View File

@ -1,3 +1,5 @@
version: "3"
services:
btcqbo:
image: jvandrew/btcqbo:0.3.36

View File

@ -1,3 +1,5 @@
version: "3"
services:
btctransmuter:
restart: unless-stopped
@ -19,9 +21,6 @@ services:
VIRTUAL_HOST: ${BTCTRANSMUTER_HOST}
VIRTUAL_HOST_NAME: "btctransmuter"
TRANSMUTER_BTCPayAuthServer: "http://btcpayserver:49392"
labels:
traefik.enable: "true"
traefik.http.routers.btctransmuter.rule: Host(`${BTCPAY_HOST}`) && (Path(`/btctransmuter`) || PathPrefix(`/btctransmuter/`))
expose:
- "80"
links:

View File

@ -1,3 +1,5 @@
version: "3"
services:
bwt:
image: shesek/bwt:0.2.2-electrum

View File

@ -1,3 +1,5 @@
version: "3"
services:
chatwoot:
image: chatwoot/chatwoot:v1.7.0

View File

@ -1,10 +1,12 @@
version: "3"
services:
cloudflared:
container_name: 'cloudflared-tunnel'
image: btcpayserver/cloudflared:2024.8.2-4
image: btcpayserver/cloudflared:2022.6.3
command: 'tunnel --no-autoupdate run --token ${CLOUDFLARE_TUNNEL_TOKEN}'
restart: 'on-failure'
environment:
REAL_IP_HEADER: Cf-Connecting-Ip
links:
- nginx
- nginx

View File

@ -1,3 +1,5 @@
version: "3"
services:
configurator:
restart: unless-stopped

View File

@ -1,3 +1,5 @@
version: "3"
services:
bitcoind:
environment:

View File

@ -1,3 +1,5 @@
version: "3"
services:
bitcoind:
environment:

View File

@ -1,7 +1,8 @@
version: '3'
services:
fireflyiii:
image: fireflyiii/core:latest
container_name: generated_fireflyiii_1
environment:
- APP_ENV=local
- APP_KEY=MustBe32DropDbAndChangeItIfUWant

View File

@ -1,4 +1,6 @@
services:
version: '3'
services:
helipad:
container_name: helipad
image: podcastindexorg/podcasting20-helipad:v0.1.10

View File

@ -1,7 +1,9 @@
version: "3"
services:
joinmarket:
container_name: joinmarket
image: btcpayserver/joinmarket:0.9.10
image: btcpayserver/joinmarket:0.9.5
restart: unless-stopped
environment:
READY_FILE: /root/.nbxplorer/btc_fully_synched

View File

@ -1,3 +1,4 @@
version: '3'
services:
librepatron:
container_name: librepatron

View File

@ -1,18 +1,15 @@
version: "3"
services:
btcpayserver:
environment:
BTCPAY_EXTERNALSERVICES: "Lightning Terminal:${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/lit/;"
lnd_bitcoin:
environment:
LND_EXTRA_ARGS: |
rpcmiddleware.enable=true
lnd_lit:
image: "lightninglabs/lightning-terminal:v0.14.1-alpha-path-prefix"
image: "lightninglabs/lightning-terminal:v0.6.7-alpha-path-prefix"
restart: unless-stopped
expose:
- "8080"
volumes:
- "lnd_lit_datadir:/root/.lit"
- "lnd_lit_datadir:/root/.lnd"
- "lnd_bitcoin_datadir:/data/lnd:ro"
links:
- bitcoind

View File

@ -1,14 +0,0 @@
services:
btcpayserver:
environment:
BTCPAY_LTC_MWEB_DAEMON_URI: http://mwebd:12345
mwebd:
restart: unless-stopped
container_name: mwebd
image: hectorchu1/mwebd
volumes:
- "mwebd_datadir:/data"
volumes:
mwebd_datadir:
required:
- "litecoin"

View File

@ -1,3 +1,5 @@
version: '3'
# reference: https://github.com/mempool/mempool/blob/master/docker/docker-compose.yml
services:
bitcoind:
@ -7,7 +9,7 @@ services:
# Be careful if you copy the line below from the docker-compose.yml! A dollar sign is escaped.
rpcauth=mempool:d77ee0acf132038f6aaa9d4500d745ec$$72cc78dcf18191c91d10c15ff8f7c3dbbd170c4d3107cca35d71c6bf96af2ed9
mempool_web:
image: mempool/frontend:v2.5.0
image: mempool/frontend:v2.5.0-dev1
restart: on-failure
stop_grace_period: 1m
command: "./wait-for mempool_db:3306 --timeout=720 -- nginx -g 'daemon off;'"
@ -18,10 +20,12 @@ services:
BACKEND_MAINNET_HTTP_HOST: "mempool_api"
mempool_api:
image: mempool/backend:v2.5.0
image: mempool/backend:v2.5.0-dev1
restart: on-failure
stop_grace_period: 1m
command: "./wait-for-it.sh mempool_db:3306 --timeout=720 --strict -- ./start.sh"
volumes:
- mempool_api_datadir:/backend/cache
expose:
- "8999"
environment:
@ -41,7 +45,7 @@ services:
DATABASE_PASSWORD: "mempool"
mempool_db:
image: mariadb:10.11
image: mariadb:10.5.8
restart: on-failure
expose:
- "3306"
@ -59,6 +63,7 @@ services:
volumes:
mempool_db_datadir:
mempool_api_datadir:
required:
- "opt-add-electrumx"

View File

@ -1,3 +1,4 @@
version: '3'
services:
ndlc:
container_name: ndlci_cli

View File

@ -1,6 +0,0 @@
services:
bitcoind:
environment:
BITCOIN_EXTRA_ARGS: |
datacarriersize=9999999
minrelaytxfee=0

View File

@ -1,7 +1,8 @@
version: "3"
services:
nnostr-relay:
restart: unless-stopped
image: kukks/nnostr-relay:v0.0.23
image: kukks/nnostr-relay:v0.0.7
container_name: nnostr-relay
environment:
NOSTR_CONNECTIONSTRINGS__RelayDatabase: User ID=postgres;Host=postgres;Port=5432;Database=nnostr
@ -9,10 +10,7 @@ services:
links:
- postgres
- btcpayserver
volumes:
- "nnostr_datadir:/datadir"
btcpayserver:
environment:
BTCPAY_EXTERNALSERVICES: "Nostr Relay:nostr;"
volumes:
nnostr_datadir:

View File

@ -1,20 +1,19 @@
version: '3'
services:
pihole:
restart: unless-stopped
container_name: pihole
image: pihole/pihole:2025.03.0
image: pihole/pihole:v5.7
environment:
FTLCONF_dns_reply_host_IPv4: "${PIHOLE_SERVERIP:-127.0.0.1}"
ServerIP: "${PIHOLE_SERVERIP:-127.0.0.1}"
VIRTUAL_HOST: pi.hole
VIRTUAL_HOST_NAME: "pihole"
FTLCONF_dns_listeningMode: 'all'
expose:
- "53"
- "67"
- "80"
- "443"
ports:
- "53:53/tcp"
- "53:53/udp"
volumes:
- "./pihole/resolv.conf:/etc/resolv.conf:ro"

View File

@ -1,11 +0,0 @@
services:
shopify-app-deployer:
image: btcpayserver/shopify-app-deployer:1.8
restart: unless-stopped
init: true
expose:
- "5000"
btcpayserver:
environment:
BTCPAY_SHOPIFY_PLUGIN_DEPLOYER: "http://shopify-app-deployer:5000/"

View File

@ -1,12 +0,0 @@
services:
snapdrop:
restart: unless-stopped
image: btcpayserver/snapdrop:1.2
container_name: snapdrop
expose:
- "8080"
btcpayserver:
environment:
BTCPAY_EXTERNALSERVICES: "Snapdrop:${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/snapdrop;"

View File

@ -1,3 +1,4 @@
version: "3"
services:
btcpayserver:
environment:

View File

@ -1,3 +1,4 @@
version: "3"
services:
btcpayserver:
environment:
@ -5,8 +6,7 @@ services:
volumes:
- "tallycoin_connect_datadir:/etc/tallycoin_connect_datadir"
tallycoin_connect:
image: "djbooth007/tallycoin_connect:v1.8.0"
container_name: generated_tallycoin_connect_1
image: "djbooth007/tallycoin_connect:v1.7.5"
restart: unless-stopped
expose:
- "8123"

View File

@ -1,7 +1,9 @@
version: "3"
services:
bitcoin_teos:
restart: unless-stopped
image: benjaminchodroff/rust-teos:latest
image: talaia/python-teos:latest
environment:
API_BIND: "0.0.0.0"
API_PORT: 9814
@ -13,7 +15,7 @@ services:
BTC_FEED_CONNECT: "bitcoind"
BTC_FEED_PORT: 28334
volumes:
- "bitcoin_teos_datadir:/home/teos/.teos"
- "bitcoin_teos_datadir:/root/.teos"
ports:
- "9814:9814"
bitcoind:
@ -30,3 +32,4 @@ volumes:
required:
- "opt-add-zmq"
- "bitcoin"
- "opt-txindex"

View File

@ -1,3 +1,4 @@
version: "3"
services:
btcpayserver:
environment:
@ -5,8 +6,7 @@ services:
volumes:
- "lnd_bitcoin_thub_datadir:/etc/lnd_bitcoin_thub_datadir"
bitcoin_thub:
image: apotdevin/thunderhub:base-0.15.4@sha256:5a36615e4fc300837595156869d67d4c9ef9703d5ead8276911b3e80077b3d3f
container_name: generated_bitcoin_thub_1
image: apotdevin/thunderhub:base-v0.13.11@sha256:248db7508af8d1563f3afdbaec2ffd62e6f1868e30f8f1c3bb514bf8633c44f9
restart: unless-stopped
stop_signal: SIGKILL
environment:
@ -19,9 +19,6 @@ services:
NO_CLIENT_ACCOUNTS: "true"
LOG_LEVEL: debug
LOGOUT_URL: "/server/services/thunderhub/BTC"
labels:
traefik.enable: "true"
traefik.http.routers.bitcoin_thub.rule: Host(`${BTCPAY_HOST}`) && (Path(`/thub`) || PathPrefix(`/thub/`))
volumes:
- "lnd_bitcoin_datadir:/etc/lnd"
- "lnd_bitcoin_thub_datadir:/data"

View File

@ -1,7 +1,8 @@
version: "3"
services:
tor-relay-gen:
restart: unless-stopped
image: btcpayserver/docker-gen:0.10.7
image: btcpayserver/docker-gen:0.7.8
container_name: tor-relay-gen
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"
@ -16,7 +17,7 @@ services:
tor-relay:
restart: unless-stopped
image: btcpayserver/tor:0.4.9.10
image: btcpayserver/tor:0.4.7.10
container_name: tor-relay
environment:
TOR_PASSWORD: btcpayserver

View File

@ -2,6 +2,8 @@
# Warning: This options is for working around NAT and firewall problems as well as to help protect your customer's privacy.
# This will not protect your privacy against a targeted attack against your own privacy.
# All outbound traffic is not channeled through the TOR SOCKS proxy
version: "3"
services:
btcpayserver:
@ -67,7 +69,7 @@ services:
tor:
restart: unless-stopped
image: btcpayserver/tor:0.4.9.10
image: btcpayserver/tor:0.4.7.10
container_name: tor
environment:
TOR_PASSWORD: btcpayserver
@ -107,7 +109,7 @@ services:
tor-gen:
restart: unless-stopped
image: btcpayserver/docker-gen:0.10.7
image: btcpayserver/docker-gen:0.7.8
container_name: tor-gen
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"

View File

@ -0,0 +1,46 @@
version: "3.7"
services:
torq:
user: "root:root"
image: "lncapital/torq:0.15.4"
restart: unless-stopped
depends_on:
- "torq_db"
command:
- --db.host
- torq_db
- --db.password
- torq_db_password
- --lnd.url
- lnd_bitcoin:10009
- --lnd.macaroon-path
- /lnd/admin.macaroon
- --lnd.tls-path
- /lnd/tls.cert
- --torq.cookie-path
- /data/.cookie
- start
volumes:
- "lnd_bitcoin_datadir:/lnd:ro"
- "lnd_bitcoin_torq_datadir:/data"
links:
- lnd_bitcoin
torq_db:
image: "timescale/timescaledb:latest-pg14"
environment:
POSTGRES_PASSWORD: torq_db_password
volumes:
- torq_datadir:/var/lib/postgresql/data
btcpayserver:
environment:
BTCPAY_BTCEXTERNALTORQ: "server=/torq/cookie-login;cookiefile=/etc/lnd_bitcoin_torq/.cookie"
volumes:
- "lnd_bitcoin_torq_datadir:/etc/lnd_bitcoin_torq"
volumes:
torq_datadir:
lnd_bitcoin_torq_datadir:
required:
- "bitcoin-lnd"
- "opt-lnd-grpc"

View File

@ -1,3 +1,5 @@
version: '3'
services:
woocommerce:
image: btcpayserver/woocommerce:3.1.0
@ -18,8 +20,7 @@ services:
- "woocommerce_html:/var/www/html"
mariadb:
image: mariadb:10.11
container_name : generated_mariadb_1
image: mariadb:10.3
environment:
MYSQL_ROOT_PASSWORD: wordpressdb
MYSQL_DATABASE: wordpress

View File

@ -1,3 +1,5 @@
version: "3"
services:
zammad-backup:
command: ["zammad-backup"]

View File

@ -1,3 +1,5 @@
version: "3"
services:
bitcoind:
environment:

View File

@ -1,9 +0,0 @@
services:
beldexd:
ports:
- "127.0.0.1:19091:19091"
beldex_wallet:
ports:
- "127.0.0.1:19092:19092"
required:
- "beldex"

View File

@ -1,6 +0,0 @@
services:
dcrwallet:
ports:
- "127.0.0.1:9110:9110"
required:
- "decred"

View File

@ -1,3 +1,4 @@
version: "3"
# unsafely exposes bitcoind P2P port, for use on trusted LAN only
services:

View File

@ -1,5 +0,0 @@
services:
lnd_bitcoin:
environment:
LND_EXTRA_ARGS: |
db.bolt.auto-compact=true

View File

@ -1,3 +1,5 @@
version: "3"
services:
lnd_bitcoin:
environment:

View File

@ -1,3 +1,5 @@
version: "3"
services:
lnd_bitcoin:
expose:

View File

@ -1,3 +1,5 @@
version: "3"
services:
lnd_bitcoin:
environment:

View File

@ -1,9 +0,0 @@
services:
lnd_bitcoin:
environment:
LND_EXTRA_ARGS: |
watchtower.active=true
watchtower.listen=lnd_bitcoin:9911
watchtower.listen=127.0.0.1:9911
ports:
- "9911:9911"

View File

@ -1,3 +1,5 @@
version: "3"
services:
lnd_bitcoin:
environment:

View File

@ -1,3 +1,4 @@
version: "3"
# must not use opt-save-storage
services:

Some files were not shown because too many files have changed in this diff Show More