50 lines
2.8 KiB
YAML
50 lines
2.8 KiB
YAML
version: '3.1'
|
|
|
|
services:
|
|
geth-mainnet:
|
|
image: ethereum/client-go:stable
|
|
expose:
|
|
# HTTP server / GraphQL API
|
|
- 8545
|
|
ports:
|
|
- "30303:30303"
|
|
- "30303:30303/udp"
|
|
command:
|
|
[
|
|
# Blockchain sync mode ("snap", "full" or "light")
|
|
"--syncmode=snap",
|
|
# Megabytes of memory allocated to internal caching
|
|
"--cache=8192",
|
|
# Enable the WS-RPC server
|
|
"--ws",
|
|
"--ws.addr=0.0.0.0",
|
|
# Enable the HTTP-RPC server
|
|
"--http",
|
|
"--http.addr=0.0.0.0",
|
|
"--http.vhosts=*",
|
|
# Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if an HTTP server is started as well.
|
|
"--graphql",
|
|
"--graphql.vhosts=*",
|
|
# Enable metrics collection and reporting
|
|
"--metrics",
|
|
# Ethereum mainnet
|
|
"--mainnet",
|
|
# Maximum number of network peers (network disabled if set to 0) (default: 50)
|
|
"--maxpeers=30"
|
|
]
|
|
networks:
|
|
- chains
|
|
volumes:
|
|
- "geth-mainnet_data:/root/.ethereum"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
- "traefik.http.middlewares.mainnet-stripprefix.stripprefix.prefixes=/mainnet"
|
|
- "traefik.http.services.mainnet.loadbalancer.server.port=8545"
|
|
- "traefik.http.routers.mainnet.entrypoints=websecure"
|
|
- "traefik.http.routers.mainnet.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/mainnet`)"
|
|
- "traefik.http.routers.mainnet.middlewares=mainnet-stripprefix, ipwhitelist"
|
|
|
|
volumes:
|
|
geth-mainnet_data: |