export APP_LIGHTNING_IP = "10.21.22.3"
export APP_LIGHTNING_NODE_IP = "10.21.21.9"
export APP_LIGHTNING_NODE_PORT = "9735"
export APP_LIGHTNING_NODE_GRPC_PORT = "10009"
export APP_LIGHTNING_NODE_REST_PORT = "8080"
export APP_LIGHTNING_NODE_DATA_DIR = " ${ EXPORTS_APP_DIR } /data/lnd "
BIN_ARGS = ( )
BIN_ARGS += ( "--configfile=/data/.lnd/umbrel-lnd.conf" )
# [Application Options]
BIN_ARGS += ( " --listen=0.0.0.0: ${ APP_LIGHTNING_NODE_PORT } " )
BIN_ARGS += ( " --rpclisten=0.0.0.0: ${ APP_LIGHTNING_NODE_GRPC_PORT } " )
BIN_ARGS += ( " --restlisten=0.0.0.0: ${ APP_LIGHTNING_NODE_REST_PORT } " )
# [Bitcoin]
BIN_ARGS += ( "--bitcoin.active" )
if [ [ " ${ APP_BITCOIN_NETWORK } " = = "mainnet" ] ] ; then
BIN_ARGS += ( "--bitcoin.mainnet" )
elif [ [ " ${ APP_BITCOIN_NETWORK } " = = "testnet" ] ] ; then
BIN_ARGS += ( "--bitcoin.testnet" )
elif [ [ " ${ APP_BITCOIN_NETWORK } " = = "signet" ] ] ; then
BIN_ARGS += ( "--bitcoin.signet" )
elif [ [ " ${ APP_BITCOIN_NETWORK } " = = "regtest" ] ] ; then
BIN_ARGS += ( "--bitcoin.regtest" )
else
echo " Warning ( ${ EXPORTS_APP_ID } ): Bitcoin Network ' ${ APP_BITCOIN_NETWORK } ' is not supported "
fi
BIN_ARGS += ( "--bitcoin.node=bitcoind" )
# [Bitcoind]
BIN_ARGS += ( " --bitcoind.rpchost= ${ APP_BITCOIN_NODE_IP } : ${ APP_BITCOIN_RPC_PORT } " )
BIN_ARGS += ( " --bitcoind.rpcuser= ${ APP_BITCOIN_RPC_USER } " )
BIN_ARGS += ( " --bitcoind.rpcpass= ${ APP_BITCOIN_RPC_PASS } " )
BIN_ARGS += ( " --bitcoind.zmqpubrawblock=tcp:// ${ APP_BITCOIN_NODE_IP } : ${ APP_BITCOIN_ZMQ_RAWBLOCK_PORT } " )
BIN_ARGS += ( " --bitcoind.zmqpubrawtx=tcp:// ${ APP_BITCOIN_NODE_IP } : ${ APP_BITCOIN_ZMQ_RAWTX_PORT } " )
# [tor]
BIN_ARGS += ( "--tor.active" )
BIN_ARGS += ( "--tor.v3" )
BIN_ARGS += ( " --tor.control= ${ TOR_PROXY_IP } :29051 " )
BIN_ARGS += ( " --tor.socks= ${ TOR_PROXY_IP } : ${ TOR_PROXY_PORT } " )
BIN_ARGS += ( " --tor.targetipaddress= ${ APP_LIGHTNING_NODE_IP } " )
BIN_ARGS += ( " --tor.password= ${ TOR_PASSWORD } " )
export APP_LIGHTNING_COMMAND = $( IFS = " " ; echo " ${ BIN_ARGS [@] } " )
# echo "${APP_LIGHTNING_COMMAND}"
rest_hidden_service_file = " ${ EXPORTS_TOR_DATA_DIR } /app- ${ EXPORTS_APP_ID } -rest/hostname "
grpc_hidden_service_file = " ${ EXPORTS_TOR_DATA_DIR } /app- ${ EXPORTS_APP_ID } -grpc/hostname "
export APP_LIGHTNING_REST_HIDDEN_SERVICE = " $( cat " ${ rest_hidden_service_file } " 2>/dev/null || echo "notyetset.onion" ) "
export APP_LIGHTNING_GRPC_HIDDEN_SERVICE = " $( cat " ${ grpc_hidden_service_file } " 2>/dev/null || echo "notyetset.onion" ) "
{
# Migrate hybrid mode settings for app updates differently to fresh installs
LIGHTNING_DATA_DIR = " ${ EXPORTS_APP_DIR } /data/lightning "
LND_DATA_DIR = " ${ EXPORTS_APP_DIR } /data/lnd "
IS_POST_HYBRID_MODE_INSTALL_FILE_PATH = " ${ LIGHTNING_DATA_DIR } /IS_POST_HYBRID_MODE_INSTALL "
# If no lnd/data directory exists, we write out a file to indicate that this is a fresh install.
# This gets around the issue of the pre-start hook starting up the lnd container early for Tor HS creation
# and creating the lnd/data directory.
if [ [ ! -d " ${ LND_DATA_DIR } /data " ] ] ; then
touch " ${ IS_POST_HYBRID_MODE_INSTALL_FILE_PATH } "
fi
APP_CONFIG_EXISTS = "false"
APP_HYBRID_MODE_SETTING_EXISTS = "false"
if [ [ -f " ${ LIGHTNING_DATA_DIR } /settings.json " ] ] ; then
APP_CONFIG_EXISTS = "true"
if jq -e '.lnd | has("tor.skip-proxy-for-clearnet-targets")' " ${ LIGHTNING_DATA_DIR } /settings.json " >/dev/null 2>& 1; then
APP_HYBRID_MODE_SETTING_EXISTS = "true"
fi
fi
# We only need to preserve tor-only configuration for existing pre-1.2.0 installs
if [ [ ! -f " ${ IS_POST_HYBRID_MODE_INSTALL_FILE_PATH } " ] ] ; then
if [ [ " ${ APP_CONFIG_EXISTS } " = "false" ] ] ; then
# If no settings.json exists at all this is an update to a pre-Advanced-Settings version of the app, so we preserve existing tor-only configuration
export LND_INITIALIZE_WITH_TOR_ONLY = "true"
elif [ [ " ${ APP_CONFIG_EXISTS } " = "true" ] ] && [ [ " ${ APP_HYBRID_MODE_SETTING_EXISTS } " = "false" ] ] ; then
# If settings.json exists, but there is no hybrid mode setting yet, then this is a pre-1.2.0 version of the app, so we still preserve existing tor-only configuration
export LND_INITIALIZE_WITH_TOR_ONLY = "true"
fi
fi
} || true