From 8513d21134dae87b0d626723125a611e348de219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Haf?= Date: Mon, 7 Apr 2025 14:06:39 +0200 Subject: [PATCH] add mempool dot guide --- btc-mempool/data/.gitkeep | 0 btc-mempool/docker-compose.yml | 88 +++++++++++++++++++++++++++++++++ btc-mempool/exports.sh | 17 +++++++ btc-mempool/mysql/data/.gitkeep | 0 btc-mempool/umbrel-app.yml | 52 +++++++++++++++++++ 5 files changed, 157 insertions(+) create mode 100644 btc-mempool/data/.gitkeep create mode 100644 btc-mempool/docker-compose.yml create mode 100644 btc-mempool/exports.sh create mode 100644 btc-mempool/mysql/data/.gitkeep create mode 100644 btc-mempool/umbrel-app.yml diff --git a/btc-mempool/data/.gitkeep b/btc-mempool/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/btc-mempool/docker-compose.yml b/btc-mempool/docker-compose.yml new file mode 100644 index 0000000..32e0f3d --- /dev/null +++ b/btc-mempool/docker-compose.yml @@ -0,0 +1,88 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_MEMPOOL_IP + APP_PORT: $APP_MEMPOOL_PORT + PROXY_AUTH_ADD: "false" + web: + image: mempool/frontend:v3.0.1@sha256:f3a74d2ca47dfa679f8da5a2b22bd714164794dc2fd088ef8779a79b21d4e742 + user: "1000:1000" + init: true + restart: on-failure + stop_grace_period: 1m + command: "./wait-for mariadb:3306 --timeout=720 -- nginx -g 'daemon off;'" + environment: + FRONTEND_HTTP_PORT: $APP_MEMPOOL_PORT + BACKEND_MAINNET_HTTP_HOST: $APP_MEMPOOL_API_IP + NGINX_PORT: $APP_MEMPOOL_PORT + NGINX_HOSTNAME: $APP_MEMPOOL_API_IP + LIGHTNING_DETECTED_PORT: $APP_MEMPOOL_LIGHTNING_NODE_PORT + AUDIT: true + networks: + default: + ipv4_address: $APP_MEMPOOL_IP + api: + image: mempool/backend:v3.0.1@sha256:4daa540727d3a830e71fb9f1ae281d1393be5077177c7d714066d450fb8f5bbf + user: "1000:1000" + init: true + restart: on-failure + stop_grace_period: 1m + command: "./wait-for-it.sh mariadb:3306 --timeout=720 --strict -- ./start.sh" + volumes: + - ${APP_DATA_DIR}/data:/backend/cache + - ${UMBREL_ROOT}/app-data/lightning/data/lnd:/lnd:ro + environment: + CORE_RPC_HOST: $APP_BITCOIN_NODE_IP + CORE_RPC_PORT: $APP_BITCOIN_RPC_PORT + CORE_RPC_USERNAME: $APP_BITCOIN_RPC_USER + CORE_RPC_PASSWORD: $APP_BITCOIN_RPC_PASS + ELECTRUM_HOST: $APP_ELECTRS_NODE_IP + ELECTRUM_PORT: $APP_ELECTRS_NODE_PORT + ELECTRUM_TLS: "false" + DATABASE_HOST: $APP_MEMPOOL_DB_IP + DATABASE_PORT: "3306" + DATABASE_DATABASE: "mempool" + DATABASE_USERNAME: "mempool" + DATABASE_PASSWORD: "mempool" + MEMPOOL_HTTP_PORT: "8999" + MEMPOOL_CACHE_DIR: "/backend/cache" + MEMPOOL_CLEAR_PROTECTION_MINUTES: "20" + MEMPOOL_INDEXING_BLOCKS_AMOUNT: "52560" + MEMPOOL_STDOUT_LOG_MIN_PRIORITY: "info" + LIGHTNING_ENABLED: "true" + LIGHTNING_BACKEND: "lnd" + LIGHTNING_STATS_REFRESH_INTERVAL: 3600 + LIGHTNING_GRAPH_REFRESH_INTERVAL: 3600 + LND_TLS_CERT_PATH: "/lnd/tls.cert" + LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/readonly.macaroon" + LND_REST_API_URL: "https://$APP_MEMPOOL_LIGHTNING_NODE_IP:$APP_MEMPOOL_LIGHTNING_NODE_REST_PORT" + LND_TIMEOUT: 120000 + NODE_OPTIONS: "--max-old-space-size=2048" + BLOCKS_SUMMARIES_INDEXING: true + GOGGLES_INDEXING: true + AUDIT: true + networks: + default: + ipv4_address: $APP_MEMPOOL_API_IP + mariadb: + image: mariadb:10.5.12@sha256:dfcba5641bdbfd7cbf5b07eeed707e6a3672f46823695a0d3aba2e49bbd9b1dd + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/mysql/data:/var/lib/mysql + environment: + MYSQL_DATABASE: "mempool" + MYSQL_USER: "mempool" + MYSQL_PASSWORD: "mempool" + MYSQL_ROOT_PASSWORD: "moneyprintergobrrr" + networks: + default: + ipv4_address: $APP_MEMPOOL_DB_IP + widget-server: + image: getumbrel/umbrel-mempool-widget-server:v1.0.0@sha256:099846e613c7310deba842241477737babcdf78250fba6edf39d456712eeefc3 + environment: + MEMPOOL_API_URL: "http://$APP_MEMPOOL_IP:$APP_MEMPOOL_PORT/api/v1/fees/recommended" + restart: on-failure \ No newline at end of file diff --git a/btc-mempool/exports.sh b/btc-mempool/exports.sh new file mode 100644 index 0000000..3f182e7 --- /dev/null +++ b/btc-mempool/exports.sh @@ -0,0 +1,17 @@ +export APP_MEMPOOL_IP="10.21.21.26" +export APP_MEMPOOL_PORT="3006" +export APP_MEMPOOL_API_IP="10.21.21.27" +export APP_MEMPOOL_DB_IP="10.21.21.28" + +hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}/hostname" +export APP_MEMPOOL_HIDDEN_SERVICE="$(cat "${hidden_service_file}" 2>/dev/null || echo "")" + +# Check if Lightning Node app is installed and export required variables if so +# The Lightning Node app is optional and not listed in the `required` field of the umbrel-app.yml file, so we need to do this for compatibility with umbrelOS >=1.3 where only exports of required apps are sourced. +installed_apps=$("${UMBREL_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'lightning'; then + export APP_MEMPOOL_LIGHTNING_NODE_PORT="9735" + export APP_MEMPOOL_LIGHTNING_NODE_IP="10.21.21.9" + export APP_MEMPOOL_LIGHTNING_NODE_REST_PORT="8080" +fi \ No newline at end of file diff --git a/btc-mempool/mysql/data/.gitkeep b/btc-mempool/mysql/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/btc-mempool/umbrel-app.yml b/btc-mempool/umbrel-app.yml new file mode 100644 index 0000000..40e86af --- /dev/null +++ b/btc-mempool/umbrel-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: btc-mempool +category: bitcoin +name: mempool dot guide +version: "3.2.0" +tagline: Be your own explorer +description: >- + Run your own instance of The Mempool Open Source Project and trust no one. + + + Use your own node to beautifully visualize data about the Bitcoin network, transactions, blockchain, mempool, and more. + + + This product includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com +releaseNotes: >- +developer: Mempool Space K.K. +website: https://mempool.space/about +dependencies: + - bitcoin + - electrs +repo: https://github.com/mempool/mempool +support: https://mempool.support +port: 3006 +gallery: + - https://raw.githubusercontent.com/Retropex/Bitcoin-store/refs/heads/master/icon/mempooldotguide.png +path: "" +defaultUsername: "" +defaultPassword: "" +widgets: + - id: "stats" + type: "four-stats" + refresh: "5s" + endpoint: "widget-server:3000/widgets/fees" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "No priority" + text: "2" + subtext: "sat/vB" + - title: "Low priority" + text: "6" + subtext: "sat/vB" + - title: "Medium priority" + text: "18" + subtext: "sat/vB" + - title: "High priority" + text: "27" + subtext: "sat/vB" +submitter: Mempool Space K.K. +submission: https://github.com/getumbrel/umbrel/pull/470