services:
# Geth Execution Layer
bera-geth:
image: ethereum/client-go:${GETH_VERSION:-v1.15.10}
container_name: bera-geth
restart: unless-stopped
stop_grace_period: 10m
networks:
- berachain
ports:
- "25403:25403/tcp" # P2P networking
- "25403:25403/udp"
- "25445:8545" # JSON-RPC
- "25446:8546" # WebSocket
volumes:
- ./data/geth:/data
- ./data/jwtsecret:/jwtsecret:ro
- ./config/bootnode-string.txt:/bootnode-string.txt:ro
- /etc/localtime:/etc/localtime:ro
environment:
- GETH_DATADIR=/data
entrypoint: ["/bin/sh", "-c"]
command:
- |
BOOTNODES=$$(cat /bootnode-string.txt) &&
exec geth \
--datadir=/data \
--db.engine=pebble \
--state.scheme=hash \
--port=25403 \
--discovery.port=25403 \
--nat=extip:${PUBLIC_IP:-127.0.0.1} \
--gcmode=archive \
--syncmode=full \
--networkid=80094 \
--bootnodes="$$BOOTNODES" \
--maxpeers=100 \
--netrestrict="" \
--cache=8192 \
--http \
--http.addr=0.0.0.0 \
--http.port=8545 \
--http.corsdomain=* \
--http.api=eth,net,web3,txpool,debug,trace,admin,engine \
--ws \
--ws.addr=0.0.0.0 \
--ws.port=8546 \
--ws.origins=* \
--ws.api=eth,net,web3,txpool,debug,trace,admin,engine \
--authrpc.addr=0.0.0.0 \
--authrpc.port=8551 \
--authrpc.vhosts=* \
--authrpc.jwtsecret=/jwtsecret
# Beacond Consensus Layer
bera-beacond:
image: ghcr.io/berachain/beacon-kit:${BEACOND_VERSION:-v1.2.0}
container_name: bera-beacond
restart: unless-stopped
stop_grace_period: 10m
networks:
- berachain
ports:
# P2P networking
- "25456:25456/tcp"
- "25456:25456/udp"
- "25457:26657" # RPC
- "25430:3500" # Beacon API
volumes:
- ./data/beacond:/beacond
- ./data/jwtsecret:/jwtsecret:ro
- /etc/localtime:/etc/localtime:ro
environment:
- BEACOND_HOME=/beacond
command:
- start
- --home=/beacond
networks:
berachain:
driver: bridge