From cab282cc699dce1b94b97ffc05c0b647344348cd Mon Sep 17 00:00:00 2001 From: vdo Date: Fri, 3 Jun 2022 14:19:57 +0100 Subject: [PATCH 01/19] Update README --- README.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 383ca43..8fed81e 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,14 @@ Compatible and tested on: Other distributions with docker pre-installed would probably be compatible as well. +## Demo + +[![asciicast](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDf.png)](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDf) + +## FAQ + +Check the [wiki](https://github.com/vdo/xmr.sh/wiki/FAQ) + ## ToDo - [x] Add wizard for DNS domain selection. @@ -19,11 +27,20 @@ Other distributions with docker pre-installed would probably be compatible as we - [x] Mainnet / Stagenet / Testnet selection - [x] Pruning enabled - [x] Clearnet TLS port selection -- [ ] Uninstall script -- [ ] Documentation +- [x] Uninstall script - [x] Make tor service optional - [x] Block explorer (disabled) - [x] Grafana dashboard +- [ ] Shellcheck via Github Actions +- [ ] Installation documentation - [ ] arm64 support for all images. - [ ] monerod-lws support - [ ] monerod-proxy support. + + +# Credits + +[@cirocosta](https://github.com/cirocosta) for the metrics exporter and grafana dashboard. +[@sethforprivacy](https://github.com/sethforprivacy) for providing and maintaining Monero Docker images. + + From b5badfc96aac69846bd35614c92246386620a855 Mon Sep 17 00:00:00 2001 From: vdo Date: Fri, 3 Jun 2022 14:33:26 +0100 Subject: [PATCH 02/19] Asciicast link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fed81e..774b80d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Other distributions with docker pre-installed would probably be compatible as we ## Demo -[![asciicast](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDf.png)](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDf) +[![asciicast](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDfv.svg)](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDfv) ## FAQ From ddfa6e596af84e152dc6efe9473b21644bb3ed1c Mon Sep 17 00:00:00 2001 From: vdo Date: Mon, 6 Jun 2022 21:13:47 +0100 Subject: [PATCH 03/19] optional pruning --- .env | 3 ++- README.md | 11 ++++++++--- install | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.env b/.env index 7a8274f..0411fb5 100644 --- a/.env +++ b/.env @@ -10,7 +10,8 @@ MONEROD_TAG=latest MONEROD_RPC_PORT=18081 MONEROD_RESTRICTED_RPC_PORT=18089 MONEROD_P2P_PORT=18080 -MONEROD_EXTRA_PARAMS=--prune-blockchain +#MONEROD_EXTRA_PARAMS=--prune-blockchain +MONEROD_EXTRA_PARAMS= MONEROD_accessControlAllowOriginList=* #TOR_TAG=latest diff --git a/README.md b/README.md index 774b80d..e127210 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,10 @@ Check the [wiki](https://github.com/vdo/xmr.sh/wiki/FAQ) - [x] Grafana dashboard - [ ] Shellcheck via Github Actions - [ ] Installation documentation -- [ ] arm64 support for all images. +- [ ] arm64 support for all images - [ ] monerod-lws support -- [ ] monerod-proxy support. - +- [ ] monerod-proxy support for random node forwarding +- [ ] i2p service # Credits @@ -44,3 +44,8 @@ Check the [wiki](https://github.com/vdo/xmr.sh/wiki/FAQ) [@sethforprivacy](https://github.com/sethforprivacy) for providing and maintaining Monero Docker images. +# Donate XMR 🍕 + +86GwmtuKWtjJBWT8Srn4oqZHbP41k2kpG79xXKKgauJzCmZkFJ5ihwjVnRodVbVjAx64JeB7VyGbF6hEdwpcPcR7Go8x2YZ + + diff --git a/install b/install index 585605c..bb1751e 100755 --- a/install +++ b/install @@ -241,10 +241,25 @@ configure_tls_port() { fi } +configure_pruning() { + echo -e "${OkBullet}Configuring pruning..." + while true; do + read -r -e -p " Do you want to enable blockchain pruning? [y/n]: " yn + case $yn in + [Yy]*) + sed -i "/MONEROD_EXTRA_PARAMS/s/$/ --prune-blockchain/g" .env + break + ;; + [Nn]*) break ;; + *) echo " Please answer yes or no." ;; + esac + done +} + configure_cors() { echo -e "${OkBullet}Configuring CORS..." while true; do - read -r -e -p " Do you want to enabe CORS headers so the node can be used in web apps? [y/n]: " yn + read -r -e -p " Do you want to enable CORS headers so the node can be used in web apps? [y/n]: " yn case $yn in [Yy]*) sed -i '/#!cors/s/# //g' docker-compose.yml From 83d4d41092466c4f91e640ff58fab7a9018eb952 Mon Sep 17 00:00:00 2001 From: vdo Date: Mon, 6 Jun 2022 22:01:06 +0100 Subject: [PATCH 04/19] uninstall fixes --- .env | 1 - uninstall | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.env b/.env index 0411fb5..1c40fc4 100644 --- a/.env +++ b/.env @@ -10,7 +10,6 @@ MONEROD_TAG=latest MONEROD_RPC_PORT=18081 MONEROD_RESTRICTED_RPC_PORT=18089 MONEROD_P2P_PORT=18080 -#MONEROD_EXTRA_PARAMS=--prune-blockchain MONEROD_EXTRA_PARAMS= MONEROD_accessControlAllowOriginList=* diff --git a/uninstall b/uninstall index 428f160..47c79ff 100755 --- a/uninstall +++ b/uninstall @@ -7,21 +7,21 @@ Off='\033[0m' # Text Reset # Regular Colors -Red='\033[0;31m' # Red -Green='\033[0;32m' # Green -Yellow='\033[0;33m' # Yellow -Purple='\033[0;35m' # Purple -White='\033[0;37m' # White +Red='\033[0;31m' # Red +Green='\033[0;32m' # Green +#Yellow='\033[0;33m' # Yellow +#Purple='\033[0;35m' # Purple +White='\033[0;37m' # White # Background On_Black='\033[40m' # Black OkBullet="${Green}${On_Black}:: ${White}${On_Black}" -WarnBullet="${Yellow}${On_Black}:: ${White}${On_Black}" +#WarnBullet="${Yellow}${On_Black}:: ${White}${On_Black}" ErrBullet="${Red}${On_Black}:: ${White}${On_Black}" Ok="${Green}${On_Black} ok.${Off}" Fail="${Red}${On_Black} failed!${Off}" -Nok="${Yellow}${On_Black} nok.${Off}" +#Nok="${Yellow}${On_Black} nok.${Off}" ################################################################ # Vars # @@ -65,17 +65,18 @@ uninstall() { [Yy]*) find . -type f -not -name 'data' -print0 | xargs -0 -I {} rm {} check_return $? + popd >>"${XMRSH_LOG_FILE}" 2>&1 || check_return $? break ;; [Nn]*) - rm -rf ./* + popd >>"${XMRSH_LOG_FILE}" 2>&1 || check_return $? + rm -rf "${XMRSH_DIR}" check_return $? break ;; *) echo " Please answer yes or no." ;; esac done - popd || check_return $? echo -e "${OkBullet}Uninstall complete." } From ecd5f51fda51ac17a9a3dee544f7caece0a81593 Mon Sep 17 00:00:00 2001 From: vdo Date: Mon, 6 Jun 2022 22:01:29 +0100 Subject: [PATCH 05/19] version bump --- install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install b/install index bb1751e..4e2d5e6 100755 --- a/install +++ b/install @@ -28,7 +28,7 @@ StatInfo="${White}${On_Black}" ################################################################ # Vars # ################################################################ -VERSION="v0.3.1" +VERSION="v0.3.2" XMRSH_INSTALL_CMD="sudo bash -c \"\$(curl -sLSf https://get.xmr.sh)\"" XMRSH_DIR="/opt/xmr.sh" XMRSH_BRANCH="main" From dc0932b0c9ec6af21561994dbf16b4da0c93c48a Mon Sep 17 00:00:00 2001 From: vdo Date: Mon, 6 Jun 2022 22:25:08 +0100 Subject: [PATCH 06/19] clean comments --- README.md | 4 +--- install | 8 +++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index e127210..619111d 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,9 @@ Check the [wiki](https://github.com/vdo/xmr.sh/wiki/FAQ) # Credits [@cirocosta](https://github.com/cirocosta) for the metrics exporter and grafana dashboard. -[@sethforprivacy](https://github.com/sethforprivacy) for providing and maintaining Monero Docker images. +[@sethforprivacy](https://github.com/sethforprivacy) for providing and maintaining Monero Docker images. # Donate XMR 🍕 86GwmtuKWtjJBWT8Srn4oqZHbP41k2kpG79xXKKgauJzCmZkFJ5ihwjVnRodVbVjAx64JeB7VyGbF6hEdwpcPcR7Go8x2YZ - - diff --git a/install b/install index 4e2d5e6..6da2356 100755 --- a/install +++ b/install @@ -117,7 +117,6 @@ detect_curl() { detect_docker() { echo -ne "${OkBullet}Checking docker... ${Off}" - # docker --version >>"${XMRSH_LOG_FILE}" 2>&1 | grep -q "Docker version" if docker --version >>"${XMRSH_LOG_FILE}" 2>&1; then DOCKER_INSTALLED=true echo -e "${Ok}" @@ -128,7 +127,6 @@ detect_docker() { detect_docker_compose() { echo -ne "${OkBullet}Checking docker compose... ${Off}" - #docker-compose --version >>"${XMRSH_LOG_FILE}" 2>&1 | grep -q "Docker Compose version" if docker-compose --version >>"${XMRSH_LOG_FILE}" 2>&1; then DOCKER_COMPOSE_INSTALLED=true echo -e "${Ok}" @@ -219,7 +217,7 @@ configure_tls_domain() { # Set domain and email address in vars sed -i "s/DOMAIN=.*/DOMAIN=${TLS_DOMAIN}/g" .env sed -i "s/TRAEFIK_ACME_EMAIL=.*/TRAEFIK_ACME_EMAIL=${TLS_EMAIL}/g" .env - # Enable LE settings in compose + # Enable Let's Encrypt settings in compose sed -i '/#!le/s/# //g' docker-compose.yml sed -i '/#!nole/s/- /# - /g' docker-compose.yml sed -i "/#\!traefik-command/s/\*traefik-command-nole/\*traefik-command-le/g" docker-compose.yml @@ -381,7 +379,7 @@ completed() { echo echo -e " ${Red}┌───────────────────────────────────────────────────────────────────────────[info]──" echo -e " ${Red}│${Stat} Network: ${StatInfo}${NETWORK}" - echo -e " ${Red}│${Stat} URL: ${StatInfo}https://${HOST}${PORT_SUFF}" + echo -e " ${Red}│${Stat} Public URL: ${StatInfo}https://${HOST}${PORT_SUFF}" echo -e " ${Red}│${Stat} Public IP: ${StatInfo}${PUBLIC_IP}" if [ "$ENABLE_TOR" = true ]; then @@ -420,7 +418,7 @@ install_xmrsh configure_network configure_tls_domain configure_tls_port -# configure_pruning +configure_pruning configure_cors configure_tor From b58cf52373892b4d25a1ce2d54f3d89a0c0e6093 Mon Sep 17 00:00:00 2001 From: vdo Date: Tue, 7 Jun 2022 18:02:27 +0100 Subject: [PATCH 07/19] log config, arm64 compatible images --- .env | 2 +- docker-compose.yml | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.env b/.env index 1c40fc4..a420223 100644 --- a/.env +++ b/.env @@ -22,4 +22,4 @@ EXPLORER_PORT=8081 GRAFANA_TAG=8.5.4 GF_SECURITY_ADMIN_PASSWORD=xmrsh-admin -PROMETHEUS_TAG=2.36.0 +PROMETHEUS_TAG=v2.36.0 diff --git a/docker-compose.yml b/docker-compose.yml index ca3d72d..222e8b8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,12 @@ version: "3.7" +x-log-config: &log-config + logging: + driver: json-file + options: + max-size: "50m" + max-file: "20" + x-traefik-command-le: &traefik-command-le command: - "--log.level=${TRAEFIK_LOGLEVEL}" @@ -44,6 +51,7 @@ x-tor-service: &tor-service MONEROD_TOR_SERVICE_HOSTS: "${TOR_HTTP_PORT}:monerod:${MONEROD_RESTRICTED_RPC_PORT}" volumes: - ./data/tor:/var/lib/tor/hidden_service/ + <<: *log-config x-explorer-service: &explorer-service explorer: @@ -67,13 +75,15 @@ x-explorer-service: &explorer-service - "traefik.http.routers.explorer.tls" - "traefik.http.routers.explorer.service=explorer" - "traefik.http.services.explorer.loadbalancer.server.port=${EXPLORER_PORT}" + <<: *log-config x-monero-exporter-service: &monero-exporter-service monero-exporter: command: - --monero-addr=http://monerod:${MONEROD_RPC_PORT} container_name: monero-exporter - image: utxobr/monero-exporter@sha256:737413b1054583535e835e1417b61a8d59a4c08723e4a15c61c4249c2a7d69a4 + image: vdo1138/monero-exporter:0.0.2 + <<: *log-config x-grafana-service: &grafana-service grafana: @@ -102,6 +112,7 @@ x-grafana-service: &grafana-service - "traefik.http.routers.grafana.tls" - "traefik.http.routers.grafana.service=grafana" - "traefik.http.services.grafana.loadbalancer.server.port=3000" + <<: *log-config x-prometheus-service: &prometheus-service prometheus: @@ -111,10 +122,11 @@ x-prometheus-service: &prometheus-service - --storage.tsdb.path=/data - --storage.tsdb.retention.time=30d container_name: prometheus - image: bitnami/prometheus:${PROMETHEUS_TAG} + image: prom/prometheus:${PROMETHEUS_TAG} volumes: - ./data/prometheus:/data - ./config/prometheus/config.yaml:/etc/prometheus/config.yaml:ro + <<: *log-config x-watchtower-service: &watchtower-service watchtower: @@ -125,6 +137,7 @@ x-watchtower-service: &watchtower-service labels: - com.centurylinklabs.watchtower.enable="false" command: --interval 360 --include-stopped + <<: *log-config services: traefik: @@ -138,6 +151,8 @@ services: - "/var/run/docker.sock:/var/run/docker.sock:ro" <<: *traefik-command-nole #!traefik-command restart: always + <<: *log-config + monerod: container_name: monerod image: sethsimmons/simple-monerod:${MONEROD_TAG} @@ -158,6 +173,7 @@ services: # - "traefik.http.middlewares.corsheader.headers.accessControlAllowOriginList=${MONEROD_accessControlAllowOriginList}" #!cors # - "traefik.http.routers.monerod.middlewares=corsheader" #!cors restart: unless-stopped + <<: *log-config # <<: *tor-service #!tor # <<: *explorer-service #!explorer From 1fd10d8cde6d5a5ce9dc4636b99d0961fbf8d669 Mon Sep 17 00:00:00 2001 From: vdo Date: Wed, 8 Jun 2022 12:39:18 +0100 Subject: [PATCH 08/19] add lws service --- .env | 5 +++++ docker-compose.yml | 30 ++++++++++++++++++++++++++++++ install | 20 ++++++++++++++++++-- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/.env b/.env index a420223..9806607 100644 --- a/.env +++ b/.env @@ -10,9 +10,14 @@ MONEROD_TAG=latest MONEROD_RPC_PORT=18081 MONEROD_RESTRICTED_RPC_PORT=18089 MONEROD_P2P_PORT=18080 +MONEROD_ZMQ_RPC_PORT=18082 +MONEROD_ZMQ_PUB_PORT=18083 MONEROD_EXTRA_PARAMS= MONEROD_accessControlAllowOriginList=* +LWS_TAG=0.17-15bce7f +LWS_PORT=8000 + #TOR_TAG=latest TOR_TAG=0.4.7.7 TOR_HTTP_PORT=80 diff --git a/docker-compose.yml b/docker-compose.yml index 222e8b8..734610f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,7 @@ x-monerod-command: &monerod-command --public-node --no-igd --no-zmq --enable-dns-blocklist --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=${MONEROD_RESTRICTED_RPC_PORT} --confirm-external-bind + --zmq-pub tcp://0.0.0.0:${MONEROD_ZMQ_PUB_PORT}--zmq-rpc-bind-port=${MONEROD_ZMQ_RPC_PORT} --zmq-rpc-bind-ip=0.0.0.0 --rpc-bind-port=${MONEROD_RPC_PORT} --rpc-bind-ip=0.0.0.0 ${MONEROD_EXTRA_PARAMS} @@ -77,6 +78,34 @@ x-explorer-service: &explorer-service - "traefik.http.services.explorer.loadbalancer.server.port=${EXPLORER_PORT}" <<: *log-config +x-monero-lws-service: &monero-lws-service + monero-lws: + image: vdo1138/monero-lws:${LWS_TAG} + container_name: monero-lws + restart: unless-stopped + command: >- + --rest-server http://0.0.0.0:8000 --daemon=tcp://monerod:${MONEROD_ZMQ_RPC_PORT} + --sub=tcp://monerod:${MONEROD_ZMQ_SUB_PORT} --log-level=4 + --confirm-external-bind + volumes: + - ./data/monero-lws:/home/monero-lws/.bitmonero/ + # ports: + # - ${LWS_PORT} + depends_on: + - monerod + labels: + - "traefik.enable=true" + - "traefik.http.routers.monero-lws.rule=(PathPrefix(`/lws`) )" #!nole + # - "traefik.http.routers.monero-lws.rule=(Host(`${DOMAIN}`) && PathPrefix(`/monero-lws`) )" #!le + # - "traefik.http.routers.monero-lws.tls.certresolver=le" #!le + - "traefik.http.middlewares.stripprefix-monero-lws.stripprefix.prefixes=/lws" + - "traefik.http.routers.monero-lws.middlewares=stripprefix-monero-lws" + - "traefik.http.routers.monero-lws.entrypoints=websecure" + - "traefik.http.routers.monero-lws.tls" + - "traefik.http.routers.monero-lws.service=monero-lws" + - "traefik.http.services.monero-lws.loadbalancer.server.port=${LWS_PORT}" + <<: *log-config + x-monero-exporter-service: &monero-exporter-service monero-exporter: command: @@ -177,6 +206,7 @@ services: # <<: *tor-service #!tor # <<: *explorer-service #!explorer + # <<: *monero-lws-service #!lws # <<: *monero-exporter-service #!monero-exporter # <<: *grafana-service #!grafana # <<: *prometheus-service #!prometheus diff --git a/install b/install index 6da2356..adaeda4 100755 --- a/install +++ b/install @@ -301,6 +301,22 @@ configure_explorer() { done } +configure_lws() { + echo -e "${OkBullet}Configuring LWS..." + while true; do + read -r -e -p " Do you want to enable the light wallet service? [y/n]: " yn + case $yn in + [Yy]*) + sed -i '/#!lws/s/# //g' docker-compose.yml + ENABLE_LWS=true + break + ;; + [Nn]*) break ;; + *) echo " Please answer yes or no." ;; + esac + done +} + configure_grafana() { echo -e "${OkBullet}Configuring grafana..." while true; do @@ -419,14 +435,14 @@ configure_network configure_tls_domain configure_tls_port configure_pruning +configure_lws configure_cors - configure_tor # Deployment of explorer disabled until it's stable. # configure_explorer configure_watchtower configure_grafana -# configure_lws + start_xmrsh completed From 7b4495d55147b4582693915a2b0be9e527015a6b Mon Sep 17 00:00:00 2001 From: vdo Date: Wed, 8 Jun 2022 13:41:37 +0100 Subject: [PATCH 09/19] zmq params, exec order --- data/monero-lws/.gitignore | 4 ++++ docker-compose.yml | 4 ++-- install | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 data/monero-lws/.gitignore diff --git a/data/monero-lws/.gitignore b/data/monero-lws/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/data/monero-lws/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/docker-compose.yml b/docker-compose.yml index 734610f..d15434d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,7 +35,7 @@ x-traefik-command-nole: &traefik-command-nole x-monerod-command: &monerod-command command: >- - --public-node --no-igd --no-zmq + --public-node --no-igd --enable-dns-blocklist --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=${MONEROD_RESTRICTED_RPC_PORT} --confirm-external-bind --zmq-pub tcp://0.0.0.0:${MONEROD_ZMQ_PUB_PORT}--zmq-rpc-bind-port=${MONEROD_ZMQ_RPC_PORT} --zmq-rpc-bind-ip=0.0.0.0 @@ -85,7 +85,7 @@ x-monero-lws-service: &monero-lws-service restart: unless-stopped command: >- --rest-server http://0.0.0.0:8000 --daemon=tcp://monerod:${MONEROD_ZMQ_RPC_PORT} - --sub=tcp://monerod:${MONEROD_ZMQ_SUB_PORT} --log-level=4 + --sub=tcp://monerod:${MONEROD_ZMQ_PUB_PORT} --log-level=4 --confirm-external-bind volumes: - ./data/monero-lws:/home/monero-lws/.bitmonero/ diff --git a/install b/install index adaeda4..b54c164 100755 --- a/install +++ b/install @@ -340,7 +340,7 @@ configure_grafana() { configure_watchtower() { echo -e "${OkBullet}Configuring watchtower..." while true; do - read -r -e -p " Do you want to enable automatic updates using watchtower? [y/n]: " yn + read -r -e -p " Do you want to enable automatic node updates using watchtower? [y/n]: " yn case $yn in [Yy]*) sed -i '/#!watchtower/s/# //g' docker-compose.yml @@ -435,13 +435,13 @@ configure_network configure_tls_domain configure_tls_port configure_pruning -configure_lws configure_cors configure_tor +configure_lws # Deployment of explorer disabled until it's stable. # configure_explorer -configure_watchtower configure_grafana +configure_watchtower start_xmrsh completed From f0f02adb81c2603a7945c67422ba20e37cf77111 Mon Sep 17 00:00:00 2001 From: vdo Date: Wed, 8 Jun 2022 14:21:15 +0100 Subject: [PATCH 10/19] add restart rules --- docker-compose.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index d15434d..b34a4da 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,6 +46,7 @@ x-tor-service: &tor-service tor: container_name: tor image: vdo1138/tor-hidden-service:${TOR_TAG} + restart: unless-stopped links: - monerod environment: @@ -111,6 +112,7 @@ x-monero-exporter-service: &monero-exporter-service command: - --monero-addr=http://monerod:${MONEROD_RPC_PORT} container_name: monero-exporter + restart: unless-stopped image: vdo1138/monero-exporter:0.0.2 <<: *log-config @@ -120,6 +122,7 @@ x-grafana-service: &grafana-service command: - -config=/etc/grafana/grafana.ini container_name: grafana + restart: unless-stopped image: grafana/grafana:${GRAFANA_TAG} ports: - 3000 @@ -151,6 +154,7 @@ x-prometheus-service: &prometheus-service - --storage.tsdb.path=/data - --storage.tsdb.retention.time=30d container_name: prometheus + restart: unless-stopped image: prom/prometheus:${PROMETHEUS_TAG} volumes: - ./data/prometheus:/data @@ -160,6 +164,7 @@ x-prometheus-service: &prometheus-service x-watchtower-service: &watchtower-service watchtower: container_name: watchtower + restart: unless-stopped image: containrrr/watchtower:latest volumes: - /var/run/docker.sock:/var/run/docker.sock From 821b8cf8a1110aa40996c74506a1893a0d555306 Mon Sep 17 00:00:00 2001 From: vdo Date: Wed, 8 Jun 2022 14:30:24 +0100 Subject: [PATCH 11/19] Version bump, README, lws url --- README.md | 5 +++-- install | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 619111d..02f92ff 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,13 @@ Check the [wiki](https://github.com/vdo/xmr.sh/wiki/FAQ) - [x] Make tor service optional - [x] Block explorer (disabled) - [x] Grafana dashboard +- [x] arm64 support for all images +- [x] monerod-lws support (experimental) - [ ] Shellcheck via Github Actions - [ ] Installation documentation -- [ ] arm64 support for all images -- [ ] monerod-lws support - [ ] monerod-proxy support for random node forwarding - [ ] i2p service +- [ ] p2pool mining # Credits diff --git a/install b/install index b54c164..6c909d2 100755 --- a/install +++ b/install @@ -28,7 +28,7 @@ StatInfo="${White}${On_Black}" ################################################################ # Vars # ################################################################ -VERSION="v0.3.2" +VERSION="v0.3.3" XMRSH_INSTALL_CMD="sudo bash -c \"\$(curl -sLSf https://get.xmr.sh)\"" XMRSH_DIR="/opt/xmr.sh" XMRSH_BRANCH="main" @@ -304,7 +304,7 @@ configure_explorer() { configure_lws() { echo -e "${OkBullet}Configuring LWS..." while true; do - read -r -e -p " Do you want to enable the light wallet service? [y/n]: " yn + read -r -e -p " Do you want to enable the light wallet service (experimental)? [y/n]: " yn case $yn in [Yy]*) sed -i '/#!lws/s/# //g' docker-compose.yml @@ -404,6 +404,9 @@ completed() { if [ "$ENABLE_EXPLORER" = true ]; then echo -e " ${Red}│${Stat} Explorer URL: ${StatInfo}https://${HOST}${PORT_SUFF}/explorer" fi + if [ "$ENABLE_LWS" = true ]; then + echo -e " ${Red}│${Stat} LWS URL: ${StatInfo}https://${HOST}${PORT_SUFF}/lws" + fi if [ "$ENABLE_GRAFANA" = true ]; then echo -e " ${Red}│${Stat} Grafana URL: ${StatInfo}https://${HOST}${PORT_SUFF}/grafana" echo -e " ${Red}│${Stat} Grafana user: ${StatInfo}admin" From 02fad44359c302e7f0d4665484e0a63687c49294 Mon Sep 17 00:00:00 2001 From: vdo Date: Wed, 8 Jun 2022 15:06:54 +0100 Subject: [PATCH 12/19] add monero-lws-admin wrapper command --- docker-compose.yml | 2 +- monero-lws-admin | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100755 monero-lws-admin diff --git a/docker-compose.yml b/docker-compose.yml index b34a4da..d5805ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -97,7 +97,7 @@ x-monero-lws-service: &monero-lws-service labels: - "traefik.enable=true" - "traefik.http.routers.monero-lws.rule=(PathPrefix(`/lws`) )" #!nole - # - "traefik.http.routers.monero-lws.rule=(Host(`${DOMAIN}`) && PathPrefix(`/monero-lws`) )" #!le + # - "traefik.http.routers.monero-lws.rule=(Host(`${DOMAIN}`) && PathPrefix(`/lws`) )" #!le # - "traefik.http.routers.monero-lws.tls.certresolver=le" #!le - "traefik.http.middlewares.stripprefix-monero-lws.stripprefix.prefixes=/lws" - "traefik.http.routers.monero-lws.middlewares=stripprefix-monero-lws" diff --git a/monero-lws-admin b/monero-lws-admin new file mode 100755 index 0000000..4627df9 --- /dev/null +++ b/monero-lws-admin @@ -0,0 +1,2 @@ +#!/bin/bash +docker exec -ti monero-lws /usr/local/bin/monero-lws-admin ${@} From 8d003479f7bdcb21ccdea8cd72293b1fcce3b815 Mon Sep 17 00:00:00 2001 From: vdo Date: Thu, 9 Jun 2022 09:05:25 +0100 Subject: [PATCH 13/19] lws extra params --- .env | 1 + README.md | 2 +- docker-compose.yml | 4 ++-- install | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.env b/.env index 9806607..540cba7 100644 --- a/.env +++ b/.env @@ -17,6 +17,7 @@ MONEROD_accessControlAllowOriginList=* LWS_TAG=0.17-15bce7f LWS_PORT=8000 +LWS_EXTRA_PARAMS= #TOR_TAG=latest TOR_TAG=0.4.7.7 diff --git a/README.md b/README.md index 02f92ff..b076a14 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Check the [wiki](https://github.com/vdo/xmr.sh/wiki/FAQ) - [x] arm64 support for all images - [x] monerod-lws support (experimental) - [ ] Shellcheck via Github Actions -- [ ] Installation documentation +- [ ] Documentation - [ ] monerod-proxy support for random node forwarding - [ ] i2p service - [ ] p2pool mining diff --git a/docker-compose.yml b/docker-compose.yml index d5805ec..b0babed 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,7 +38,7 @@ x-monerod-command: &monerod-command --public-node --no-igd --enable-dns-blocklist --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=${MONEROD_RESTRICTED_RPC_PORT} --confirm-external-bind - --zmq-pub tcp://0.0.0.0:${MONEROD_ZMQ_PUB_PORT}--zmq-rpc-bind-port=${MONEROD_ZMQ_RPC_PORT} --zmq-rpc-bind-ip=0.0.0.0 + --zmq-pub tcp://0.0.0.0:${MONEROD_ZMQ_PUB_PORT} --zmq-rpc-bind-port=${MONEROD_ZMQ_RPC_PORT} --zmq-rpc-bind-ip=0.0.0.0 --rpc-bind-port=${MONEROD_RPC_PORT} --rpc-bind-ip=0.0.0.0 ${MONEROD_EXTRA_PARAMS} @@ -87,7 +87,7 @@ x-monero-lws-service: &monero-lws-service command: >- --rest-server http://0.0.0.0:8000 --daemon=tcp://monerod:${MONEROD_ZMQ_RPC_PORT} --sub=tcp://monerod:${MONEROD_ZMQ_PUB_PORT} --log-level=4 - --confirm-external-bind + --confirm-external-bind ${LWS_EXTRA_PARAMS} volumes: - ./data/monero-lws:/home/monero-lws/.bitmonero/ # ports: diff --git a/install b/install index 6c909d2..00cc806 100755 --- a/install +++ b/install @@ -187,12 +187,14 @@ configure_network() { NETWORK="testnet" sed -i "s/MONEROD_P2P_PORT=.*/MONEROD_P2P_PORT=28080/g" .env sed -i "/MONEROD_EXTRA_PARAMS/s/$/ --testnet/g" .env + sed -i "/LWS_EXTRA_PARAMS/s/$/ --network test/g" .env break ;; "stagenet") NETWORK="stagenet" sed -i "s/MONEROD_P2P_PORT=.*/MONEROD_P2P_PORT=38080/g" .env sed -i "/MONEROD_EXTRA_PARAMS/s/$/ --stagenet/g" .env + sed -i "/LWS_EXTRA_PARAMS/s/$/ --network stage/g" .env break ;; *) echo "Invalid network choice!" ;; From 0b40c1521d572e3a5527583842ff0bf480184a45 Mon Sep 17 00:00:00 2001 From: vdo Date: Thu, 9 Jun 2022 10:12:13 +0100 Subject: [PATCH 14/19] Asciinema v0.3.3 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b076a14..a8fa7b9 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Other distributions with docker pre-installed would probably be compatible as we ## Demo -[![asciicast](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDfv.svg)](https://asciinema.org/a/DvAz3ygotWYfODOP3duvLbDfv) +[![asciicast](https://asciinema.org/a/1gL7tNhb3XgPUr26losgZaeCJ.svg)](https://asciinema.org/a/1gL7tNhb3XgPUr26losgZaeCJ) ## FAQ From 290f00e2dcf5e2c0bb1132f9bac5bad9821886b4 Mon Sep 17 00:00:00 2001 From: vdo Date: Thu, 11 Aug 2022 10:39:14 +0100 Subject: [PATCH 15/19] adding p2pool service --- .env | 5 +++++ docker-compose.yml | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/.env b/.env index 540cba7..79108f4 100644 --- a/.env +++ b/.env @@ -26,6 +26,11 @@ TOR_HTTP_PORT=80 EXPLORER_TAG=v0.17 EXPLORER_PORT=8081 +P2POOL_WALLET= +P2POOL_STRATUM_PORT=3333 +P2POOL_P2P_PORT=37889 +P2POOL_PEERS=65.21.227.114:37889,node.sethforprivacy.com:37889 + GRAFANA_TAG=8.5.4 GF_SECURITY_ADMIN_PASSWORD=xmrsh-admin PROMETHEUS_TAG=v2.36.0 diff --git a/docker-compose.yml b/docker-compose.yml index b0babed..c69cb89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -116,6 +116,24 @@ x-monero-exporter-service: &monero-exporter-service image: vdo1138/monero-exporter:0.0.2 <<: *log-config +x-p2pool-service: &p2pool-service + p2pool: + image: sethsimmons/p2pool:latest + restart: unless-stopped + container_name: p2pool + #tty: true + #stdin_open: true + volumes: + - ./data/p2pool:/home/p2pool + # - /dev/hugepages:/dev/hugepages:rw + ports: + - ${P2POOL_STRATUM_PORT}:${P2POOL_STRATUM_PORT} + - ${P2POOL_P2P_PORT}:${P2POOL_P2P_PORT} + command: >- + --wallet "${P2POOL_WALLET}" + --stratum "0.0.0.0:${P2POOL_STRATUM_PORT}" --p2p "0.0.0.0:${P2POOL_P2P_PORT}" --rpc-port "${MONEROD_RPC_PORT}" + --addpeers "P2POOL_PEERS" --host "monerod" + x-grafana-service: &grafana-service grafana: user: "1000" @@ -213,6 +231,7 @@ services: # <<: *explorer-service #!explorer # <<: *monero-lws-service #!lws # <<: *monero-exporter-service #!monero-exporter + # <<: *p2pool-service #!p2pool # <<: *grafana-service #!grafana # <<: *prometheus-service #!prometheus # <<: *watchtower-service #!watchtower From 3f8df0605875c55ac2f75a3f00188a65a47eaf32 Mon Sep 17 00:00:00 2001 From: vdo Date: Wed, 7 Sep 2022 08:48:07 +0100 Subject: [PATCH 16/19] Bump versions, add p2pool step --- .env | 8 ++++---- docker-compose.yml | 8 ++++---- install | 27 ++++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/.env b/.env index 79108f4..efb135f 100644 --- a/.env +++ b/.env @@ -15,18 +15,18 @@ MONEROD_ZMQ_PUB_PORT=18083 MONEROD_EXTRA_PARAMS= MONEROD_accessControlAllowOriginList=* -LWS_TAG=0.17-15bce7f +LWS_TAG=v0.2_0.18 LWS_PORT=8000 LWS_EXTRA_PARAMS= #TOR_TAG=latest -TOR_TAG=0.4.7.7 +TOR_TAG=v0.4.7.8-57f8867 TOR_HTTP_PORT=80 -EXPLORER_TAG=v0.17 +EXPLORER_TAG=v0.18 EXPLORER_PORT=8081 -P2POOL_WALLET= +P2POOL_WALLET=changeme P2POOL_STRATUM_PORT=3333 P2POOL_P2P_PORT=37889 P2POOL_PEERS=65.21.227.114:37889,node.sethforprivacy.com:37889 diff --git a/docker-compose.yml b/docker-compose.yml index c69cb89..6c89394 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,7 +45,7 @@ x-monerod-command: &monerod-command x-tor-service: &tor-service tor: container_name: tor - image: vdo1138/tor-hidden-service:${TOR_TAG} + image: goldy/tor-hidden-service:${TOR_TAG} restart: unless-stopped links: - monerod @@ -84,14 +84,14 @@ x-monero-lws-service: &monero-lws-service image: vdo1138/monero-lws:${LWS_TAG} container_name: monero-lws restart: unless-stopped + security_opt: + - "no-new-privileges:true" command: >- --rest-server http://0.0.0.0:8000 --daemon=tcp://monerod:${MONEROD_ZMQ_RPC_PORT} --sub=tcp://monerod:${MONEROD_ZMQ_PUB_PORT} --log-level=4 --confirm-external-bind ${LWS_EXTRA_PARAMS} volumes: - ./data/monero-lws:/home/monero-lws/.bitmonero/ - # ports: - # - ${LWS_PORT} depends_on: - monerod labels: @@ -132,7 +132,7 @@ x-p2pool-service: &p2pool-service command: >- --wallet "${P2POOL_WALLET}" --stratum "0.0.0.0:${P2POOL_STRATUM_PORT}" --p2p "0.0.0.0:${P2POOL_P2P_PORT}" --rpc-port "${MONEROD_RPC_PORT}" - --addpeers "P2POOL_PEERS" --host "monerod" + --addpeers "P2POOL_PEERS" --host "monerod" --no-randomx x-grafana-service: &grafana-service grafana: diff --git a/install b/install index 00cc806..7ed85e7 100755 --- a/install +++ b/install @@ -319,6 +319,28 @@ configure_lws() { done } +configure_p2pool() { + echo -e "${OkBullet}Configuring p2pool..." + while true; do + read -r -e -p " Do you want to enable the p2pool service? [y/n]: " yn + case $yn in + [Yy]*) + read -r -e -p " Enter the desired primary address which will recieve the rewards. []: " P2P_ADDRESS + while ! echo "${P2P_ADDRESS}" | grep -qP '(4|5|9|A)[a-zA-Z|\d]{94}'; do + echo -e "${WarnBullet}Address is not valid. Remember: subaddresses are not supported by p2pool." + read -r -p " Enter again your primary address: " P2P_ADDRESS + done + sed -i "s/P2POOL_WALLET=.*/P2POOL_WALLET=${P2P_ADDRESS}/g" .env + sed -i '/#!p2pool/s/# //g' docker-compose.yml + ENABLE_P2POOL=true + break + ;; + [Nn]*) break ;; + *) echo " Please answer yes or no." ;; + esac + done +} + configure_grafana() { echo -e "${OkBullet}Configuring grafana..." while true; do @@ -409,6 +431,9 @@ completed() { if [ "$ENABLE_LWS" = true ]; then echo -e " ${Red}│${Stat} LWS URL: ${StatInfo}https://${HOST}${PORT_SUFF}/lws" fi + if [ "$ENABLE_P2POOL" = true ]; then + echo -e " ${Red}│${Stat} P2Pool stratum: ${StatInfo}${HOST}:3333" + fi if [ "$ENABLE_GRAFANA" = true ]; then echo -e " ${Red}│${Stat} Grafana URL: ${StatInfo}https://${HOST}${PORT_SUFF}/grafana" echo -e " ${Red}│${Stat} Grafana user: ${StatInfo}admin" @@ -444,7 +469,7 @@ configure_cors configure_tor configure_lws # Deployment of explorer disabled until it's stable. -# configure_explorer +configure_explorer configure_grafana configure_watchtower From 8a741fe0e1f82f5f07a7fae313addf1fe6c82111 Mon Sep 17 00:00:00 2001 From: vdo Date: Mon, 12 Sep 2022 12:35:13 +0100 Subject: [PATCH 17/19] disable explorer, enable p2pool --- install | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install b/install index 7ed85e7..f2eef34 100755 --- a/install +++ b/install @@ -468,8 +468,9 @@ configure_pruning configure_cors configure_tor configure_lws +configure_p2pool # Deployment of explorer disabled until it's stable. -configure_explorer +# configure_explorer configure_grafana configure_watchtower From a5708005388f2fce22c74283eb485dfc53ed0314 Mon Sep 17 00:00:00 2001 From: vdo Date: Fri, 16 Sep 2022 12:25:49 +0100 Subject: [PATCH 18/19] Bump version --- install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install b/install index f2eef34..aca7cb7 100755 --- a/install +++ b/install @@ -28,7 +28,7 @@ StatInfo="${White}${On_Black}" ################################################################ # Vars # ################################################################ -VERSION="v0.3.3" +VERSION="v0.4.0" XMRSH_INSTALL_CMD="sudo bash -c \"\$(curl -sLSf https://get.xmr.sh)\"" XMRSH_DIR="/opt/xmr.sh" XMRSH_BRANCH="main" From 9bf2d794e7a27fdf97434c80d7df80f34b4e67e8 Mon Sep 17 00:00:00 2001 From: vdo Date: Fri, 16 Sep 2022 12:27:22 +0100 Subject: [PATCH 19/19] tor from vdo1138 for arm64 support --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6c89394..368b5c4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,7 +45,7 @@ x-monerod-command: &monerod-command x-tor-service: &tor-service tor: container_name: tor - image: goldy/tor-hidden-service:${TOR_TAG} + image: vdo1138/tor-hidden-service:${TOR_TAG} restart: unless-stopped links: - monerod