umbrel-apps/monero/exports.sh
Deverick e70fb53470
App Submission: Monero Node (#690)
Co-authored-by: nmfretz <nmfretz@gmail.com>
2024-06-25 16:10:24 -07:00

95 lines
3.2 KiB
Bash

export APP_MONERO_IP="10.21.22.178"
export APP_MONERO_NODE_IP="10.21.21.179"
export APP_MONERO_TOR_PROXY_IP="10.21.21.180"
export APP_MONERO_I2P_DAEMON_IP="10.21.21.181"
export APP_MONERO_DATA_DIR="${EXPORTS_APP_DIR}/data/monero"
export APP_MONERO_RPC_PORT="18081"
export APP_MONERO_RESTRICTED_RPC_PORT="18089"
export APP_MONERO_P2P_PORT="18080"
export APP_MONERO_TOR_PORT="9901"
#temporarily set to mainnet
MONERO_NETWORK="mainnet"
MONERO_CHAIN="mainnet"
MONERO_ENV_FILE="${EXPORTS_APP_DIR}/.env"
{
MONERO_APP_CONFIG_FILE="${EXPORTS_APP_DIR}/data/app/monero-config.json"
if [[ -f "${MONERO_APP_CONFIG_FILE}" ]]
then
monero_app_network=$(jq -r '.network' "${MONERO_APP_CONFIG_FILE}")
case $monero_app_network in
"mainnet")
MONERO_NETWORK="mainnet";;
"testnet")
MONERO_NETWORK="testnet";;
"stagenet")
MONERO_NETWORK="stagenet";;
esac
fi
} > /dev/null || true
if [[ ! -f "${MONERO_ENV_FILE}" ]]; then
if [[ -z "${MONERO_NETWORK}" ]]; then
MONERO_NETWORK="mainnet"
fi
if [[ -z ${MONERO_RPC_USER+x} ]] || [[ -z ${MONERO_RPC_PASS+x} ]] || [[ -z ${MONERO_RPC_AUTH+x} ]]; then
MONERO_RPC_USER="monero"
MONERO_RPC_DETAILS=$("${EXPORTS_APP_DIR}/scripts/rpcauth.py" "${MONERO_RPC_USER}")
MONERO_RPC_PASS=$(echo "$MONERO_RPC_DETAILS" | tail -1)
MONERO_RPC_AUTH=$(echo "$MONERO_RPC_DETAILS" | head -2 | tail -1 | sed -e "s/^rpc-login=//")
fi
echo "export APP_MONERO_NETWORK='${MONERO_NETWORK}'" > "${MONERO_ENV_FILE}"
echo "export APP_MONERO_RPC_USER='${MONERO_RPC_USER}'" >> "${MONERO_ENV_FILE}"
echo "export APP_MONERO_RPC_PASS='${MONERO_RPC_PASS}'" >> "${MONERO_ENV_FILE}"
echo "export APP_MONERO_RPC_AUTH='${MONERO_RPC_AUTH}'" >> "${MONERO_ENV_FILE}"
fi
. "${MONERO_ENV_FILE}"
# Make sure we don't persist the original value in .env if we have a more recent
# value from the app config
{
if [[ ! -z ${MONERO_NETWORK+x} ]] && [[ "${MONERO_NETWORK}" ]] && [[ "${APP_MONERO_NETWORK}" ]]
then
APP_MONERO_NETWORK="${MONERO_NETWORK}"
fi
} > /dev/null || true
if [[ "${APP_MONERO_NETWORK}" == "mainnet" ]]; then
MONERO_CHAIN="mainnet"
elif [[ "${APP_MONERO_NETWORK}" == "testnet" ]]; then
MONERO_CHAIN="testnet"
export APP_MONERO_RPC_PORT="28081"
export APP_MONERO_P2P_PORT="28080"
elif [[ "${APP_MONERO_NETWORK}" == "stagenet" ]]; then
MONERO_CHAIN="stagenet"
export APP_MONERO_RPC_PORT="38081"
export APP_MONERO_P2P_PORT="38080"
else
echo "Warning (${EXPORTS_APP_ID}): Monero Network '${APP_MONERO_NETWORK}' is not supported"
fi
export MONERO_DEFAULT_NETWORK="${MONERO_CHAIN}"
BIN_ARGS=()
BIN_ARGS+=( "--rpc-bind-port=${APP_MONERO_RPC_PORT}" )
BIN_ARGS+=( "--rpc-bind-ip=0.0.0.0" )
BIN_ARGS+=( "--confirm-external-bind" )
BIN_ARGS+=( "--rpc-login=\"${APP_MONERO_RPC_AUTH}\"" )
export APP_MONERO_COMMAND=$(IFS=" "; echo "${BIN_ARGS[@]}")
# echo "${APP_MONERO_COMMAND}"
rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname"
p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname"
export APP_MONERO_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
export APP_MONERO_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"