mirror of
https://github.com/Retropex/umbrel-apps.git
synced 2025-05-12 11:20:43 +02:00
App Submission: TDEX Provider (#151)
This commit is contained in:
parent
67efd1bf20
commit
bc9101e100
6
tdex/caddy-data/Caddyfile
Normal file
6
tdex/caddy-data/Caddyfile
Normal file
@ -0,0 +1,6 @@
|
||||
:8080 {
|
||||
handle_path /api/* {
|
||||
reverse_proxy tdex_tdexd_1:9090
|
||||
}
|
||||
reverse_proxy tdex_dashboard_1:8080
|
||||
}
|
49
tdex/docker-compose.yml
Normal file
49
tdex/docker-compose.yml
Normal file
@ -0,0 +1,49 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: tdex_caddy_1
|
||||
APP_PORT: 8080
|
||||
|
||||
tdexd:
|
||||
image: ghcr.io/tdex-network/tdexd:v0.9.1@sha256:5078897b9a505fc3dfac5b3d51537150941c075f5279ae81de1c6b1c21112544
|
||||
tty: true
|
||||
restart: on-failure
|
||||
stop_grace_period: 1m
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/tdex-data:/home/tdex/.tdex-daemon
|
||||
environment:
|
||||
TDEX_LOG_LEVEL: 5
|
||||
TDEX_OPERATOR_LISTENING_PORT: "${APP_TDEX_PORT}"
|
||||
TDEX_TRADE_LISTENING_PORT: "${APP_TDEX_PORT}"
|
||||
TDEX_NO_OPERATOR_TLS: "true"
|
||||
# these vars are used to generate the connect URL
|
||||
# we assume to always show the external endpoint
|
||||
# reachable remotely by other dashboards via Tor
|
||||
TDEX_CONNECT_ADDR: "${APP_TDEX_DAEMON_HIDDEN_SERVICE}"
|
||||
TDEX_CONNECT_PROTO: http
|
||||
|
||||
dashboard:
|
||||
image: ghcr.io/tdex-network/dashboard:v0.1.55@sha256:dfa7cdb75117c97e671285fc9754a6cabafc7f74760c314e6625c33067509beb
|
||||
restart: on-failure
|
||||
environment:
|
||||
USE_PROXY: "false"
|
||||
IS_PACKAGED: "true"
|
||||
TRADER_HIDDEN_SERVICE: "${APP_TDEX_DAEMON_HIDDEN_SERVICE}"
|
||||
|
||||
caddy:
|
||||
image: caddy:2.6.4-alpine@sha256:4dfec6c3b22c36b63ea4a3633c7cdbdaa9926d1324c27db2b0e2b70ef9cd105a
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/caddy-data/Caddyfile:/etc/caddy/Caddyfile
|
||||
|
||||
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"
|
7
tdex/exports.sh
Normal file
7
tdex/exports.sh
Normal file
@ -0,0 +1,7 @@
|
||||
export APP_TDEX_PORT="9090"
|
||||
|
||||
daemon_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-daemon/hostname"
|
||||
export APP_TDEX_DAEMON_HIDDEN_SERVICE="$(cat "${daemon_hidden_service_file}" 2>/dev/null || echo "daemon_not_yet_set.onion")"
|
||||
|
||||
# Necessary for the tdexd daemon to be able to write to the volume
|
||||
sudo chmod -R 777 "${UMBREL_ROOT}/app-data/tdex/tdex-data"
|
23
tdex/hooks/pre-start
Executable file
23
tdex/hooks/pre-start
Executable file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Delay booting TDEX until the Tor Hidden Service is ready
|
||||
HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-daemon/hostname"
|
||||
if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
"${UMBREL_ROOT}/scripts/app" compose "${APP_ID}" up --detach tdexd
|
||||
"${UMBREL_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
|
0
tdex/tdex-data/.gitkeep
Executable file
0
tdex/tdex-data/.gitkeep
Executable file
3
tdex/torrc.template
Normal file
3
tdex/torrc.template
Normal file
@ -0,0 +1,3 @@
|
||||
# TDEX Public Trader Interface Hidden Service
|
||||
HiddenServiceDir /data/app-$APP_ID-daemon
|
||||
HiddenServicePort 80 tdex_tdexd_1:$APP_TDEX_PORT
|
34
tdex/umbrel-app.yml
Normal file
34
tdex/umbrel-app.yml
Normal file
@ -0,0 +1,34 @@
|
||||
manifestVersion: 1.1
|
||||
id: tdex
|
||||
category: Finance
|
||||
name: TDEX Provider
|
||||
version: "0.9.1"
|
||||
tagline: Provide liquidity on the TDEX Network, an open protocol to trade Liquid Network assets.
|
||||
description: >-
|
||||
A liquidity provider holds Liquid reserves of both a BASE_ASSET-QUOTE_ASSET in his non-custodial Liquid hot-wallet,
|
||||
running automated market-making strategies, either with or without an oracle. Providers are incentivized to
|
||||
be always on and need to expose a public reachable endpoint either via clearnet or using an Onion hidden service.
|
||||
|
||||
|
||||
A small provider's fee can be taken out of each trade and added to the reserves. A liquidity provider has full control
|
||||
over the market making strategy needed to calculate the market rate at which to accept trades. That being said,
|
||||
there is a possibility to apply an automated market-making strategy relying only on the reserves balances and the amount requested
|
||||
by the trader, without the need to connect to an external price feed. The default strategy of the alpha daemond is the
|
||||
constant product market-making. In short, this model generates a full order-book based on an initial price for the market.
|
||||
Every transaction that occurs on this market will adjust the prices of the market accordingly.
|
||||
dependencies: []
|
||||
developer: TDEX Network
|
||||
website: https://dev.tdex.network
|
||||
repo: https://github.com/tdex-network/tdex-daemon
|
||||
support: https://t.me/tdexnetwork
|
||||
submitter: TDEX Network (tiero)
|
||||
submission: https://github.com/getumbrel/umbrel-apps/pull/151
|
||||
port: 9094
|
||||
torOnly: false
|
||||
gallery:
|
||||
- 1.jpg
|
||||
- 2.jpg
|
||||
- 3.jpg
|
||||
path: ""
|
||||
defaultUsername: ""
|
||||
defaultPassword: ""
|
Loading…
Reference in New Issue
Block a user