diff --git a/Dockerfile.local b/Dockerfile.local new file mode 100644 index 0000000..cd2322f --- /dev/null +++ b/Dockerfile.local @@ -0,0 +1,34 @@ +FROM debian:bookworm-slim + +ARG VERSION=4.7.2 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + wget curl \ + gnupg \ + ca-certificates \ + python3 \ + python3-venv \ + python3-cryptography \ + libsecp256k1-dev \ + build-essential \ + pkg-config \ + autoconf \ + automake \ + libtool \ + procps \ + && rm -rf /var/lib/apt/lists/* + +COPY install.sh /usr/local/bin/install-electrum.sh +RUN chmod +x /usr/local/bin/install-electrum.sh \ + && /usr/local/bin/install-electrum.sh "${VERSION}" + +COPY requirements.txt /app/requirements.txt +RUN /opt/electrum/bin/pip install --quiet -r /app/requirements.txt + +COPY bot.py /app/bot.py +COPY entrypoint.local.sh /app/entrypoint.sh +RUN chmod +x /app/entrypoint.sh + +WORKDIR /root + +ENTRYPOINT ["/app/entrypoint.sh"] diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 0000000..972c162 --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,22 @@ +services: + electrum: + build: + context: . + dockerfile: Dockerfile.local + args: + VERSION: ${ELECTRUM_VERSION:-4.7.2} + container_name: telegtrum + env_file: .env + environment: + ALLOWED_USERS_FILE: /app/allowed_users.txt + volumes: + - ./electrum-data:/root/.electrum + - ./allowed_users.txt:/app/allowed_users.txt:ro + - ./bot.py:/app/bot.py:ro + restart: unless-stopped + healthcheck: + test: ["CMD", "electrum", "getinfo"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 15s diff --git a/docker-compose.tor.yml b/docker-compose.tor.yml index fe14997..ec91896 100644 --- a/docker-compose.tor.yml +++ b/docker-compose.tor.yml @@ -5,7 +5,7 @@ services: dockerfile: Dockerfile.tor args: VERSION: ${ELECTRUM_VERSION:-4.7.2} - container_name: electrum-tor + container_name: telegtrum env_file: .env environment: ALLOWED_USERS_FILE: /app/allowed_users.txt diff --git a/docker-compose.yml b/docker-compose.yml index b6fb2fb..3c11ecf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: context: . args: VERSION: ${ELECTRUM_VERSION:-4.7.2} - container_name: electrum + container_name: telegtrum env_file: .env environment: ALLOWED_USERS_FILE: /app/allowed_users.txt diff --git a/entrypoint.local.sh b/entrypoint.local.sh new file mode 100644 index 0000000..fb1cc94 --- /dev/null +++ b/entrypoint.local.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -e + +mkdir -p /root/.electrum/wallets + +CONFIG="/root/.electrum/config" +if [ ! -f "$CONFIG" ]; then + echo "Writing default config..." + cat > "$CONFIG" <<'EOF' +{ + "auto_connect": false, + "enable_proxy": false, + "oneserver": true, + "server": "umbrel.local:50001:t" +} +EOF +fi + +echo "Starting Electrum daemon..." +rm -f /root/.electrum/daemon +electrum daemon -d + +echo "Electrum daemon started. Launching bot..." +exec /opt/electrum/bin/python3 /app/bot.py