Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.

This commit is contained in:
2026-04-30 07:41:41 +03:00
parent eec534760e
commit 89b17ea2b2
1406 changed files with 38483 additions and 3 deletions
View File
+39
View File
@@ -0,0 +1,39 @@
manifestVersion: 1.1
id: electrumx
implements:
- electrs
category: bitcoin
name: ElectrumX
version: "1.16.0-patch.2"
tagline: Легкий сервер Electrum
description: >
Запустите свой личный сервер Electrum и подключите свой кошелек, совместимый с Electrum,
включая BitBoxApp, BlueWallet, Electrum Wallet (Android и настольный компьютер), Nunchuk
(Десктоп), Phoenix и Sparrow Wallet вместо использования сторонних
Сервер Электрум.
Работает на ElectrumX от Томаса Фогтлина.
Официальное приложение от DFWebOS.
developer: DFWebOS
website: https://dfwebos.com/
dependencies:
- bitcoin
repo: https://github.com/getumbrel/umbrel-electrumx
support: https://community.getumbrel.com/c/bitcoin-and-lightning
port: 1999
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultPassword: ""
releaseNotes: >
Это обновление добавляет поддержку резервного копирования в umbrelOS 1.5.
submitter: DFWebOS
submission: https://github.com/getumbrel/dfwebos-apps/pull/1813
backupIgnore:
- data/electrumx/meta
- data/electrumx/hist
+53
View File
@@ -0,0 +1,53 @@
version: "3.7"
services:
app_proxy:
environment:
APP_HOST: $APP_ELECTRUMX_IP
APP_PORT: 3007
app:
image: ghcr.io/getumbrel/umbrel-electrumx:1.0.0@sha256:2352ce668f722118e248c7b4458a6ea4509e5312e3cf1ee3963ddea35d395c09
depends_on:
- electrumx
restart: on-failure
environment:
ELECTRUM_HIDDEN_SERVICE: "${APP_ELECTRUMX_RPC_HIDDEN_SERVICE}"
ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}"
ELECTRUM_HOST: "${APP_ELECTRUMX_NODE_IP}"
ELECTRUM_PUBLIC_CONNECTION_PORT: "${APP_ELECTRUMX_PUBLIC_CONNECTION_PORT}"
ELECTRUM_RPC_PORT: "${APP_ELECTRUMX_RPC_PORT}"
BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}"
RPC_USER: "${APP_BITCOIN_RPC_USER}"
RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}"
RPC_PORT: "${APP_BITCOIN_RPC_PORT}"
networks:
default:
ipv4_address: $APP_ELECTRUMX_IP
electrumx:
image: lukechilds/electrumx:v1.16.0@sha256:2949784536f8f85af229004e12e5b5c3a1d7428918a492f77b4e958035c2ae2a
restart: always
init: true
environment:
DAEMON_URL: "http://${APP_BITCOIN_RPC_USER}:${APP_BITCOIN_RPC_PASS}@${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}"
COIN: "BitcoinSegwit"
# https://github.com/spesmilo/electrumx/blob/master/electrumx/lib/coins.py
NET: $APP_ELECTRUMX_BITCOIN_NETWORK
volumes:
- "${APP_DATA_DIR}/data/electrumx:/data"
ports:
- "${APP_ELECTRUMX_PUBLIC_CONNECTION_PORT}:${APP_ELECTRUMX_NODE_PORT}"
networks:
default:
ipv4_address: $APP_ELECTRUMX_NODE_IP
tor:
image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a
user: "1000:1000"
restart: on-failure
volumes:
- ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro
- ${TOR_DATA_DIR}:/data
environment:
HOME: "/tmp"
+30
View File
@@ -0,0 +1,30 @@
export APP_ELECTRUMX_IP="10.21.22.199"
export APP_ELECTRUMX_NODE_IP="10.21.21.199"
export APP_ELECTRUMX_NODE_PORT="50001"
export APP_ELECTRUMX_PUBLIC_CONNECTION_PORT="50003"
export APP_ELECTRUMX_RPC_PORT="8000"
# ElectrumX NET принимает: mainnet, testnet, Signet, regtest, testnet4
# Electrumx 1.16.0 не поддерживает Signet или TestNet4 (однако последние коммиты в репозитории поддерживают)
export APP_ELECTRUMX_BITCOIN_NETWORK=$APP_BITCOIN_NETWORK
if [[ "${BITCOIN_NETWORK}" == "testnet3" ]]; then
export APP_ELECTRUMX_BITCOIN_NETWORK="testnet"
fi
for var in \
IP \
NODE_IP \
NODE_PORT \
; do
electrs_var="APP_ELECTRS_${var}"
electrumx_var="APP_ELECTRUMX_${var}"
if [ -n "${!electrumx_var-}" ]; then
export "$electrs_var"="${!electrs_var:=${!electrumx_var}}"
else
echo "Warning: $electrumx_var is unset or empty"
fi
done
rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-tpc/hostname"
export APP_ELECTRUMX_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Отложите загрузку ElectrumX до тех пор, пока скрытая служба Tor RPC не будет готова.
HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-tpc/hostname"
if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
exit
fi
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach electrumx
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor
echo "App: ${APP_ID} - Generating Tor Hidden Service..."
for attempt in $(seq 1 100); do
if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
echo "App: ${APP_ID} - Hidden service file created successfully!"
break
fi
sleep 0.1
done
if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then
echo "App: ${APP_ID} - Hidden service file wasn't created"
fi
+4
View File
@@ -0,0 +1,4 @@
# ElectrumX RPC Скрытая служба
HiddenServiceDir /data/app-$APP_ID-tpc
HiddenServicePort $APP_ELECTRUMX_NODE_PORT $APP_ELECTRUMX_NODE_IP:$APP_ELECTRUMX_NODE_PORT
HiddenServicePort $APP_ELECTRUMX_PUBLIC_CONNECTION_PORT $APP_ELECTRUMX_NODE_IP:$APP_ELECTRUMX_NODE_PORT