# ElectrumX for Bitcoin, with RocksDB # This Dockerfile is intended for modern multi-core servers with at least 16 GB of RAM. # We compile our own free-threaded Python, with --disable-gil (which is experimental!), which makes # ElectrumX able to truly utilise multiple CPU cores and makes processing blocks significantly faster. # # Build: docker build -f Dockerfile_beefyserver --pull -t electrumx . # Run: docker run -d --net=host -v ~/electrumx-db:/var/lib/electrumx -e DAEMON_URL="http://youruser:yourpass@localhost:8332" -e REPORT_SERVICES=tcp://example.com:50001 electrumx # Stop: docker stop CONTAINER_ID FROM debian:trixie ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 ENV DEBIAN_FRONTEND=noninteractive WORKDIR /usr/src/app # Install libs needed to build CPython RUN apt-get update \ && apt-get -y install \ git \ wget \ make \ autotools-dev \ autoconf \ libtool \ xz-utils \ libssl-dev \ libssl3 \ openssl \ zlib1g-dev \ libffi-dev \ libncurses5-dev \ libsqlite3-dev \ && rm -rf /var/lib/apt/lists/* # Install libs needed to build RocksDB RUN apt-get update \ && apt-get -y --no-install-recommends install \ build-essential \ git \ librocksdb-dev \ pkg-config \ && rm -rf /var/lib/apt/lists/* # build CPython (free-threaded, with --disable-gil) ARG PYTHON_VERSION="v3.14.6" RUN cd /opt && \ git clone https://github.com/python/cpython && \ cd cpython/ && \ git checkout "${PYTHON_VERSION}" && \ ./configure \ --prefix="/usr" \ --enable-ipv6 \ --enable-shared \ --disable-gil \ -q && \ make -s "-j$(nproc)" && \ make install RUN python3 -m pip install --upgrade pip setuptools wheel # Install ElectrumX ARG ELECTRUMX_VERSION=2.0.0 #ARG ELECTRUMX_VERSION=b8f6e227f251fe5cba96b940ffaa094439636417 RUN python3 -m pip install \ "e_x[rocksdb] @ git+https://github.com/spesmilo/electrumx.git@${ELECTRUMX_VERSION}" ENV SERVICES="tcp://:50001" ENV COIN=Bitcoin ENV DB_DIRECTORY=/var/lib/electrumx ENV DAEMON_URL="http://username:password@hostname:port/" ENV ALLOW_ROOT=true ENV DB_ENGINE=rocksdb ENV CACHE_MB=2000 VOLUME /var/lib/electrumx RUN mkdir -p "$DB_DIRECTORY" CMD ["electrumx_server"]