Paquete para la Community App Store de Umbrel (prefijo sparrow).
umbrel-app/sparrow-broadcast-pool/
├── docker-compose.yml # Servicios Umbrel (web + init + app_proxy)
├── exports.sh # IP LAN del nodo para URL wallet
├── Dockerfile # Imagen multi-stage Rust
├── umbrel-app.yml # Manifest de la tienda
└── icon.png # Icono de la app (desde icon.png del proyecto)
-
Sincroniza el paquete (manifest + código fuente para el build Docker):
SRC=/ruta/a/Mywalletcompromise DEST=/ruta/a/umbrel-apps/sparrow-broadcast-pool rm -rf "$DEST" && mkdir -p "$DEST" cp -r "$SRC/umbrel-app/sparrow-broadcast-pool/"* "$DEST/" cp "$SRC/Cargo.toml" "$SRC/Cargo.lock" "$DEST/" cp -r "$SRC/src" "$DEST/"
-
Commit y push a
https://github.com/criptoworld8484/umbrel-apps -
En Umbrel: Ajustes → App Stores → Añadir la URL del repo de la tienda.
-
Instala Broadcast Pool desde la tienda community.
- Bitcoin Node (sincronizado)
- Electrs (indexador Electrum)
La app usa automáticamente:
| Variable Umbrel | Uso |
|---|---|
APP_BITCOIN_NODE_IP / RPC |
Bitcoin Core |
APP_ELECTRS_NODE_IP |
Host del indexador (red Docker interna) |
APP_ELECTRS_NODE_PORT |
Puerto electrs (50001 o 50002; se prueban ambos si falla) |
APP_SPARROW_BROADCAST_POOL_LAN_IP |
IP LAN del nodo (vía exports.sh) → URL wallet |
| Puerto | Uso |
|---|---|
| 8080 | Dashboard web (vía proxy Umbrel) |
| 50050 | Servidor Electrum para Sparrow (IP-LAN:50050) |
| 50051 | Servidor Electrum dedicado Liana (IP-LAN:50051) |
Al arrancar, broadcast-pool:
- Lee la red desde Bitcoin Core (
getblockchaininfo) - Detecta electrs/fulcrum probando TCP 50001 y 50002 (genesis hash debe coincidir)
- Muestra en Settings solo
IP-LAN:50050(no IPs Docker internas)
- Instala y abre Broadcast Pool en Umbrel.
- En el dashboard, copia la URL Electrum (host LAN + puerto 50050).
- En Sparrow: Settings → Server → añade esa URL (no uses electrs directamente).
- Firma y envía transacciones; el pool las retiene y las difunde según el modo configurado.
- URL en Sparrow:
tcp://IP-LAN-UMBREL:50050(sin SSL), no electrs:50001 - Versión mínima probada en Umbrel: v0.2.16 (respuesta sync por cada línea RPC)
- Ver troubleshooting:
TROUBLESHOOTING.md§6b y.cursor/skills/umbrel-apps-issue/reference.md
Desde la raíz del proyecto:
docker compose -f umbrel-app/sparrow-broadcast-pool/docker-compose.yml buildLa primera compilación Rust puede tardar varios minutos.
Tras publicar en GHCR, sustituye en docker-compose.yml el bloque build: por:
web:
image: ghcr.io/criptoworld8484/broadcast-pool-umbrel:0.1.0El workflow .github/workflows/umbrel-docker.yml automatiza el build y push a GHCR.
Volumen Umbrel: ${APP_DATA_DIR}/data → SQLite y estado del pool en /home/app/data.