diff --git a/apps/electrs/config.json b/apps/electrs/config.json new file mode 100644 index 00000000..4a666c2a --- /dev/null +++ b/apps/electrs/config.json @@ -0,0 +1,38 @@ +{ + "$schema": "../schema.json", + "name": "Electrs", + "available": true, + "exposable": false, + "no_gui": false, + "port": 3006, + "id": "electrs", + "description": "Electrum server", + "tipi_version": 1, + "version": "0.10.2", + "categories": [ + "finance" + ], + "short_desc": "Electrum server", + "author": "romanz", + "source": "https://github.com/romanz/electrs", + "supported_architectures": [ + "amd64", + "arm64" + ], + "form_fields": [ + { + "type": "text", + "label": "Bitcoin data folder location (for .cookie file)", + "hint": "Default, tipi bitcoin folder", + "required": false, + "env_variable": "BITCOIND_DIR" + }, + { + "type": "text", + "label": "Bitcoin node host address", + "hint": "Default, tipi bitcoin host", + "required": false, + "env_variable": "BITCOIND_HOST" + } + ] +} \ No newline at end of file diff --git a/apps/electrs/docker-compose.yml b/apps/electrs/docker-compose.yml new file mode 100644 index 00000000..475d5a97 --- /dev/null +++ b/apps/electrs/docker-compose.yml @@ -0,0 +1,64 @@ +version: '3.9' +services: + electrs-ui: + container_name: electrs-ui + image: ghcr.io/montejojorge/electrs-ui:v0.9.2 + restart: unless-stopped + volumes: + - ${BITCOIND_DIR:-${APP_DATA_DIR}/../bitcoind/data}:/data/.bitcoin:ro + environment: + BITCOIND_DIR: /data/.bitcoin + ELECTRUM_LOCAL_DOMAIN: runtipi.home + ELECTRUM_IP_ADDRESS: ${INTERNAL_IP} + ELECTRS_HOST: electrs + BITCOIND_HOST: ${BITCOIND_HOST:-bitcoind} + ports: + - ${APP_PORT}:3006 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.electrs-web-redirect.redirectscheme.scheme: https + traefik.http.services.electrs.loadbalancer.server.port: 3006 + # Web + traefik.http.routers.electrs-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.electrs-insecure.entrypoints: web + traefik.http.routers.electrs-insecure.service: electrs + traefik.http.routers.electrs-insecure.middlewares: electrs-web-redirect + # Websecure + traefik.http.routers.electrs.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.electrs.entrypoints: websecure + traefik.http.routers.electrs.service: electrs + traefik.http.routers.electrs.tls.certresolver: myresolver + # Local domain + traefik.http.routers.electrs-local-insecure.rule: Host(`electrs.${LOCAL_DOMAIN}`) + traefik.http.routers.electrs-local-insecure.entrypoints: web + traefik.http.routers.electrs-local-insecure.service: electrs + traefik.http.routers.electrs-local-insecure.middlewares: electrs-web-redirect + # Local domain secure + traefik.http.routers.electrs-local.rule: Host(`electrs.${LOCAL_DOMAIN}`) + traefik.http.routers.electrs-local.entrypoints: websecure + traefik.http.routers.electrs-local.service: electrs + traefik.http.routers.electrs-local.tls: true + + electrs: + container_name: electrs + image: getumbrel/electrs:v0.10.2 + restart: unless-stopped + stop_grace_period: 15m + user: 0:0 + volumes: + - ${BITCOIND_DIR:-${APP_DATA_DIR}/../bitcoind/data}:/data/.bitcoin:ro + - ${APP_DATA_DIR}/data:/data + ports: + - 50001:50001 + environment: + - ELECTRS_COOKIE_FILE=/data/.bitcoin/.cookie + - ELECTRS_DB_DIR=/data/db + - ELECTRS_ELECTRUM_RPC_ADDR=0.0.0.0:50001 + - ELECTRS_LOG_FILTERS=INFO + - ELECTRS_DAEMON_RPC_ADDR=${BITCOIND_HOST:-bitcoind}:8332 + - ELECTRS_DAEMON_P2P_ADDR=${BITCOIND_HOST:-bitcoind}:8333 + networks: + - tipi_main_network diff --git a/apps/electrs/metadata/description.md b/apps/electrs/metadata/description.md new file mode 100644 index 00000000..99f25738 --- /dev/null +++ b/apps/electrs/metadata/description.md @@ -0,0 +1,12 @@ +# Electrs + +Electrum personal server to use bitcoin wallets more secure and more private. It makes it easy to connect your Electrum wallet to your own full node. + +### Warning +First index synchronization can take up to a few days, depending on your hardware specifications. See the logs for detailed information. + +## Required apps +To be able to run electrs, you need to install this apps first: +- Bitcoin: [Install here](/app-store/bitcoind) + +![Electrs UI Screenshot](https://raw.githubusercontent.com/MontejoJorge/electrs-ui/master/electrs-ui-screenshot.png) \ No newline at end of file diff --git a/apps/electrs/metadata/logo.jpg b/apps/electrs/metadata/logo.jpg new file mode 100644 index 00000000..197d8f8e Binary files /dev/null and b/apps/electrs/metadata/logo.jpg differ