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"